일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 어댑터패턴
- WKWebView
- 템플릿메서드
- 스테이트패턴
- cocoapods
- 추상팩토리패턴
- 전략패턴
- 컴포지트패턴
- 파사드패턴
- Scenedelegate
- unowned
- 상태패턴
- ios
- 스트래터지패턴
- SWIFT
- ViewController
- 컴파운드패턴
- DispatchQueue
- 이터레이터패턴
- 프록시패턴
- 옵저버패턴
- 커맨드패턴
- RxSwift
- Mobile
- Xcode
- Lifecycle
- 팩토리메서드패턴
- 싱글턴패턴
- 디자인패턴
- 데코레이터패턴
- Today
- Total
목록분류 전체보기 (65)
ios dev kangwook.

Split View 와 관련된 버그가 많이 들어오기도 하고, iOS13을 최소 버전으로 잡게되면 Scene을 적용시킬 수 있으므로, 한 번 짚고 넘어가려고 한다. Split View iPadOS에서 사용되는 개념으로, UISplitViewController와는 다르다. Multiple Window의 한 종류로, Slide Over라고 하는 앱위에 창을 띄우는 듯한 윈도우와 비슷하다. Split View같은 경우는 Scene이 도입된 iOS13버전에서 만들어졌고, Split View를 이해하려면 Scene의 Life Cycle을 알아야 한다. Scene-Based Life Cycle Scene이 도입되면서, App 단위의 상태 변화 관리에서 Scene단위로 상태 변화를 관리한다. Scene은 각자 자신만의..
각각의 요소들은 24개의 16진수 표현을 사용하여 96비트 식별자를 표현 구성 Root Element PBXBuildFile PBXBuildPhase PBXAppleScriptBuildPhase PBXCopyFilesBuildPhase PBXFrameworksBuildPhase PBXHeadersBuildPhase PBXResourcesBuildPhase PBXShellScriptBuildPhase PBXSourcesBuildPhase PBXContainerItemProxy PBXFileElement PBXFileReference PBXGroup PBXVariantGroup PBXTarget PBXAggregateTarget PBXLegacyTarget PBXNativeTarget PBXProject P..
WWDC2022에서 다뤘던 새로운 키워드나 기술들을 다뤄보려고 한다. 일단 Swift 섹션에서 소개한 내용인데, Swift 5.7부터 나오는 some, any에 대해 소개하고자 한다. 사실 some은 그 전부터 존재했다. SwiftUI를 사용할 때 보면 struct ContentView: View { var body: some View { // ... } } 이런 구문들을 많이 봤을텐데, 여기서 이미 some이란 키워드는 사용되고 있었다. 기존 쓰이고 있었던 some 키워드는 리턴 타입을 자동으로, 그리고 빠르게 추론할 수 있는 기능이라고 할 수 있다. 이러한 some과 any를 알아보기에 앞서 Opaque Type에 대해서 먼저 알아보는 시간을 가지려고 한다. 불투명한 타입(Opaque Type)은 s..
Compound Pattern은 두 개 이상의 패턴을 결합해 일반적으로 자주 등장하는 문제들에 대한 해법을 제공 Compound Pattern 컴파운드 패턴은 딱히 정해진 의미나 장단점이 뚜렷하지 않음 상황에 맞게 서로 다른 패턴을 섞어쓰는 디자인 패턴이기 때문 주의할 점은 패턴 몇 개를 결합해서 쓴다고 무조건 컴파운드 패턴이 되는 것이 아님 컴파운드 패턴이라 불리기 위해서는 여러 문제를 해결하기 위한 용도로 쓰일 수 있는 일반적인 해결책이어야 함Context : State를 이용하는 역할을 수행 Compound Pattern 예제 1장에서 작성했던 Duck 예제의 리팩토링 Quackable 인터페이스 정의No Quarter : 동전 없음 public interface Quackable{ public v..

Proxy Pattern은 어떤 객체를 사용하고자 할 때 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대신하는 객체를 통해 대상 객체에 접근하는 패턴 Proxy Pattern Proxy Pattern은 다른 객체에 대한 접근을 제어할 대리 또는 placeholder를 제공한다. Subject Proxy와 RealSubject가 구현해야하는 인터페이스 두 객체를 동일하게 다룸 RealSubject 실질적으로 요청에 대해 주된 기능을 수행하는 객체 Proxy객체는 내부적으로 이 객체를 로직에 맞게 사용 Proxy Subject를 구현함으로써 클라이언트는 RealSubject 사용하는 것과 별 차이가 없어야 함 Proxy Pattern 예제 자바의 reflect 패키지에 내장되어있는 Proxy 클래스를 ..

State Pattern은 객체가 특정 상태에 따라 행동을 달리하는 상황에서 상태를 객체화하여 상태가 행동할 수 있도록 위임하는 패턴 State Pattern State Pattern은 객체의 특정 상태를 클래스로 선언하고, 클래스에서는 해당 상태에서 할 수 있는 행위들을 메소드로 정의한다. 그리고 이러한 각 상태 클래스들을 인터페이스로 캡슐화하여 Context에서 인터페이스를 호출한다. Context : State를 이용하는 역할을 수행 State : 시스템의 모든 상태에 대한 공통 인터페이스를 제공. 이 인터페이스를 구현한 상태 클래스는 서로를 대신해 교체해서 사용할 수 있음 ConcreteState : Context객체가 요청한 작업을 자신의 방식으로 실제 실행. 대부분의 경우 다음 상태를 결정해 ..

Composite Pattern은 여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 같은 타입으로 취급하며, 트리 구조로 객체들을 엮는 패턴 Composite Pattern Composite Pattern을 사용하면 객체를 트리 구조로 합성하여 부분 - 전체 계층을 나타낼 수 있다. 이를 통해 클라이언트는 단일 객체와 복합 객체의 구성을 균일하게 처리할 수 있다. Component : Leaf와 Composite가 구현해야하는 클래스 또는 인터페이스로, Leaf와 Composite 모두 Component라는 같은 타입으로 다뤄짐 Leaf : 단일 객체로 Composite의 부분 객체로 들어가게 됨. 이 때 Component 형태로 들어가게 됨 Composite : 집합 객체로 Leaf 객..

Iterator Pattern은 집합체의 구현 방법을 노출시키지 않고 그 안에 존재하는 모든 항목에 접근할 수 있도록 하는 패턴 Iterator Pattern Iterator Pattern은 캡슐화를 통해 집합 객체의 요소에 순차적으로 접근할 수 있는 방법을 제공한다. Aggregate : 여러 요소들로 구성된 컬레션 인터페이스(데이터가 저장되어 있는 자료구조 → 집합체) ConcreteAggregate : Aggregate 인터페이스 구현체 Iterator : 컬렉션의 요소들을 순서대로 검색하기 위한 인터페이스 ConcreteIterator : Iterator 인터페이스 구현체 Iterator Pattern 예제 두 개의 서로 다른 식당이 있고 각각의 식당에서 메뉴를 조건에 따라 출력하는 예제 메뉴 아..