본문 바로가기
수업 일지/JDBC

29일차 - 싱글턴/Dao 클래스/네트워크 용어 정리

by 쿠쿠씨 2022. 2. 11.
반응형

 

싱글턴 패턴

 

전체 프로그램에서 단 하나의 객체만 만들어야할 때 사용됩니다.

생성자가 여러 차례 호출되더라도 생성되는 객체는 하나입니다.

최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴합니다.

주로 공통된 객체를 여러 개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용됩니다.

 

싱글턴 생성하기

→ private 접근 제한자를 사용하여 다른 클래스에서 생성자를 호출할 수 없도록 합니다.

→ 객체를 리턴하는 메소드를 선언합니다. 다른 클래스에서 객체를 사용하려면 메소드를 호출해야 합니다.

 

1) private static 키워드를 붙이고 new 연산으로 객체를 생성합니다.

private static Single singleton = new Single();

 

2) private 키워드를 갖는 기본 생성자를 생성합니다.

private Single( ){ };

 

3) public static 키워드를 갖는 메소드를 생성합니다. 1)에서 만든 객체를 리턴합니다.

public static Single getInstance(){

 return singleton;

}

→ obj==obj2 연산이 true 라는 것은 참조 주소가 같다는 것입니다.

→ obj와 obj2는 같은 객체를 참조합니다.

 

Dao(Data Access Object) 클래스 

 

DML 쿼리를 실행하는 메소드가 모여있는 클래스입니다.

SELECT 문은 여러가지 목적으로 다양한 쿼리가 있으면 각각의 메소드를 만듭니다.

싱글턴 패턴으로 만듭니다.

 

예제: CustomDao 클래스

Custom 테이블에 DML 쿼리를 실행하는 메소드를 작성합니다.

 

메소드의 반환값 형식

INSERT, UPDATE, DELETE : void (반환값 없음)

SELECT : Custom (한 행 반환), List<Custom> (여러 행 반환)

 

INSERT 메소드

→ 인자로 Custom 객체를 받고 반환값은 없습니다.

→ setXXX 메소드로 Custom 객체의 값을 ? 에 저장하고 쿼리를 실행합니다..

 

UPDATE 메소드

→ 반환값은 없습니다.

→ 방법1) 바꿀 ID와 변경할 Email을 직접 인자로 받아 ? 에 저장하고 쿼리를 실행합니다..

→ 방법2) Custom 객체를 인자로 받아 값을 ? 에 저장하고 쿼리를 실행합니다..

 

DELETE 메소드

→ 삭제할 ID를 인자로 받고 반환값은 없습니다.

→ 받은 값을 ? 에 저장하고 쿼리를 실행합니다.

 

SELECT 메소드(한 행 출력)

→ ID값을 인자로 받고 Custom 객체를 반환합니다.

→ ID는 기본키이므로 1개 행만 출력됩니다.

→ 받은 ID를 ? 에 대입하여 쿼리를 실행합니다.

→ Custom 객체를 생성한 후 rs에서 데이터를 가져와 저장합니다.

→ 값을 저장한 Custom 객체를 반환합니다.

 

SELECT 메소드(모든 행 출력)

→ 인자는 없고 List<Custom> 타입을 반환합니다.

→ 쿼리를 실행하고 값을 rs에 저장합니다.

→ Custom 객체를 생성하고 rs에서 데이터를 가져와 저장합니다.

→ List에 Custom 객체를 add합니다.

→ 값을 저장한 List를 반환합니다.

 

예제: ProductDao 클래스

SELECT * FROM TBL_PRODUCT WHERE Category = ? ; 문을 실행할 메소드를 작성합니다.

→ category를 인자로 받고 List<Product> 타입을 반환합니다.

→ 입력받은 category 값을 ? 에 대입하여 쿼리를 실행하고 rs에 저장합니다.

→ Product 객체를 생성하고 rs에서 데이터를 가져와 저장합니다.

→ List에 Product 객체를 add합니다.

→ 값을 저장한 List를 반환합니다.

 

* 단축키

 

변수명 한 번에 바꾸기 : 바꿀 변수 클릭 후 alt+shift+r

 

 

네트워크 용어 정리

 

프로토콜

프로토콜은 다른 기기 간 정보의 전달을 원활하게 할수 있도록 표준화시켜 놓은 통신규약입니다.
통신을 제어하기 위한 표준 규칙과 절차의 집합으로 하드웨어, 소프트웨어, 문서를 모두 규정합니다.

OSI 참조모델 : 프로토콜을 7계층으로 분류

응용계층 : 사용자 친화 환경 제공 // 네트워크 소프트웨어 UI 부분, 사용자의 입출력 부분
표현계층 : 코드 문자 등을 번역하여 일관되게 전송하고 압축,해제,보안 기능도 담당
세션계층 : 송신, 수신 간의 논리적 연결 // 통신을 하기위한 세션을 확립/유지/중단
전송계층 : 송신, 수신 프로세스 간의 연결 // 패킷 생성
네트워크계층 : 다수의 중개 시스템 중 올바른 경로를 선택하도록 지원 // 주소(IP) 부여, 경로 설정 *라우터
데이터링크계층 : 오류와 흐름을 제거하여 신뢰성 있는 데이터를 전송(에러검출/재전송/흐름제어) // 프레임에 MAC주소 부여 *브릿지,스위치
물리계층 : 실제 장비들을 연결하기 위한 연결 장치 * 허브, 리피터

