CS 공부일지/디자인패턴 공부일지

Flux 패턴Flux 패턴 정의Flux 패턴은 데이터의 단방향 흐름(unidirectional data flow)을 기반으로 한 아키텍처 패턴입니다. 주로 React 또는 Redux 아키텍처에서 사용되며, 복잡한 상태 관리와 이벤트 처리를 예측 가능하게 만들어줍니다.이 패턴의 핵심은 상태(state)가 오직 한 방향으로만 흐르며, 모든 상태 변경은 Action → Dispatcher → Store → View 순서로만 이루어져야 한다는 점입니다.Flux 패턴 구성요소Action사용자 또는 시스템이 일으킨 이벤트를 정의합니다. 예: 버튼 클릭, 서버 응답, 알림 수신 등Dispatcher모든 Action을 받아 Store로 전달하는 중앙 허브입니다. Store는 이 Dispatcher로부터 어떤 동작이 발..
MVC 패턴MVC 패턴 정의MVC는 Model, View, Controller로 구성된 아키텍처 패턴으로, UI와 비즈니스 로직을 분리하여 유지보수성과 재사용성을 높이기 위한 구조입니다.MVC 패턴 구성요소Model: 애플리케이션의 데이터와 비즈니스 로직을 관리합니다. 예를 들어, 데이터베이스와 연동되거나 도메인 객체를 처리합니다.View: 사용자에게 보이는 UI 요소로, Model의 데이터를 시각적으로 표현합니다.Controller: 사용자의 입력을 받아 이를 처리하고, Model과 View 사이의 중재자 역할을 합니다.MVC 패턴 흐름사용자가 View에서 이벤트 발생 (예: 버튼 클릭)해당 이벤트가 Controller로 전달Controller가 적절한 Model을 호출해 데이터를 갱신하거나 가져옴변경..
프록시 패턴 정의프록시 패턴은 어떤 객체에 직접 접근하는 것이 아니라, 그 객체의 대리인 역할을 하는 객체를 통해 접근하도록 만드는 구조입니다. 실제 객체에 대한 접근을 제어하거나 기능을 확장하고자 할 때 사용됩니다.프록시 패턴 구성 요소Subject: 프록시와 실제 객체가 공통으로 구현하는 인터페이스입니다.RealSubject: 실제로 동작을 수행하는 객체입니다.Proxy: RealSubject에 대한 참조를 가지고 있으며, 클라이언트 요청을 대신 처리하거나 RealSubject에게 위임합니다.프록시 패턴 동작 방식클라이언트는 Proxy 객체를 통해 요청을 보냅니다.Proxy는 필요한 경우 RealSubject 객체를 생성하거나 접근 권한을 확인한 뒤, RealSubject의 메서드를 호출합니다.클라이..
옵저버 패턴 정의옵저버 패턴은 어떤 객체의 상태 변화가 있을 때, 이와 의존 관계에 있는 다른 객체들에게 자동으로 알림을 전달하여, 그 객체들이 적절히 반응하도록 하는 디자인 패턴입니다. 주로 1대다(One-to-Many) 의존 관계를 구현할 때 사용되며, 객체 간의 결합도를 최소화하면서도 동기화를 유지할 수 있게 해줍니다.옵저버 패턴 구성 요소Subject (관찰 대상 객체): 상태를 가지며 옵저버들을 등록, 제거, 알림을 관리합니다.Observer (관찰자 객체): Subject의 상태 변화에 반응하여 자신의 상태를 변경하거나 행동을 수행합니다.ConcreteSubject: 실제 데이터나 상태를 보유한 구체적인 Subject 클래스입니다.ConcreteObserver: 실제 동작을 수행하는 옵저버 클..
전략 패턴의 정의전략 패턴은 객체가 할 수 있는 행위(알고리즘)를 각각의 클래스로 캡슐화하고, 이들을 필요에 따라 동적으로 바꾸어 사용할 수 있게 만드는 디자인 패턴입니다.즉, 알고리즘의 선택과 사용을 클라이언트와 독립적으로 만들어 유연성을 높이는 패턴입니다.전략 패턴의 목적알고리즘을 사용하는 코드로부터 알고리즘 자체를 분리하여 결합도를 낮출 수 있습니다.런타임에 전략을 변경할 수 있도록 하여 유연성을 극대화합니다.다양한 조건에 따라 서로 다른 알고리즘을 적용해야 할 때 중복 코드나 조건문을 방지할 수 있습니다.새로운 알고리즘 추가가 쉽고, 유지보수가 용이합니다.전략 패턴의 구성 요소Strategy: 알고리즘의 공통 인터페이스를 정의합니다.ConcreteStrategy: 실제 알고리즘을 구현하는 클래스입..
이터레이터 패턴 개념이터레이터 패턴(Iterator Pattern)은 리스트, 배열과 같은 컬렉션 내부의 요소를 쉽게 순회(반복 접근)할 수 있도록 지원하는 디자인 패턴입니다. 이 패턴을 사용하면 컬렉션의 내부 구조를 모르더라도 편리하게 데이터를 접근할 수 있습니다.이터레이터 패턴 특징 및 원리컬렉션 내부 구조와 상관없이 반복자(Iterator)라는 별도의 객체가 요소를 하나씩 순서대로 접근할 수 있도록 돕습니다.Iterator 객체는 주로 두 가지 메서드(hasNext, next)를 제공하여 컬렉션의 요소를 하나씩 가져옵니다.컬렉션 내부 구조 변경이 클라이언트에게 영향을 주지 않습니다.이터레이터 패턴 장점컬렉션 내부 구조를 숨기고 반복 작업을 단순화하여 캡슐화를 강화합니다.클래스의 역할과 책임이 명확히..
mint10
'CS 공부일지/디자인패턴 공부일지' 카테고리의 글 목록