Data Scientist 옌

매일 발전하는 IT문제해결사

국비지원교육 (22.01-22.07)/강의노트

22-03-18(금) 035일차 [Java, Oracle, Network] 웹이란

옌炎 2022. 5. 11. 13:12
728x90

수업내용


1교시 (09:30-10:20)

  • 각자 선생님께 받은 파일 확인하면서 구현/다른 부분 비교

2교시 (10:30-11:20)

  • INSERT 구문과 COMMIT에 대한 설명
/*
	JDBC 를 이용해서 데이터베이스에 입력,  수정, 삭제, 조회
	
	sqlplus
	---------------
	조회 : SELECT : DQL 
	입력, 수정, 삭제 : INSERT, UPDATE, DELETE : DML : TRANSACTION : COMMIT, ROLLBACK
		DML  문장으로 데이터를 테이블에 입력하면 
		1. 메모리에 쓴다.
		2. 메모리에 저장된 내용을 확인 하고 
		   목적에 맞으면 COMMIT,  맞지않으면 ROLLBACK 
		3. COMMIT 으로 파일에 쓴 이후에는 ROLLBACK 되지 않는다.
	
	splplus 에서 하는 것이 아니고 
	jdbc 드라이버를 이용해서 자바 프로그램에서 구현하는 것 
	
	자바프로그램 - jdbc 드라이버 - 오라클 데이터베이스 
	
	1. Connection
	2. PreparedStatement 쿼리문은 데이터베이스에 전달
	3. ResultSet, int 데이베이스에서 수행된 결과를 프로그램으로 전달 받아야 한다.
	
	SELECT
		테이블에서 조회된 ROW(파일)가 프로그램으로 전달 된다.
		Connection 
		PreparedStatement
		ResultSet
		executQuery() 
	
	INSERT, UPDATE, DELETE 
		테이블에 반영된 결과를 건수로 전달된다. 
		Connection 
		PreparedStatement
		int 
		executUpdate()
		
		jdbc 드라이버에서 일을 해준다. (Oracle 에서 jdbc 만드는 개발자가 정해준다.)
		jdbc 드라이버를 이용해서 
		오라클 데이터베이스 테이블에 데이터를 입력하면 
		최소 1건은 자동으로 커밋을 해준다. <-- 버전 별로 ???
		
		커밋을 어디서 콘트롤 하는가 : jdbc 드라이버에서 역활을 하고 : 오라클 엔진에게 요청을 한다. 
		개발자가 할 수 있는 일은
		Connection 인터페이스 setAutoCommit(), getAutCommit() 두가지 함수를 가지고 
		jdbc 드라이버에게 요청을 하면 
		jdbc 드라이버가 오라클 엔진(옵티마이저)에게 요청을 한다.
		요청을 받은 오라클 엔지(옵티마이저)가 현재 그 테이블의 상태를 보고 
		요청한 정보를 수행 한다. 
		
		Connection 인터페이스를 이용해서 
			자바프로그램 - jdbc 드라이버 - 오라클 데이터베이스 가 연결되면
		Connection.setAutoCommit() true 인 상태가 된다.
		setAutoCommit 이 true 인 상태에서 최초 1건 만 자동으로 커밋을 한다. 		 
	*/

3교시 (11:30-12:20)

  • 채번 로직에 대한 설명
// 인서트할 때 
// 채번로직 함수를 호출해서 채번을 한다. 
// 현재는 main() 함수에서 하는데 
// 실제로는 콘트롤러, 서버스, 다오에서 한다. <-- 채번함수를 호출하는 시점은 프로그램 마다 다 다르다. 
			
// 현재 만든 채번로직에서는 getT6Chabun 함수를 호출 할 때  맥스값을 제외한 채번 형식을 정한다. 
// 매개변수 d : YYYYMMDD, m : YYYYMM, y : YYYY, n : 
			
// ChabunUtil.getT6Chabun("d");
// ChabunUtil 클래스를 추상 클래스 (abstract class) 로 만드는 이유
// 개발자가 new 하는 것을 막으려고 
// getT6Chabun() 함수는 static 함수이다. 이 함수는 new 를 하면 않된다. 클래스이름으로 불러서 사용한다.