TCP/IP모델  : 프로토콜을 4계층으로 분류

응용계층 : 응용 프로그램 간의 데이터 송수신 제공 * TELNET,FTP,SMTP,HTTP
전송계층 : 호스트들 간의 신뢰성 있는 통신 제공 * TCP,UDP
인터넷계층 : 데이터 전송을 위한 주소 지정, 경로 설정을 제공 * IP,ICMP,ARP
네트워크엑세스계층 : 실제 데이터를 송수신하는 역할 *이더넷

LAN(Local Area Network)

근거리 네트워크로, 한 건물 또는 작은 지역을 한데 묶는 컴퓨터 네트워크입니다.

이더넷과 와이파이는 LAN을 사용하기 위해 흔히 쓰이는 기술입니다.


WAN(Wide Area Network)

WAN은 광대역 네트워크로, 국가, 대륙과 같이 광범위한 지역을 연결하는 네트워크입니다.

WAN은 LAN 사용자들이 다른 지역에 있는 LAN 사용자들과 데이터 통신을 할 수 있도록 해줍니다.

MAC(Media Access Control)

MAC 주소는 OSI 7계층 중 데이터 링크 계층(2계층)에서 사용하는 LAN 카드 등

네트워크 기기의 각 포트에 고유하게 할당된 번호입니다.

이더넷과 와이파이를 포함한 대부분의 네트워크 기술에 네트워크 주소로 사용됩니다.

NIC(Network Interface Card) : 네트워크 어댑터

컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 하드웨어 장치로

정보 전송시 케이블을 통해 정보가 전송될 수 있도록 정보의 형태를 변경합니다.

OSI 7계층 중 물리 계층(1계층)과 데이터 링크 계층(2계층)에 포함됩니다.

이더넷

이더넷은 컴퓨터 네트워크 기술의 하나로 LAN, WAN에서 많이 활용되는 기술 규격입니다.
이더넷은 OSI 물리 계층(1계층)에서 신호와 배선,
데이터 링크 계층(2계층)에서 MAC 패킷과 프로토콜의 형식을 정의합니다.

패킷

패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 서식 단위입니다. 
패킷은 제어 정보와 사용자 데이터로 이루어집니다.
데이터가 패킷으로 형식이 바뀔 때, 네트워크는 장문 메시지를 더 효과적이고 신뢰성 있게 보낼 수 있습니다.

IP(Internet Protocol) 

OSI 7계층 중 네트워크 계층(3계층)에서 호스트의 주소 지정과 패킷 분할 및 조립 기능을 담당합니다.
IP주소는 네트워크 계층의 기능을 수행하는 IP 프로토콜이 호스트를 구분하려고 사용하는 주소 체계입니다. 
임의의 호스트를 인터넷에 연결하려면 반드시 IP 주소를 할당받아야 합니다.

IP주소의 특징 : 사설주소의 범위
IPv4
10.0.0.0 - 19.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

라우터

 

OSI 7계층 중 네트워크 계층(3계층)에서 동작하는 장비입니다.
망 연동 장비로, LAN과 LAN을 연결하거나 LAN과 WAN을 연결하기 위한 인터넷 네트워킹 장비입니다.

TCP(Transmission Control Protocol)

OSI 7계층 중 전송 계층(4계층)에 해당됩니다.

TCP는 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜입니다.
패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공합니다.
수신 측의 수신 가능 상태, 수신 여부 등을 단계별로 체크해 가며 데이터를 전송합니다.
대표 서비스 : FTP, Telnet, Http

http(HyperText Transfer Protocol)

 

OSI 7계층 중 응용 계층(7계층)에 해당됩니다.
월드와이드웹(WWW)에서 HTML문서를 송수신하기 위한 표준 프로토콜입다.
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜입니다.
HTTP를 통해 전달되는 자료는 http:로 시작하는 URL로 조회할 수 있습니다.

https(HyperText Transfer Protocol Secure)

 

OSI 7계층 중 응용 계층(7계층)에 해당됩니다.
HTTP의 보안이 강화된 버전입니다
소켓 통신에서 일반 텍스트를 이용하는 대신에 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화합니다.
따라서 데이터의 적절한 보호를 보장합니다.
HTTPS를 사용하는 웹 페이지의 URL은 https:로 시작합니다.

DNS(Domain Name System) : 도메인 네임 시스템

 

OSI 7계층 중 응용 계층(7계층)에 해당됩니다.
호스트의 도메인 이름을 호스트의 네트워크 주소로 변환하거나

그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다.
특정 컴퓨터의 주소를 찾기 위해 사람이 이해하기 쉬운 도메인 이름을 IP주소로 변환해 줍니다.


DHCP(Dynamic Host Configuration Protocol) : 동적 호스트 구성 프로토콜


호스트 IP 구성 관리를 단순화 하는 IP 표준입니다.
DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를

클라이언트에게 동적으로 할당하는 방법을 제공합니다.

반응형

댓글