[TIL] 싱글톤 패턴

Eden·2025년 7월 11일

싱글톤 패턴은 애플리케이션 전역에서 단 하나의 인스턴스만 존재하도록 보장하는 디자인 패턴입니다.
공통 자원(예: 네트워크 매니저, 유저 세션, 로깅 등)을 공유해야 할 때 사용됩니다.


1. 싱글톤 패턴이란?

  • 클래스의 인스턴스를 하나만 생성하고, 어디서든 동일한 인스턴스에 접근 가능하게 하는 패턴
  • 객체가 여러 번 생성되는 것을 방지
  • 전역 접근 지점을 제공

2. Swift에서의 싱글톤 구현

class MyManager {
    static let shared = MyManager()

    private init() {
        // 외부에서 init 호출 방지
    }

    func doSomething() {
        print("작업 실행")
    }
}
  • static let shared로 전역 인스턴스를 정의
  • private init()으로 외부에서 인스턴스 생성 제한

3. 사용 예시

MyManager.shared.doSomething()

4. 싱글톤의 장점

  • 어디서든 접근 가능
  • 메모리 효율적 (1개의 인스턴스)
  • 상태 공유에 용이

5. 싱글톤의 단점

  • 테스트 어려움 (전역 상태 공유로 인해 의존성 주입 어려움)
  • 코드의 결합도 증가
  • 남용 시 유지보수 복잡도 증가

6. 사용 사례

  • 네트워크 관리 (APIManager)
  • 사용자 세션 관리 (UserSessionManager)
  • 설정 또는 캐시 관리

결론

싱글톤은 공통 자원을 관리하거나 상태를 공유할 때 유용한 패턴입니다.
다만, 남용을 피하고 의존성을 분리하여 테스트 가능성과 유지보수성을 고려한 설계가 필요합니다.

profile
iOS Dev

0개의 댓글