// T6Scr의 Insert 부분
// t1 = ChabunUtil.getT6Chabun("d"); // t1 = T6202203180008;

package a.b.c.t6.common;

public abstract class ChabunUtil {
	
	public static final String BIZ_GUBUN_TEST = "T6";
	/*
		String t : type of numPad
		D : YYYYMMDD
		M : YYYYMM
		Y : YYYY
		N :
	*/							    // d,       8
	public static String numPad(String t, String c) {
		
		System.out.println("[METHOD] :: ChabunUtil :: numPad(" + t + ", " + c + ")");
		
		// c.length : 8 : 1 -> 4 : 0008
		for (int i = c.length(); i < 4; i++) {
			c = "0" + c;
		}
		
											// d
		String ymd = DateFormatUtil.ymdFormats(t);
		// ymd = YYYYMMDD : 20220318
		
		return ymd.concat(c); // 202203180005 ("20220318" + "0005")
	}
	
	public static String getT6Chabun(String type) {
		
		System.out.println("[METHOD] :: ChabunUtil :: getT6Chabun()");
		
				  // 8
		String commNum = ChabunQuery.getT6ChabunQuery();
		System.out.println("[METHOD] :: ChabunUtil :: getT6ChabunQuery() :: [commNum] >>> : " + commNum);
		
		return BIZ_GUBUN_TEST.concat(ChabunUtil.numPad(type, commNum));
		// T6202203180005 ("T6" + "202203180005")
	}
}

4교시 (12:30-13:20)

  • 각자 선생님께 받은 파일 확인하면서 구현/다른 부분 비교

5교시 (14:30-15:20)

  • TCP/IP 원리 영상
  • 각자 선생님께 받은 파일 확인하면서 구현/다른 부분 비교

6교시 (15:30-16:20)

  • 각자 선생님께 받은 파일 확인하면서 구현/다른 부분 비교

