소피it블로그

[Swift] 싱글턴 활용하여 공유 자원 관리하기 본문

개발_iOS/스위프트

[Swift] 싱글턴 활용하여 공유 자원 관리하기

sophie_l 2022. 8. 16. 20:44

https://developer.apple.com/documentation/swift/managing-a-shared-resource-using-a-singleton

 

Apple Developer Documentation

 

developer.apple.com

단 하나의 공유된 클래스 인스턴스를 사용하여 공유 자원에 접근할 수 있게 하기

 

1. 개요

 

싱글턴은 전역적으로 접근 가능한 클래스의 공유 인스턴스를 제공하기 위해 사용한다. 효과음을 재생하기 위한 오디오 채널이나 HTTP 요청을 만들기 위한 네트워크 매니저처럼, 앱 전체에서 공유되는 자원이나 서비스에 접근하는 공통된 방법으로써 자신만의 싱글턴을 만들 수도 있다.

 

2. 싱글턴 생성하기

 

간단한 싱글턴은 static 타입 프라퍼티를 통해 생성하는데, 이는 동시다발적으로 여러 스레드에서 접근된다 하더라도 단 한 번 lazy하게 초기화됨을 보장받는다.

class Singleton {
    static let shared = Singleton()
}

초기화 이후에도 추가적인 셋업이 필요하다면 클로저의 invocation의 결과를 전역 상수에 할당해주면 된다.

class Singleton {
    static let shared: Singleton = {
        let instance = Singleton()
        // setup code
        return instance
    }()
}