전체 글(394)
-
composite pattern
composite pattern : 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만든다. 클라이언트에서 개별 객체와 다른 객체들과 구성된 복합 객체를 똑같은 방법으로 다룰 수 있다. 메뉴, 서브메뉴를 똑같은 구조에 넣어 부분-전체 계층구조를 생성. composite pattern을 메뉴에 적용시켜 보기 한 클래스에서 한 역할만 맡아야 하지만 이 패턴은 계층구조를 관리하는 일과 메뉴 관련 작업을 처리하는 일 2가지를 처리한다. composite pattern에서는 단일 역할 원칙을 깨는 대신 투명성을 확보하기 위한 패턴이다. -> composite과 leaf를 똑같은 방식으로 처리하도록 할 수 있다. public abstract class Menucomponent { public voi..
2023.10.30 -
컴퓨터 네트워크 - Chap 3. Transport Layer
rdt3.0 - stop-and-wait protocol 패킷을 보내고 stop 그리고 ack을 받을 때까지 wait reliable 한 프로토콜 1. sender는 패킷을 보내고 바로 타이머 잼 receiver는 패킷을 제대로 받았다면 받자마자 ack을 보냄 2. timeout이 날 경우 보낸 패킷 or ack이 loss가 났다고 판단 -> 재전 재전송할 때도 타이머 잼 3. 4. ACK이 delay 됐을 경우 메커니즘 ack1이 안 왔으니 패킷 1번 재전송 -> akc1이 왔으니 다음 패킷 전송 패킷을 두 번씩 보내게 돼버림 Pipelined protocols ack 받기 전까지 보낼 수 있는 packet이 여러 개 있도록 하는 프로토콜 이것도 물론 reliable 한 프로토콜 pipeline(win..
2023.10.23 -
컴퓨터 네트워크 - Chap 2 Applicaiton Layer
Application 아키텍처 (1) client-server (2) peer-to-peer (P2P) Clinet-Server server public 주소여야 함 서버는 항상 활성화 상태여야 함. client 클라이언트끼리 직접 서로 통신하지 않고 서버를 통해 통신. P2P 서버를 통하지 않고 직접 통신 서로가 서버역할도 했다가, 클라이언트 역할도 함 Processes communicating * process: 하나의 호스트 내에서 실행 중인 프로그램 * inter-process communication: 한 호스트 내에서 두 프로세스가 통신하는 경우 -> OS에 의해 정의된다. * 서로 다른 호스트 내에서 프로세스끼리 통신하는 경우 -> 대표적으로 socket Addressing processes..
2023.10.23 -
컴퓨터 네트워크 - Chap1
protocol의 정의 (1) syntax, sematics, timing (2) event, action, format OSI 7 계층 목적 통신의 기본단위 실제 주소 프로토콜 응용계층 (applicaion) data또는information HTTP FTP SMTP 표현 계층 (presentation) mp4, avi 세션 계층 (session) 전송 계층 (transport) process-to-process delivery (port-to-port delivery) 세그먼트(segment) port 주소 예) http 기본포트 : 80 https 기본 포트: 443 TCP/UDP 네트워크 계층 (network) end node-to-end node delivery (end host-to-end ho..
2023.10.23 -
The iterator pattern
문제배경 두 개의 서로다른 식당에서 메뉴를 구현한다고 가정.하나는 배열로 구현하고 다른 하나는 ArrayList로 구현한다.클라이언트가 두 메뉴를 사용하려고 할 때,각 메뉴에 들어있는 모든 항목을 출력하려면 PancakeHouseMenu pancakeHouseMenu = new PancakeHouseMenu(); ArrayList breakfastItems = pancakeHouseMenu.getMenuItems(); DinerMenu dinerMenu = new DinerMenu(); MenuItem[] lunchItems = dinerMenu.getMenuItems(); for ( int i=0; i < breakfaseItems.size(); i++) { MenuItem menuItem = brea..
2023.10.22 -
The Template Method Pattern
Template Method Pattern :메소드에서 알고리즘의 뼈대를 정의하고, 구현은 서브클래스에서 하도록 하는 방법. 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어주고 자주 변경되며 확장할 기능은 서브클래스에 만들어준다. 여러 작업들이 동일한 동작을 하지만, 일부 동작은 다르게 구현해야 할 때 사용되는 패턴. 예시) 커피 만드는 클래스 public class Coffee { void prepareRecipe() { boilWater(); brewCoffeeGrinds(); pourInCup(); addSugarAndMilk(); } public void boilWater() { System.out.println(“Boiling water..
2023.10.22