7교시 (16:30-17:20)


  • 웹 WWW World Wide Web
    ---------------------
    1989년 스위스 유럽입자물리연구소(CERN)의
    팀 버너스 리 Timothy John Berners Lee
    <P></P> : Tag :
    HTML(HyperText Markup Language)이라는 간단한 마크업 언어를 통해
    정보의 연결이 가능하도록 하이퍼텍스트를 포함한 콘텐츠를 제공하며,
    HTTP(HyperTest Transfer Protocol)라는 프로토콜을 사용해
    TCP/IP 네트워크 상에서 서비스를 운영하게 된 것이 웹의 시작이다. ############################################### [중요] 꼭 기억할 것
    인터넷은 컴퓨터 네트워크망을 의미
    웹은 인터넷 서비스 중 하나를 의미
    웹은 인터넷 상의 정보 검색 서비스
    웹은 HTTP 프로토콜을 사용하여 HTML로 작성된 문서를 연결하여 다양한 콘텐츠 제공
    웹 서비스는 많은 사람들이 정보 공유
    ###############################################
    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 주말동안 공부해올 것
    웹 동작 구조
    ------------
    DNS 서버
    1 2
    | |
    | |
    | |
         3
         HTML 페이지 요청
    웹 브라우저 ---------------------> 80 포트 웹 서버
                6 <---------------------- 4
                     5 HTML 파일 전송

    1. 웹 브라우저에서 <http://www.naver.com> 입력
    2. DNS 서버에서 www.naver.com이라는 도메인을 가진 IP 주소를 웹 브라우저에 제공
    3. 웹 브라우저에서 IP 주소의 해당 서버 80번 포트로 접속 시동 www.naver.com의 웹서버는 80번 포트로 접속을 기다리다가 접속 요청이 들어오면 받는다.
    4. 웹 서버는 요청 내용을 분석하고 요청된 index.html 파일을 디스크에서 읽는다.
    5. 웹 서버는 파일 내용을 텍스트 그대로 요청한 클라이언트에 전송한다.
    6. 웹 브라우저는 웹 서버로부터 받은 텍스트 내용 중 HTML 태그를 분석하고 적절히 변환하여 화면을 구성한다.

    TCP/IP
    -------------
    응용 계층 WWW, FTP, Telnet, SMTP 등 네트워크 프로그램
    전송 계층 각 시스템을 연결하고 TCP 프로토콜을 이용하여 데이터 전송
    인터넷 계층 IP 프로토콜을 이용하여 데이터를 정의하고 경로를 배정
    물리 계층 실제 네트워크를 접근할 수 있도록 하는 물리적인 부분

    IP 주소
    --------------
    IP Address는 TCP/IP로 연결된 네트워크에서 각각의 컴퓨터를 구분하기 위해 사용하는 주소이다.
    IP 주소는 숫자로 구성되어 있고 '123.123.123.123'과 같이 4개로 구분하면 10진수 사용

    프로토콜
    --------------
    ============================================
    Protocol은 네트워크에 연결된 컴퓨터들 간의 통신 규약 ============================================
    HTTP/HTTPS
    TCP
    UDP
    IP

    포트
    ---------------
    Port는 네트워크를 통해 내 컴퓨터에 접속할 수 있도록 (들어올 수 있게) 개방해둔 문과 같은 역할,
    보안과 밀접한 관계가 있다.
    ============================================
    소프트웨어에서는 특정 프로세스를 식별하는 논리 단위이다.
    ============================================
    0 ~ 1023 : 잘 알려진 포트 web-known port
    1024 ~ 49151 : 등록된 포트 registered port
    49152 ~ 65535 : 동적 포트 dynamic port

    20 : FTP(data)
    21 : FTP(control)
    22 : SSH
    23 : Telnet
    80 : HTTP 월드 와이드 웹 : 8088
    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

    ###############################################
    웹 브라우저에서 구동되는 프로그램을 만드는 것을 배우는 사람이다.
    웹 브라우저에서 구동되는 프로그램을 만드는 사람을 웹 개발자 : Web Developer

    클라이언트     웹 서비스를 이용하는 사용자 : 웹 브라우저 클라이언트 : 웹 클라이언트
                웹 브라우즈 : 5대 브라우저
                    크롬
                    엣지(인터넷 익스플로러)
                    파이어폭스
                    오페라
                    사파리
    서버             웹 서비스를 제공하기 위한 서비스 공급자
                 웹 서버(Web Server)
                    Apache Httpd
                    WebToB
                    ...............
                  WAS(Web Application Server) : 미들웨어
                    JEUS
                    JBOSS
                    ...............
                    Apache Tomcat ( 웹서버 : 코오테(Apache Httpd),
                                     WAS : 카탈리나(Servlet Container) <-- 공부할 서버

    프론트엔드     클라이언트 중심의 프로그램
                      HTML 웹 문서의 뼈대를 만듬
                      CSS 웹 문서를 꾸밈
                      JavaScript 사용자 동작에 반응 ECMAScript 3, 5

                      jQuery, Bootstrap, D3.js <-- 라이브러리

                      React, Angular, Vue 등 <-- 프레임워크 ECMAScript 6, 7
    ==============================================
    데이터 전송 JSON, XML, Plain Text (전통적으로 ASCII, EBCDIC으로 인코딩)
    ==============================================
    백엔드           서버를 구성하며 서비스를 제공하기 위한 서버 쪽 프로그램
                     웹 서버 소프트웨어, 웹 프레임 워크, 데이터베이스 영역

                     linux, network, DataBase 구축 기술

                     Java(coreJava, JSP, Servlet), Python, .NET, PHP <-- 서버 언어

                      Spring, Django, Node.js(Express), CodeIgniter <-- 프레임워크
                      Mybatis <-- 데이터베이스 프레임워크
    ###############################################

8교시 (17:30-18:30)

  • 자습

Notes

  • 4월 말까지 웹을 배우면서 자바와 오라클을 계속 배울 예정
    • Java : Thread 등 아직 덜 배움
    • Oracle : 계정, Join, 함수, ... 등 아직 덜 배움
  • 디버깅 시간은 한 시간
  • 하다가 막히면 건너가기

728x90