TIL 220803

강지훈·2022년 8월 2일
0

옵저버 패턴(observer pattern)은 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려 주는 디자인 패턴입니다.

여기서 주체란 객체의 상태 변화를 보고 있는 관찰자이며, 옵저버들이란 이 객체의 상태변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들을 의미합니다.

또한, 다음 그림처럼 주체와 객체를 따로 두지 않고 상태가 변경되는 객체를 기반으로 구축하기도 합니다.

옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며 MVC MODEL - VIEW - CONTROLLER 패턴에도 사용됩니다.
예를 들어 주체라고 볼수 있는 모델에서 변경 사항이 생겨 update() 메서드로 옵저버인 뷰에 알려주고 이를 기반으로 컨트롤러 등이 작동하는 것

TCP 와 UDP의 차이
TCP는 패킷 사이의 순서를 보장하고 연결지향 프로토콜(3웨이 핸드쉐이크)을 사용해서 연결을 하여 신뢰성을 구축해서 수신여부를 확인하며 '가상회선 패킷 교환 방식'을 사용합니다. UDP는 순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주는 '데이터그램 패킷 교환 방식'을 사용합니다.

가상회선 패킷 교환 방식
가상회선 패킷 교환 방식은 각 패킷에는 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 '순서대로' 도착하는 방식을 말합니다.
다음 그림을 보면 3,2,1로 이루어진 패킷이 어떠한 회선을 따라 순서대로 도착하는 것을 알 수 있죠?

데이터그램 패킷 교환 방식
데이터그램 패킷 교환 방식이란 패킷이 독립적으로 이동하며 최적의 경로를 선택하여 가는데, 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 '순서가 다를 수' 있는 방식을 뜻합니다.
그림을 보면 3,2,1로 이루어진 패킷이 순서도 다르고 어떠한 회선을 중심으로 가는 것이 아니라 따로따로 이동하며 순서도 다르게 도착하는 것을 알수 있습니다.

데이터를 전송하는데 발생하는 오류의 종류 3가지
1.패킷의 잘못된 순서(tcp는 시퀀스)
2.패킷 손실(tcp는 재전송 가능)
3.패킷 내부의 손상된 데이터(udp,tcp모두 체크섬을 기반으로 체크)

체크섬: 헤더, 패킷내용, ip등을 기반으로 체크섬을 만들어 패킷내부의 데이터 손상을 파악함.

profile
never stop

0개의 댓글