OSI 참조 모델의 네트워크 계층에 해당하며 일정한 패킷으로 잘라서 전송하는 방식
가상 회선 방식
데이터그램 방식
네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
물데네전세표응
명칭 | 특징 | 단위(PDU) | 프로토콜 | 주요 장비 |
---|---|---|---|---|
Layer1: 물리 계층(Physical Layer) | 물리적인 장치의 전기적, 전자적 연결에대한 명세로 디지털 데이터를 아날로적인 전기적 신호로 변환하여 물리적 전송을 가능케 함. 주소 개념이 없으므로 물리적 연결로 신호를 주고 받음 |
비트(Bit) | x.21, RS-232 | 허브(Hub), 리피터(Repeater), 네트워크 카드(NIC : Network Interface Card) |
Layer2: 데이터 링크 계층(Data Link Layer) | 브릿지나 스위치를 통해 MAC(Media Access Control) Address를 가지고 물리계층에서 받은 정보를 전달한다 | 프레임(Frame) | HDLC, X.25, Ethernet, TokenRing, DFFI, FrameRelay | 브리지(Bridge), L2 Switch |
Layer3: 네트워크 계층(Network Layer) | 호스트로 도달하기 위한 최적의 경로를 라우팅 알고리즘을 통해 선택하고 제어한다, 종단간 전송을 위한 주소로 IP주소를 사용하여 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능 | 패킷(Packet) | IP, ARP, ICMP, IGMP, RIP, RIP v2, OSPF, IGRP, EIGRP, BGP | 라우터(Router), L3 Switch |
Layer4: 전송 계층(Transport Layer) | 종단간 신뢰성 있는 데이터 전송을 담당하며, 종단(Host)의 구체적인 목적지(Process)까지 데이터가 도달할 수 있도록 한다, Process를 특정하기 위한 주소로 Port Number를 이용, 신뢰성 있는 데이터 전송을 위해 분할과 재조합, 연결제어, 흐름제어, 오류제어, 혼합제어를 수행한다. | 세그먼트(Segment) | TCP, UDP | L4 Switch |
Layer5: 세션 계층(Session Layer) | 응용 프로그램 간의 논리적 연결(세션) 및 제어를 담당한다. | 데이터(Data) 또는 메세지(Message) | 없음 | 없음 |
Layer6: 표현 계층(Presentation Layer) | 데이터 표현방식, 상이한 부호체계 간의 변화에 대해 규정, 인코딩/디코딩, 압축/해제, 암복호화 등의 역할을 수행함 | 데이터(Data) | 없음 | 업음 |
Layer7: 응용 계층(Application Layer) | 우리가 사용하는 UI를 제공하는 프로그램을 칭함 | 데이터(Data) | TELNET, FTP, SMTP, HTTP | 없음 |
3계층
4계층
7계층
객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴
명칭 | 특징 |
---|---|
팩토리 메소드(Factory Method) | 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정 |
추상 팩토리(Abstract Factory) | 서로 연관, 의존하는 객체들의 그룹을 생성하여 추상적으로 표현 |
빌더(Builder) | 분리된 인스턴스(객체)를 건축하듯 조합하여 새 객체를 생성 |
프로토타입(Prototype) | 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴 |
싱글톤(Singleton) | 여러 프로세스가 하나의 객체를 참조하는 방식 |
명칭 | 특징 |
---|---|
어댑터(Adaptor) | 클래스들의 호환성이 맞도록 변환해주는 패턴 |
브리지(Bridge) | 서로가 독립적으로 확장할 수 있도록 한 패턴, 기능과 구현을 별도의 클래스에서 구현(다리 놓듯이) |
컴포지드(Composite) | 단일 객체와 복합 객체를 구분 없이 합성물처럼 다루고자 할 때 사용 |
데코레이터(Decorator) | 객체간의 결합으로 기능을 확장하는 것으로 부가적인 기능 추가를 위해 다른 객체들을 덧붙이는 방식 |
퍼싸드(Facade) | 커다란 코드 부분에 대한 간략화된 인터페이스를 제공함으로써 간단하게 복잡한 명령을 수행 가능 |
플라이웨이트(Flyweight) | 인스턴스를 가능한 한 공유해서 사용해서 메모리 절약 |
프록시(Proxy) | 접근이 어려운 객체와 여기 접근하려는 객체 사이의 인터페이스 역할 |
명칭 | 특징 |
---|---|
책임 연쇄(Chain of Responsibility) | 요청을 한 객체가 처리 못하면 다음 객체로 책임이 넘어가는 패턴 |
커맨드(Command) | 요청을 캡슐화하여 재이용하거나 취소할 수 있도록 로그로 남겨두면서 명령어를 하나로 합쳐둔 것 |
인터프리터(Interpreter) | 언어 번역하는 것으로 언어에 문법표현을 정의함, SQL이나 통신 프로토콜에 이용 |
반복자(Iterator) | 같은 명령의 반복이고 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 함 |
중재자(Mediator) | 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하므로써 객체 사이의 결합도를 줄임 |
메멘토(Memento) | 객체를 특정 시점의 상태로 되돌리는 기능으로 내가 사랑하는 CTRL + Z 기능 개발시 사용 |
옵저버(Observer) | 한 객체의 상태 변화시 상속되어있는 다른 객체들에게 알림, 시스템간에 이벤트를 생성하고 수신시 사용 |
상태(State) | 객체의 상태에 따라 동일한 동작을 다르게 처리할 때 사용 |
전략(Staregy) | 동일한 계열의 알고리즘을 캡슐화하여 상호 교환할 수 있게 함으로써 클라이언트에 영향 없이 알고리즘 변경 가능 |
탬플릿 메소드(Template Method) | 상위 클래스에서 골격 정의, 하위 클래스에서 세부 처리를 구체화함으로써 유지보수를 용이하게 함 |
방문자(Visitor) | 각 클래스들의 데이터 구조에서 처리 기능을 별도의 클래스로 구성하여 각 클래스에서 방문해서 수행가능하게 함 |
순서는 객체 모델링 -> 동적 모델링 -> 기능 모델링
연관화(Association)
분류화(Classification)
집단화(Aggregraiton)
일반화(Generalization) | 특수화(Sepcialization)
UML 다이어그램은 통합 모델링 언어로 사용하여 시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌트 관계 등을 그린 도면이다.