본문 바로가기

Swift

Swift - 싱글톤 디자인 패턴(Singleton Design Pattern)

싱글톤 디자인 패턴이란 특정한 클래스의 인스턴스가 유일하게 하나만 존재하도록 디자인하는 패턴입니다.

 

예를 들자면, 간단하게 유저 정보를 저장하기 위한 목적으로 싱글톤 디자인 패턴을 사용할 수 있습니다.

 

아래와 같이 static 키워드를 통해 해당 클래스 타입의 상수를 클래스 속성으로 선언합니다. 이 때 IOS에서는 shared라는 이름을 많이 사용합니다. (ex. AVAudioSession.sharedInstance() )

class UserInformation {

	static let shared: UserInformation = UserInformation()
    
    var name: String?
    var age: Int?
    var addr: String?

}

 

이렇게 생성한 싱글톤 객체를 통해 여러 인스턴스들이 유일하게 존재하는 하나의 인스턴스(싱글톤 인스턴스)를 동일하게 사용할 수 있습니다.

 

단, 멀티스레딩에서는 동시에 한 싱글톤 인스턴스를 참조할 경우 문제가 생길 수 있기 때문에 주의해야하며 보안의 측면에서도 약점이 있을 수 있습니다.