728x90

Computer Science

    [디자인패턴] Template Method 패턴 - 하위 클래스에서 구체적으로 처리하기

    ※ Java 언어로 배우는 디자인 패턴 입문(영진닷컴) 도서를 바탕으로 작성된 내용입니다. Template Method(템플릿 메소드) 패턴 소개 상위 클래스에서 템플릿에 해당하는 추상 메소드 정의, 하위 클래스에서 해당 추상 메소드를 실제로 구현 상위 클래스에서 동작 및 뼈대를 결정하고, 하위 클래스에서 그 구체적인 내용 결정하도록 설계한 패턴 같은 동작을 하거나 같은 구조를 가졌지만 일부 코드(내용)만 다른 두 개 이상의 클래스가 존재할 때 적용 가능 예제 프로그램 - JAVA - AbstractDisplay 클래스 (AbstractDisplay.java) AbstractClass(추상 클래스) 역할 public abstract class AbstractDisplay { // 추상 클래스 Abstra..

    [디자인패턴] Adapter 패턴 - 바꿔서 재이용하기

    ※ Java 언어로 배우는 디자인 패턴 입문(영진닷컴) 도서를 바탕으로 작성된 내용입니다. Adapter(어댑터) 패턴 소개 직류 12볼트로 작동하는 노트북을 교류 100볼트의 AC전원에 연결할 때 사용하는 AC 어댑터와 같은 기능 클라이언트가 사용하는 인터페이스가 정의되어 있는데 기존의 코드(클래스)가 비슷한 기능은 하지만 인터페이스와 내용이 다를 떄 기존 코드를 정의된 인터페이스의 구현체로 바꿔주는 패턴 Adapter는 한 번 포장해서 다른 용도로 사용할 수 있게 교환해주는 역할 두 가지 종류로 구현 클래스에 의한 Adapter 패턴 (상속을 사용한 Adapter 패턴) 인스턴스에 의한 Adapter 패턴 (위임을 사용한 Adapter 패턴) 예제 프로그램 - JAVA Banner(이미 주어진 코드)..

    [디자인패턴] Iterator 패턴 - 순서대로 지정해서 처리하기

    ※ Java 언어로 배우는 디자인 패턴 입문(영진닷컴) 도서를 바탕으로 작성된 내용입니다. Iterator(이터레이터/반복자) 패턴 소개 집합 객체의 내부 구조를 노출시키지 않고 반복하여 순회하는 방법을 제공한 패턴 순서대로 지정하면서 전체를 검색하는 처리 예제 프로그램 - JAVA - Aggregate 인터페이스 (Aggregate.java) 집합체를 나타내는 인터패이스 public interface Aggregate { public abstract Iterator iterator(); } - Iterator 인터페이스 (Iterator.java) 요소를 순서대로 검색해가는 인터페이스 public interface Iterator { public abstract boolean hasNext(); pub..

    [네트워크] 쿠키(Cookie)와 세션(Session) 특징, 차이

    HTTP 프로토콜은 비연결 지향으로 서버가 클라이언트의 요청에 따라 응답을 보내주면 바로 연결을 끊는다. 또, 연결을 끊는 순간 클라이언트와 서버의 통신이 종료되며 상태 정보를 유지하지 않는다. 이와 같은 특성으로 HTTP 프로토콜은 모든 요청 간의 의존 관계가 없어 현재 접속한 사용자가 이전에 접속한 사용자와 같은 사용자인지 확인하지 못한다. 즉, 클라이언트와 서버가 통신할 때마다 새롭게 연결해야 하며 클라이언트는 매 요청마다 인증 과정을 거쳐야 한다. 따라서, HTTP 프로토콜에서 이전 요청과 현재 요청이 같은 사용자의 요청인지 알게되는 상태 유지를 위해 쿠키(Cookie)와 세션(Session)을 사용한다. 쿠키와 세션에 대한 특징과 차이는 다음과 같다. 쿠키(Cookie) 개념 클라이언트 로컬 스..

    [네트워크] GET 메서드와 POST 메서드 특징, 차이

    GET과 POST는 HTTP 프로토콜을 이용해 서버에 데이터를 전달할 때 사용되는 방식이다. 각각 GET과 POST 메서드의 특징 및 차이는 다음과 같다. GET 메서드 개념 정보 조회를 위한 메서드 클라이언트가 서버에서 데이터를 가져와 보여주기 위해 사용 가져오는 것 (Select) 사용 방법 URL 끝에 '?'를 포함해 key=value 형식의 쿼리스트링(Query String)를 붙혀 서버에 전송 요청 정보인 쿼리스트링(Query String)이 여러 개일 경우 '&'로 구분 ex) www.example.com?name1=value1&name2=value2 특징 URL에 쿼리스트링(데이터)를 붙혀 전송 데이터를 헤더(Header)에 포함하여 전송 HTTP 패킷의 body는 비어있는 상태로 전송 bo..

    [네트워크] HTTP와 HTTPS 프로토콜

    HTTP (Hyper Text Transfer Protocol) 웹 상에서 클라이언트와 서버 간에 요청(request)과 응답(response)으로 정보를 주고 받을 수 있는 프로토콜 TCP와 UDP 사용, 80번 포트 사용 비연결(Connectionless) 클라이언트가 서버에게 요청을 보내고 서버가 적절한 응답을 클라이언트에게 보내면 연결이 바로 끊김 간단하기 때문에 자원이 적게 든다는 장점 동일한 클라이언트의 모든 요청에 대해 매번 새로운 연결과 해제의 과정을 거쳐야해 오버헤드가 발생한다는 단점 무상태(Stateless) 연결을 끊는 순간 클라이언트와 서버의 통신은 끊기며 상태 정보를 유지하지 않음 서버는 클라이언트를 식별할 수 없어 매번 인증 과정 필요 단방향성 클라이언트의 요청 한 개에 대해 한..

    [네트워크] TCP의 3-way handshake와 4-way handshake

    3-way handshake TCP 통신으로 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정 양 측 모두 데이터를 전송할 준비가 되어있음을 보장하기 위해 사전에 세션을 수립함 실제로 데이터 전달이 시작되기 전에 수신 측이 데이터를 받을 준비가 되어 있다는 것을 알 수 있도록 함 3-way hanshaking 과정 * Host A(=클라이언트), Host B(=서버) 통신 Host A는 Host B에게 접속을 요청하는 SYN 패킷 전송 송신자가 최초로 데이터를 전송할 때 Sequence Number는 임의의 숫자로 지정하고, SYN 플래그 비트를 1로 설정한 세그먼트 전송 포트 상태 Host A: CLOSED / Host B: LISTEN 접속 요청을 받은 Host B는 Host A에게 해당 요청을 ..

    [네트워크] TCP와 UDP 특징, 헤더 분석, 비교

    TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층(Transports Layer)에서 사용되는 프로토콜이다. 다시말해, 송신자와 수신자를 연결하여 데이터 전달을 위해 사용된다. TCP와 UDP 각각의 개념 및 특징에 더해 두 프로토콜의 공통점과 차이점을 알아보자. TCP 데이터를 메세지 형태(세그먼트 단위)로 보내기 위해 IP와 함께 사용되는 프로토콜 TCP/IP에서 IP가 데이터 전달을 처리한다면, TCP는 패킷을 추적 및 관리함 연결형 서비스로 클라이언트가 연결 요청 시 서버가 이를 수락해야 1대1 통신 가능 (가상회선 패킷 교환 방식) 3-way handshaking을 통해 연결을 설정, 4-way handshaking을 통해 연결 해제 흐름 제어와 혼잡 제어 제공 흐름 제어: 데이터..

728x90