singleton

    [Swift] Singleton과 Thread-Safe

    여러 개의 뷰 컨트롤러가 유저의 아이디와 닉네임을 사용해야하는 상황이 있었다. 각 뷰 컨트롤러 클래스에 유저의 아이디와 닉네임을 저장하는 프로퍼티를 정의하여 초기화 시 그 값들을 넘겨주는 방식이었는데, 그렇게 하지않고 유저 정보를 저장하는 공유 객체를 만들어서 필요할때마다 참조하면 편할 것 같다는 생각이 들어 싱글톤 디자인 패턴을 적용하려고 했다. 로그인이 완료된 시점에 싱글톤 객체를 생성하고 로그아웃 시 객체 메모리를 해제하는 방법을 찾다가 우연히 Thread-Safe에 대해 공부하게 된 것을 정리한다. 보통 Swift에서 싱글톤 패턴 구현 방법을 찾으면 아래의 방법이 사용된다. class Singleton { static let shared = Singleton() private init(){} } ..