본문 바로가기

전체 글18

옵저버패턴 옵저버 패턴은 옵저버(=관찰자)들이 관찰하고 있는 대상자의 상태가 변화가 있을 때마다 대상자는 직접 혹은 간접적으로 각 관찰자들에게 변화를 통지하고, 관찰자들은 알림을 받아 조치를 취하는 행동 패턴 ⇒ Publisher/Subscriber(발행/구독) 모델1:M 의존성을 갖는다.주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다.ex) 유튜브 구독유튜버 = 발행자 = 대상자구독자 = 관찰자유튜버가 영상을 올리거나 글이 올라오면 구독자들에게 영상이 업로드 되거나 글이 올라왔다는 알림이 온다. 유튜브 채널을 구독하지 않은 사람들에게는 알림이 가지 않는다.옵저버 패턴 흐름Subject(관찰 대상자)와 여러개의 Observer(관찰자)가 일 대 다 관계로 구성되어 있음관찰 대상인 Subject 상태가 변경되.. 2024. 9. 6.
네트워크 기초 네트워크란?여러 개의 노드와 링크가 서로 연결되어 있는 덩어리를 의미한다.노드 : 통신 장치를 말하며 PC, 서버, 라우터 등이 있다.링크 : 노드를 연결하는 선을 말하며 유선 방식과 무선 방식이 있다.링크의 연결 형태1.일대일 연결(Point to Point) : 스위치 없이 1:1로 연결되는 구조를 말한다.단일 장비와 다른 단일 장비와의 직접적인 연결을 의미하고 주로 PPP(Point-to-Point Protocol)이 사용되며 주소 할당이 필요 없다.빠른 응답이 필요한 경우와 다른 중개 장치 없이 두 기기를 연결할 경우에 사용ex) 컴퓨터와 프린터의 연결 2.멀티포인트 연결(MultiPoint) : 주로 이더넷 프로토콜을 사용하며 각각의 장비는 고유한 MAC주소를 가지고 있어 1:1, 1:다, 다:.. 2024. 9. 5.
TCP/IP 2-2.TCP/IP 4계층 모델Created by: 강산Created time: 2024년 8월 28일 오후 5:50Tags: 2장TCP/IP 모델 4계층인터넷에서 데이터 통신이 어떻게 이루어지는지를 설명하는 모델이다.이 계층 모델은 네트워크에서 사용되는 통신 프로토콜 집합으로, 네개의 추상화 계층으로 구성된다.각각의 계층은 특정 기능을 담당한다.계층 구조TCP/IP 계층은 네 개의 계층을 가지고 있으며 OSI 7계층과 많이 비교된다.각각의 계층들은 특정 계층이 변경될때, 다른 계층이 영향을 받지 않도록 설계되었다.전송계층을 TCP → UDP로 변경해도, 다른 계층은 영향을 받지 않기 때문에, 인터넷 웹 브라우저를 다시 설치할 필요는 없으며, 유연한 설계라고 할 수 있다.응용 계층(Application .. 2024. 9. 5.
HTTP HTTPHTTP (Hypertext Transfer Protocol)웹에서 데이터를 주고받는 통신 프로토콜브라우저가 요청을 보내면 서버가 데이터를 응답HTTP 1.0HTTP 1.0단일 연결, 단일 요청하나의 요청에 하나의 연결 사용 → RTT(왕복 시간) 증가RTT 문제 해결이미지 스플리팅 : 압축된 이미지 다운로드코드 압축 : 코드 크기 최소화이미지 문자열 인코딩HTTP 1.1지속 연결한 번의 연결로 여러 파일 송수신 → RTT 감소.HOL Blocking 문제무거운 헤더로 인한 성능 저하 문제패킷 처리가 완료되지않으면 그 뒤에 패킷이 지연되는 현상→ 파이프라이닝(Pipelining) : 다수의 요청을 연속적으로 보내는 기능HTTP 2.0HTTP 2.0멀티플렉싱하나의 연결에서 여러 요청 동시 처리 가능.. 2024. 9. 5.
MVVM 패턴 MVVM 패턴소프트웨어 디자인 패던, UI 개발에 사용. 뷰(View)와 모델(Model) 사이의 강한 결합을 줄이기 위해 도입Model : 애플리케이션의 데이터와 비즈니스 로직을 관리View : 사용자 인터페이스 요소ViewModel : View와 Model 사이에서 데이터를 중계하고, 데이터 바인딩을 통해 View에 데이터를 전달MVC와 MVVM의 차이점사용자 입력 처리:MVC: 사용자 입력을 Controller가 직접 처리MVVM: 사용자 입력은 ViewModel이 처리합니다.데이터 바인딩:MVC : 데이터 바인딩이 자동 X, Controller를 통해 수동으로 처리MVVM : 데이터 바인딩이 자동, View와 ViewModel 간의 데이터 동기화가 프레임워크에 의해 자동으로 처리예시 코드# Mod.. 2024. 9. 5.
전략 패턴 전략 패턴객체의 행위를 클래스를 통해 캡슐화하여 동적으로 행위를 변경할 수 있게 해주는 패턴 장점:코드의 유연성 : 서로 다른 알고리즘을 쉽게 교체할 수 있으므로, 코드의 유연성 높아짐재사용성 : 특정 행동(전략)을 별도의 클래스로 분리함으로써 여러 객체에서 재사용런타임에서 전략 선택 : 인터페이스를 통해 다양한 알고리즘(전략)을 구현 가능, 이를 런타임에 선택하거나 교체단점:클래스 수 증가 : 클래스로 분리하여 클래스의 수 증가함. 이로인해 코드 복잡해짐클라이언트 코드의 복잡성 : 객체 생성 및 관리 로직 추가됨의존성 증가 : 잘못 설계 시 유지보수 어려움예시 코드# 전략class MusicStrategy: def recommend_song(self): pass# 발라드class Ba.. 2024. 9. 5.