반응형

개발패턴정리

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을 호출해 데이터를 갱신하거나 가져옴변경..
옵저버 패턴 정의옵저버 패턴은 어떤 객체의 상태 변화가 있을 때, 이와 의존 관계에 있는 다른 객체들에게 자동으로 알림을 전달하여, 그 객체들이 적절히 반응하도록 하는 디자인 패턴입니다. 주로 1대다(One-to-Many) 의존 관계를 구현할 때 사용되며, 객체 간의 결합도를 최소화하면서도 동기화를 유지할 수 있게 해줍니다.옵저버 패턴 구성 요소Subject (관찰 대상 객체): 상태를 가지며 옵저버들을 등록, 제거, 알림을 관리합니다.Observer (관찰자 객체): Subject의 상태 변화에 반응하여 자신의 상태를 변경하거나 행동을 수행합니다.ConcreteSubject: 실제 데이터나 상태를 보유한 구체적인 Subject 클래스입니다.ConcreteObserver: 실제 동작을 수행하는 옵저버 클..
전략 패턴의 정의전략 패턴은 객체가 할 수 있는 행위(알고리즘)를 각각의 클래스로 캡슐화하고, 이들을 필요에 따라 동적으로 바꾸어 사용할 수 있게 만드는 디자인 패턴입니다.즉, 알고리즘의 선택과 사용을 클라이언트와 독립적으로 만들어 유연성을 높이는 패턴입니다.전략 패턴의 목적알고리즘을 사용하는 코드로부터 알고리즘 자체를 분리하여 결합도를 낮출 수 있습니다.런타임에 전략을 변경할 수 있도록 하여 유연성을 극대화합니다.다양한 조건에 따라 서로 다른 알고리즘을 적용해야 할 때 중복 코드나 조건문을 방지할 수 있습니다.새로운 알고리즘 추가가 쉽고, 유지보수가 용이합니다.전략 패턴의 구성 요소Strategy: 알고리즘의 공통 인터페이스를 정의합니다.ConcreteStrategy: 실제 알고리즘을 구현하는 클래스입..
반응형