디자인패턴 16

Swift 디자인패턴 Factory Pattern (팩토리 패턴)

Swift 디자인패턴 Factory Pattern (팩토리 패턴) Factory Pattern은 객체 생성을 캡슐화하여, 클라이언트가 객체 생성 방식에 대해 알 필요 없도록 설계하는 생성 패턴이를 통해 객체 생성 로직을 중앙 집중화하고, 유지보수를 용이하게 함. 히스토리2022-05-08: 디자인 패턴 스터디 정리2024-11-28: 포스팅 글 재정리 및 예제 변경 Factory Pattern팩토리 패턴은 다른 개념으로도 확장 가능단순 팩토리 패턴: 조건에 따라 객체를 생성하는 메서드만 제공 (정식 팩토리 패턴은 아님)팩토리 메서드 (Factory Method) 패턴: 서브클래스에서 객체 생성 과정을 오버라이드하여 생성 로직을 확장추상 팩토리 (Abstract Factory) 패턴: 관련 객체군을 생성하..

Swift 디자인패턴 MVVM Pattern (MVVM 패턴)

Swift 디자인패턴 MVVM Pattern (MVVM 패턴) MVVM 패턴은 모바일 개발에서 자주 사용하는 아키텍처 패턴. 히스토리2022-04-26: 디자인 패턴 스터디 정리2024-11-28: 포스팅 글 재정리 및 예제 변경   MVVM Pattern기본적으로 아래의 구성요소들로 구성Model: 앱의 데이터 및 비즈니스 로직의 일부View: 앱의 화면 영역 담당ViewModel: View와 Model의 중재자 역할MVVM 패턴은 파생 아키텍처가 많고, 아키텍처에 따라 용어의 차이도 존재하여, 가장 기본적인 것들을 서술클린아키텍처MVVM-CVIPERRIBsReactorKitTCA 코드 예제UIKit이랑 SwiftUI에서 모두 MVVM을 사용하는 기본 예제를 확인할 수 있도록 만들어 둠ViewModel..

Swift 디자인패턴 Observer Pattern (옵저버 패턴)

Swift 디자인패턴 Observer Pattern (옵저버 패턴) Observer Pattern은 객체 간의 일대다 관계를 정의해, 한 객체의 상태 변화가 다른 객체에 자동으로 알리는 행동 패턴. 히스토리2022-04-19: 디자인 패턴 스터디 정리2024-11-29: 포스팅 글 재정리 및 조금 더 실용적인 예제 코드로 변경   Observer PatternPrototype Pattern은 일반적으로 3개지 개념으로 구성됨Subject, Publisher, Observable(관찰하고자 하는 대상): 상태를 관리하며, 관찰자(Observer) 등록, 제거, 알림 기능을 제공Observer, Subscriber(관찰자): Subject의 상태 변경을 통보받는 객체 ConcreteSubject & Con..

Swift 디자인패턴 Memento Pattern (메멘토 패턴)

Swift 디자인패턴 Memento Pattern (메멘토 패턴) Memento 패턴은 객체의 내부 상태를 캡처해서, 이후 해당 상태를 복원할 수 있도록 하는 행동 패턴.객체의 데이터를 저장하고 복원해야 하는 상황에서 유용 히스토리2022-04-13: 디자인 패턴 스터디 정리2024-11-29: 포스팅 글 재정리 및 조금 더 실용적인 예제 코드로 변경 Memento Pattern메멘토 패턴은 일반적으로 3개지 개념으로 구성됨Originator: 상태를 생성하고, Memento 객체로 저장하거나 복원하는 역할Caretaker: Memento 객체를 관리하며, Originator의 상태를 저장하고 복원할 책임을 가짐.Memento: Originator의 상태를 저장하는 객체며, 캡슐화를 통해 Origina..

Swift 디자인패턴 Strategy Pattern (전략 패턴)

Swift 디자인패턴 Strategy Pattern (전략 패턴) Strategy 패턴은 행위(behavior)를 캡슐화하여 런타임에 알고리즘을 교체할 수 있게 해주는 행동 패턴동일한 문제를 해결하기 위해 여러 알고리즘이 존재할 때, 코드를 유연하고 확장 가능하게 만들 수 있음 히스토리2022-04-11: 디자인 패턴 스터디 정리2024-11-29: 포스팅 글 재정리 및 조금 더 실용적인 예제 코드로 변경 Strategy Pattern전략 패턴은 일반적으로 3가지 요소로 구성Context: 전략(Strategy)를 사용하는 객체로 클라이언트가 사용하는 인터페이스로, 구체적인 알고리즘(전략)은 Strategy 객체에 위임Strategy Interface: 알고리즘의 공통 인터페이스 정의Concrete S..

Swift 디자인패턴 MVC Pattern (MVC 패턴)

Swift 디자인패턴 MVC Pattern (MVC 패턴) MVC 패턴은 개발 아키텍처 중 하나로 모바일, 서버 등 다양한 곳에서 활용.다만 남용할 경우 Massvie View Controller라는 불리듯이 유지보수가 어려워질 수 있음.아주 간단한 기능을 제외하곤 유지보수를 위해 추천하지 않음. 히스토리2022-04-08: 디자인 패턴 스터디 정리2024-11-28: 포스팅 글 재정리 및 예제 변경 코드 예제가장 간단한 예제를 첨부일반적으로 View랑 ViewController를 분리하지 않고 사용MVVM 패턴 리팩토링: https://rldd.tistory.com/384 import UIKitimport SwiftUIimport Combineprivate struct Model { var nam..