
MVC (Model - View - Controller) MVC 패턴은 디자인 패턴 상위에 있는 아키텍쳐 패턴이다. Model - View -Controller 로 나누어 프로젝트를 관리한다. 코드를 역할에 맞게 나누어 디버깅을 쉽게하고 깔끔하게 관리할 수 있도록 해준다. 애플의 UIKit 에서는 기본적으로 MVC 패턴을 기본으로 사용한다. Model Model은 앱의 데이터와 관련되어 있다. 데이터를 어떤 식으로 저장할지 객체를 만들고 네트워크에서 받아오는 데이터 모두 Model에 포함된다. Model은 View와 직접적으로 연결되지 않는다. View 유저에게 보여주는 View (=User Interface) 이다. 유저의 입력을 받아 Controller에게 전달해준다. UIKit에서는 Storyboa..

Observer(옵저버) - behavioral pattern (행동 패턴) 옵저버 패턴은 여러 개의 객체들이 관찰할 객체를 구독(subscribe)하고 관찰하는 패턴이다. 유튜브 채널 구독과 똑같이 생각하면 편하다. 구독을 하면 채널에 새로운 영상이 올라올 때 구독자들에게 알람이 전송된다. 옵저버 패턴에서도 관찰할 객체 Publisher의 상태가 바뀌면 구독한 객체 Subscriber들이 그 변화를 알게된다. Publisher Publisher의 상태가 변하거나 일부 동작을 실행할 경우 관찰하고 있는 객체들 Subscriber에게 알립니다. 구독/구독취소를 하는 subscribe, unsubscribe 메소드를 가지고 있습니다. Subscriber Subscriber는 알림(notification) 인..

Template Method (템플릿 메소드) - Behavioral Pattern (행동 패턴) 템플릿 메소드(Template Method)는 슈퍼클래스에서 알고리즘의 뼈대는 정의하고 서브클래스에서 구체적인 알고리즘을 구현하는 패턴이다. Abstract Class (추상 클래스) 추상 클래스는 알고리즘을 쪼개 단계적으로 동작하는 메소드 step 들을 정의합니다. 뿐만 아니라 이런 메소드를 특정 순서로 호출하는 템플릿 메소드를 선언합니다. step 들은 추상적이거나 기본 동작만을 가집니다. Concrete Class Concrete Class는 모든 step들을 재정의(override) 합니다. 이 때 탬플릿 메소드는 재정의하지 않습니다. When? 기본 알고리즘의 구조는 바꾸지 않고 확장을 해야할 때 ..

Adapter(어댑터) - Structural Pattern (구조 패턴) 어댑터는 충전기 어댑터를 생각하면 이해하기 쉽다. 충전기는 220V의 전압을 5V로 바꿔 핸드폰을 충전한다. 어댑터 패턴도 마찬가지로 서로 다른 인터페이스를 가진 클래스를 연결해준다. 어댑터 패턴은 객체 어댑터(Object Apater)와 클래스 어댑터(Class Adapter) 2개로 나눌 수 있다. 객체 어댑터(Object Adpater) Client Client는 프로그램에서 비즈니스 로직을 가지고 있는 클래스이다. Client Interface Client Interface는 Client 코드를 사용하기 위해 지켜야할 프로토콜을 정의한다. Client Interface를 사용함으로써 Adapter 클래스가 바껴도 Clien..

Decorator (데코레이터) - Structural Pattern (구조 패턴) Decorator 는 객체 A에 새로운 기능을 추가하고 싶을 때, 기능을 가지고 있는 특정 wrapper 객체 속에 객체 A를 배치함으로써 기능을 추가하는 디자인 패턴이다. 래퍼 안에 감싸기 때문에 Wrapper Design Pattern이라고도 불린다. Components Components는 래핑하는 객체랑 래핑당하는 객체 모두에게 공통의 인터페이스를 제공합니다. Concrete Components 감싸지는 객체. 기본 동작을 가지고 있습니다. 기본 동작은 Decorator에 의해 대체됩니다. Base Decorator 감싸지는 객체(=Concrete Components)를 참조하는 필드를 가지는 클래스입니다. 필드의..

Facade (퍼사드) - Structural Pattern (구조 패턴) Facade 패턴은 ios UI 디자인 패턴 중 하나로써 복잡한 프로그램에 대해 간단한 인터페이스를 제공한다. Client 복잡한 Subsytem을 직접 호출하지 않고 퍼사드를 사용한다. Facade 퍼사드는 서브 시스템의 기능에 쉽게 접근할 수 있게 해준다. Additional Facade 퍼사드가 너무 복잡해질 경우, 추가적으로 퍼사드를 생성해 분리해 줄 수 있다. Subsystem 서브 시스템은 여러 개의 객체들로 구성되며 복잡하다. 서브 시스템은 퍼사드의 존재를 모른다. 서브시스템은 외부 라이브러리 혹은 다른 개발자가 작성한 코드로 생각할 수 있다. 기능을 사용하지만 완전히 이해할 필요가 없는 시스템들이다. 우리가 프레임워..
- Total
- Today
- Yesterday
- 프로그래머스
- TODO
- 앱개발
- 개발
- 책
- 날씨어플
- Swift공식문서
- 코딩 테스트
- vapor
- todo앱
- Swift 디자인 패턴
- 필독서
- 책후기
- 부스트캠프iOS
- 디자인 패턴
- SwiftUI
- Swift문법
- 애플
- 책리뷰
- UX
- 코딩
- 부스트캠프
- Swift DocC
- ios
- 코딩테스트
- Swift 서버
- 부스트캠프7기
- Swift
- swiftUI 기초
- Combine
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |