이번 글에서는 Swift 공식 문서의 21번째 단원인 Protocols을 읽고 정리한 글을 쓰려고 합니다. Apple Swift 공식 문서 21단원 - Protocol Protocol Protocol은 특정 작업이나 기능에 적합한 메서드, 프로퍼티, 요구사항의 청사진을 정의합니다. 그런 뒤 이러한 요구사항의 실제 구현을 위해 Class, Struct, Enum에서 Protocol을 채택할 수 있습니다. 이때 Protocol이 요구하는 사항을 모두 충족하면 해당 타입은 Protocol을 준수한다고 합니다. 준수해야 하는 타입의 요구사항을 정의하는 것 외에도 요구사항의 일부를 구현하거나, 준수하는 타입에 추가 기능을 구현하기 위해 Protocol을 확장할 수도 있습니다. Protocol Syntax Prot..
안녕하세요 Pingu입니다.🐧 오늘은 Swift 5.5에서 공식문서에 추가된 내용인 Concurrency를 읽고 정리한 글을 써보려고 합니다. Swift 공식 문서 - Concurrency Concurrency Swift 5.5부터는 built in 방식으로 비동기 코드, 병렬 코드를 지원합니다. 비동기 코드는 일시 정지되었다가 나중에 다시 시작할 수 있지만 한 번에 프로그램의 한 부분만 실행하게 됩니다. 비동기로 코드를 작성하게 되면 UI 업데이트 같은 작업을 진행하면서 네트워크에서 데이터를 가지고 오거나 디스크에서 파일을 가지고 오는 등, 비교적 오래 걸리는 작업을 계속해서 실행할 수 있습니다. 즉 한 시점에 하나의 일만 하는 코드가 비동기 코드입니다. 병렬 코드의 경우에는 한 시점에 여러개의 코드들..
안녕하세요 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입니다.🐧 오늘은 iOS 개발에 쓰이는 Swift 언어에서 Class, Struct의 차이점이라는 주제를 가지고 글을 써보려고 합니다. iOS 개발자로 면접을 준비하다 보면 Class, Struct의 차이점이라는 질문을 자주 접하게 됩니다. 아주 간단하게 차이점을 보자면 "Class는 참조타입이고 ARC로 메모리 관리를 한다. Struct는 값 타입이다." 정도로 표현 할 수 있을 거 같습니다. 이 질문을 통해 ARC를 통한 메모리 관리, 참조 타입과 값 타입의 차이점 등을 함께 답변할 수 있을 거 같습니다. 저는 이 iOS 개발자 면접에서 자주 등장하는 해당 질문이 iOS 개발자에게 어떤 의미를 갖는지 좀 더 생각하게 되었고 좀 더 깊이 공부하게 되었습니다. 공부를 하다 보니 깨달은..
- Total
- Today
- Yesterday
- OSTEP
- Combine
- 코테
- dfs
- design
- OS
- IOS
- Xcode
- 테이블뷰
- 아이폰
- DP
- 스위프트
- 앱개발
- operator
- mac
- 동시성
- operating
- Swift
- 백준
- 자료구조
- System
- Apple
- 알고리즘
- BFS
- 문법
- pattern
- Publisher
- document
- 코딩테스트
- 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |