안녕하세요 Pingu입니다.🐧 지난 글에서는 Factory Method Pattern에 대해 알아봤는데요, 이번 글에서는 또 다른 Creational Pattern 중 하나인 Prototype Pattern(프로토타입)에 대해 알아보도록 하겠습니다. 프로토타입 패턴이란? 프로토타입 패턴의 정의는 코드를 클래스에 종속시키지 않고 기존에 존재하던 객체를 복사할 수 있는 디자인 패턴입니다. 어떤 객체가 존재하고 해당 객체와 정확하게 똑같은 객체를 만들고 싶을 때 프로토타입 패턴을 사용할 수 있습니다. 어떻게 하면 특정 객체와 동일한 객체를 만들 수 있을까요? 일단 클래스와 같은 참조 타입을 복사하는 방법에는 얕은 복사(shallow copy)와 깊은 복사 (deep copy)가 있습니다. 얕은 복사는 그냥 새..
안녕하세요 Pingu입니다.🐧 지난 글에서는 Builder Pattern에 대해 알아봤는데요, 이번 글에서는 또 다른 Creational Pattern 중 하나인 Factory Method Pattern(팩토리 메서드)에 대해 알아보도록 하겠습니다. 팩토리 메서드 패턴이란? 객체를 만들기 위한 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 하위 클래스가 정하도록 하는 방법입니다. 간단하게 말해서 객체 생성을 서브 클래스가 하도록 처리하는 패턴입니다. 즉 객체 생성을 캡슐화할 수 있으며 이로 인해 부모 클래스는 자식 클래스가 어떤 객체를 생성하는지 몰라도 됩니다. 팩토리 메서드 패턴은 위와 같은 구조를 갖습니다. Product Creator와 하위 클래스가 생성할 수 있는 모든 ..
안녕하세요 Pingu입니다.🐧 오늘부터 객체 지향 소프트웨어를 개발을 할 때 발생하는 문제의 해결방법을 생각할 때 다양한 방법을 떠올릴 수 있도록 디자인 패턴을 공부하려고 합니다. 공부에 참고할 책은 1994년에 쓰인 Design Patterns: Elements of Reusable Object-Oriented Software 라는 책과 Raywenderlich 사이트의 Design Patterns by Tutorials라는 책입니다. 전자는 거의 30년 전에 나온 책인데, 책에 있는 디자인 패턴들이 아직까지도 쓰인다니 정말 대단한 거 같아요. 공부 방법은 책으로 개념을 공부한 뒤, 다양한 디자인 패턴을 Swift예제로 구현해 볼 계획입니다! 그럼 이번 글에서는 디자인 패턴이 뭔지, 어떠한 디자인 패턴..
안녕하세요 Pingu입니다~🐧 iOS 앱은 처음 실행되고 종료될 때까지의 Life Cycle이 존재합니다. 앱이 background에 가거나 foreground로 진입하는 것도 모두 App Life Cycle의 일부분이죠. 이번 글에서는 이러한 App Life Cycle에 대해 알아보려고 합니다. 참고로 View Controller의 Life Cycle이랑은 전혀 다른 별개의 Life Cycle이며 View Controller의 Life Cycle은 여기를 참고해주세요~ 앱은 현재 Life Cycle의 상태에 따라 할 수 있는 작업과 할 수 없는 작업으로 나뉩니다. 상태에 따라 어떤일을 할 수 있는지에 대한 내용은 여기에 정리해뒀어요. 따라서 이러한 상태가 변화될 때 특정 클래스의 메서드를 통해 알리게 ..
안녕하세요 Pingu입니다! 🐧 혹시 이런 뷰를 앱을 사용하시다가 본 적이 있으신가요? 이러한 뷰를 구현하는 방법 중 스켈레톤 뷰(Skeleton View)라고 하는 오픈소스가 있어서 한 번 사용해보려고 합니다! 스켈레톤 뷰는 네트워크 통신을 하는 앱에서 통신하는 동안 화면에 아무것도 띄우지 않는 것보다는 위와 같이 뭔가 진행되고 있는 듯한 느낌을 줘서 사용자가 기다리는 체감 시간을 줄여줄 거 같아요. 스켈레톤 뷰의 코드는 아래 깃 허브 주소에 있습니다. github.com/Juanpe/SkeletonView Juanpe/SkeletonView ☠️ An elegant way to show users that something is happening and also prepare them to which..
안녕하세요! Ick입니다. 이번 글에서는 제가 앱 개발을 할 때 사용하면 정말 좋다고 느낀 UserDefaults라는 것에 대해 알아보려고 합니다. UserDefaults가 무엇인가요? 하고 물으신다면 간단하게 말하자면 "사용자의 정보를 저장하는 것"이라고 말할 수 있습니다. 예를 들어 사용자가 어떤 언어로 이 앱을 쓰고 싶은지에 대한 정보라던가 흔히들 보는 팝업창을 오늘은 그만 보기 같은 기능을 구현할 수 있도록 정보를 저장하는 것이죠! 우선 공식 문서는 여기 입니다. UserDefaults는 아까 말했듯 앱의 사용자의 정보를 Key-Value 쌍으로 계속 저장합니다. 이렇게 정보를 저장하여 앱에서 사용자 기본 설정들을 설정할 수 있습니다. 이 값은 앱의 프로세스 내에서 동기적으로 변경되며 영구 저장소..
안녕하세요 Pingu입니다. Apple의 Swift 공식문서를 모두 읽고 정리한 내용입니다. 첫 정독후 정리했지만 꾸준히 다시 읽으며 수정하고 있습니다! 원문은 Apple Swift 공식문서에서 볼 수 있습니다. Swift Language Guide [Swift_Documents] Swift 공식 문서 정리 - 1 - The Basics v2 [Swift_Documents] Swift 공식 문서 정리 - 2 - Basic Operators (연산자) [Swift_Documents] Swift 공식 문서 정리 - 3 - Strings and Characters (문자와 문자열) [Swift_Documents] Swift 공식 문서 정리 - 4 - Collection Types (컬렉션 타입) [Swift_..
안녕하세요 Ick입니다. 오늘은 UIWindow에 대해서 알아보려고 합니다. 참고한 공식 문서들은 아래와 같습니다. UIWindow View and Window Architecture Windows 먼저 UIView와 UIWindow가 어떻게 쓰이고 있는지부터 알아보겠습니다. 위 사진은 애플 공식문서에서 UIView와 UIWindow의 관계를 설명할 때 나오는 사진입니다. UIView에 대한 설명은 여기를 참고해주세요! iOS 12 까지는 App delegate에서 window를 생성해줬는데 iOS 13부터는 Scene delegate에서 window를 생성해줍니다. 이는 iOS 13 부터는 window를 여러 개 사용하는 multiple windows가 지원되기 때문이라고 합니다. 자세한 내용은 여기를..
- Total
- Today
- Yesterday
- design
- 동시성
- 문법
- 코딩테스트
- 프로그래밍
- Combine
- 알고리즘
- 테이블뷰
- BFS
- Xcode
- pattern
- Apple
- operating
- 스위프트
- Publisher
- 코테
- DP
- mac
- System
- OS
- IOS
- operator
- document
- Swift
- dfs
- 자료구조
- OSTEP
- 백준
- 앱개발
- 아이폰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |