안녕하세요 Pingu입니다.🐧 지난 글에서는 Prototype Pattern에 대해 알아봤는데요, 이번 글에서는 또 다른 Creational Pattern 중 하나인 Singleton Pattern(싱글턴)에 대해 알아보도록 하겠습니다! 싱글턴 패턴이란? 싱글턴 패턴은 하나의 프로그램에서 단 하나의 객체만 있어도 되는 경우 해당 객체를 한 번만 생성하고, 모든 곳에서 접근 가능하게 해주는 패턴입니다. 싱글턴 패턴을 사용할 객체는 한 번만 생성되어야 하며 프로그램의 모든 곳에서 접근이 가능한 전역 변수여야 합니다. 한 번만 생성되어야 하므로 생성자를 private 접근 수준으로 만들어야 하고 이를 생성하기 위해서 static 생성 메서드를 만들고 static 변수에 할당해주면 됩니다. 저는 iOS 개발을 ..
안녕하세요 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_..
- Total
- Today
- Yesterday
- DP
- 프로그래밍
- System
- operator
- 아이폰
- design
- Xcode
- Swift
- OSTEP
- 테이블뷰
- 백준
- Apple
- mac
- dfs
- 스위프트
- 앱개발
- pattern
- 문법
- 동시성
- IOS
- Combine
- OS
- operating
- BFS
- 코딩테스트
- 자료구조
- document
- 코테
- 알고리즘
- Publisher
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |