안녕하세요 Pingu입니다.🐧 오늘은 iOS에서의 Coordinator Pattern이라는 패턴에 대해 알아보는 글을 써보려고 합니다. 공부하다 보니 이 패턴을 만든 사람이 있었습니다. KHANLOU라는 블로그를 운영하는 사람인데.. 거기에 The Coordinator라는 글이 코디네이터 패턴의 시작..? 같습니다. 그리고 이 글을 쓰고 나서 몇 달 뒤에 좀 더 정리해서 Coordinators Redux라는 글을 또 작성했는데, 이 두 개의 글을 읽고 정리해 보겠습니다.Coordinator Pattern 탄생 배경글이 2015년에 작성되었는데 그때부터 iOS 개발자들은 이미 Massive ViewController가 문제가 되고 있었던 거 같습니다.이 사람이 코디네이터 패턴을 생각하게 된 기존 문제점은..
안녕하세요 Pingu입니다!🐧 지난 글에서는 행동 패턴 중 하나인 Template Method Pattern(템플릿 메서드)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Visitor Pattern에 대해 알아보도록 하겠습니다. 방문자 패턴이란? Visitor Pattern(방문자)은 알고리즘을 작동하는 객체에서 분리할 수 있는 디자인 패턴입니다. Visotor를 사용하면 작업이 수행되는 객체의 클래스를 변경하지 않고도 새로운 알고리즘을 정의할 수 있게 됩니다. Visitor Concrete Element를 매개변수로 사용할 수 있는 visit 메서드들을 정의합니다. 언어가 오버 로딩을 지원하는 경우 메서드 이름이 같을 순 있지만 매개변수의 타입은 달라야 합니다. Concrete ..
안녕하세요 Pingu입니다!🐧 지난 글에서는 행동 패턴 중 하나인 Strategy Pattern(전략)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Template Method Pattern에 대해 알아보도록 하겠습니다. 템플릿 메서드 패턴이란? Template Method(템플릿 메서드)는 부모 클래스에서 여러 메서드로 이루어진 알고리즘의 틀을 정의합니다. 이러한 알고리즘 틀을 Template Method라고 하며, 하위 클래스는 Template Method에서 단계별로 이루어진 메서드들을 override 할 수 있도록 만들어 구조를 변경하지 않고 알고리즘의 특정 단계를 재정의 할 수 있도록 하는 디자인 패턴입니다. Abstract Class (Application) Abstra..
안녕하세요 Pingu입니다!🐧 지난 글에서는 행동 패턴 중 하나인 State Pattern(상태)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Strategy Pattern에 대해 알아보도록 하겠습니다. 전략 패턴이란? Strategy Pattern(전략)은 Algorithm Family를 정의하고 각 알고리즘을 캡슐화 한 뒤 런타임에서 알고리즘을 서로 바꿔 사용할 수 있는 디자인 패턴입니다. Strategy (Compositor) 지원되는 모든 알고리즘에 사용되는 공통적인 인터페이스를 정의합니다. Context는 Strategy 인터페이스를 사용하여 Concrete Strategy에 정의된 알고리즘을 호출합니다. Concrete Strategy Strategy 인터페이스를 사용하..
안녕하세요 Pingu입니다!🐧 지난 글에서는 행동 패턴 중 하나인 Observer Pattern(옵저버)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 State Pattern에 대해 알아보도록 하겠습니다. 상태 패턴이란? State Pattern은 런타임에서 내부의 상태가 변경 될 때 객체가 동작을 변경할 수 있도록 하여 마치 객체가 클래스를 변경하는 것처럼 보이게 하는 패턴입니다. Context Context는 Concrete State 객체 중 하나에 대한 참조를 저장하고 모든 State의 작업을 위임합니다. Context는 State Interface를 통해 State 객체와 통신합니다. State State의 메서드를 제공합니다. Concrete State State Int..
안녕하세요 Pingu입니다!🐧 지난 글에서는 행동 패턴 중 하나인 Memento Pattern(메멘토)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Observer Pattern(옵저버)에 대해 알아보도록 하겠습니다. 옵저버 패턴이란? Observer Pattern(옵저버)이란 관찰 중인 객체에서 발생하는 이벤트를 여러 다른 객체에 알리는 메커니즘을 정의할 수 있는 디자인 패턴입니다. iOS에서는 Swift 5.1 버전부터 Combine 프레임워크에 Publisher가 추가되어 이를 사용할 수 있고 NotificationCenter도 비슷하게 사용할 수 있습니다. Subject (Publisher) Observer들을 가지고 있으며 개수는 제한이 없습니다. Observer들을 추가..
안녕하세요 Pingu입니다!🐧 지난 글에서는 행동 패턴 중 하나인 Mediator Pattern(중재자)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Memento Pattern(메멘토)에 대해 알아보도록 하겠습니다. 메멘토 패턴이란? Memento Pattern은 구현의 세부 사항을 공개하지 않고, 즉 캡슐화를 위반하지 않고 객체의 이전 상태를 저장하고 복원할 수 있는 디자인 패턴입니다. Originator 자체적으로 현재의 state를 저장하는 Memento 객체를 생성할 수 있습니다. State를 복원하기 위해 Memento를 사용합니다. Memento Originator의 state에 대한 스냅샷 역할을 하는 객체입니다. Originator 이외 객체의 접근으로부터 보호합니..
안녕하세요 Pingu입니다.🐧 지난 글에서는 행동 패턴 중 하나인 Iterator Pattern에 대해 알아봤는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Mediator Pattern(중재자)에 대해 알아보도록 하겠습니다. 중재자 패턴이란? Mediator Pattern은 객체 간 종속성을 줄일 수 있는 패턴입니다. 객체 간 직접 통신을 제한하고 Mediator 객체를 통해서만 통신을 가능하게 하여 상호 작용을 독립적으로 만들도록 하는 패턴입니다. Mediator Colleague 객체와 통신하기 위한 인터페이스를 정의합니다. 일반적으로 하나의 알람 메서드만 정의하여 Colleague와의 통신 방법을 정의합니다. Concrete Mediator Colleague 객체와 함께 작동할 행동들을 구현..
- Total
- Today
- Yesterday
- BFS
- DP
- Apple
- 프로그래밍
- Swift
- 자료구조
- 테이블뷰
- System
- IOS
- Publisher
- 동시성
- 문법
- OSTEP
- 스위프트
- 알고리즘
- document
- 코테
- 코딩테스트
- Combine
- dfs
- design
- operating
- pattern
- Xcode
- OS
- 아이폰
- 앱개발
- 백준
- operator
- mac
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |