[iOS] Singleton Pattern

ohtt-iOS·2021년 10월 10일
0

iOS

목록 보기
20/24
post-thumbnail

💡 Singleton Pattern

  • 프로젝트 내에서 객체를 하나만 생성하여 공용으로 사용
  • 이 객체는 생성되면 임의로 메모리에서 해제하지 않는이상 프로그램이 끝날 때까지 메모리에 유지된다.

iOS에서 기본적으로 사용하는 싱글톤 패턴의 객체 예시

// Shared URL Session
let sharedURLSession = URLSession.shared

// Default File Manager
let defaultFileManager = FileManager.default

// Standard User Defaults
let standardUserDefaults = UserDefaults.standard

// Default Payment Queue
let defaultPaymentQueue = SKPaymentQueue.default()

유의사항

  • 여러 객체에서 동시에 접근할 수 있는 가능성이 있기 때문에 접근 순서를 파악하기 힘들고 그로 인한 문제가 생길 수 있음

의존성주입 (Dependency Injection)

  • 큰 프로젝트에서 DI는 Singleton 패턴의 좋은 대체제가 될 수 있다

    → 리스크가 적고, 예측가능한 코드를 짤 수 있음 ( 이후에 좀 더 자세히 알아보면 좋을 듯 )


Singleton pattern은 CleanCode를 지향하는 사람들에게 안티패턴으로 다루어지지만
DI를 구현하는 것보다 훨씬 쉽고 간편하기 때문에 프로젝트의 크기, 복잡도에 따라서 잘 맞는 방법을
선택하는 것이 중요하다


공식문서

Apple Developer Documentation

참고자료

Singleton vs Dependency Injection in Swift
What Is a Singleton and How To Create One In Swift

profile
오뜨 삽질 🔨 블로그

0개의 댓글