4T2F / ThinkBig

🌟씽크빅 스터디🌟
5 stars 1 forks source link

Swift의 싱글톤 패턴(Singleton Pattern)에 대해 설명하시오. #32

Open ha-nabi opened 7 months ago

ha-nabi commented 7 months ago

편하게 보실려면 여기에서 보시면 됩니다.

싱글턴 패턴(Singleton Pattern)

싱글턴 패턴은 소프트웨어 설계 패턴 중 하나로, 클래스의 인스턴스가 오직 하나만 생성되도록 보장합니다.

이 패턴은 전역적으로 접근 가능한 단일 인스턴스를 제공하여, 애플리케이션 내에서 공유 리소스에 대한 중앙 집중적 관리를 가능하게 합니다.

예를 한번 들어보죠,

우리 집 고양이가 있어요. 아니 없는데 있다고 칩니다. 이름은 "휴지"라고 합시다. 이 휴지가 특별한 이유는 우리 집에 단 하나뿐이기 때문이죠. 어디서나 휴지를 찾으면 그 휴지는 바로 우리 집 고양이, 유일무이한 존재입니다.

이렇듯, 싱글턴 패턴도 우리 집 휴지처럼 앱 전체에서 단 하나만 존재해야 하는 특별한 패턴입니다.


싱글턴 패턴, 언제 사용해야 하나요?

싱글턴 패턴은 마치 냉장고처럼, 모두가 공유해야 하는 리소스나 서비스에 적합합니다.


싱글턴 패턴, 어떻게 만드나요?

싱글턴 패턴을 만드는 건, 냉장고에 '휴지 전용'이라고 스티커 붙이는 것만큼 간단합니다.

간단하게 코드로 예시를 들어보자면,

class CatSingleton {
    static let shared = CatSingleton()
    private init() {}

    func miaow() {
        print("야옹~")
    }
}
  1. 클래스 내에 static 키워드를 사용하여 싱글턴 인스턴스를 선언합니다.

  2. 외부에서 인스턴스를 생성하지 못하도록 생성자를 private으로 설정합니다.


이렇게 객체를 만들어 주면 이제 독립적인 하나의 휴지가 되었습니다. 이제 휴지를 부를 땐 언제든

CatSingleton.shared를 통해 앱 전체 어디서나 휴지의 야옹을 들을 수 있습니다.


사용할 때 주의사항은?

싱글턴 패턴을 남발하면 마치 집안에 고양이가 너무 많아져서 아무 곳에나 야옹 소리가 울려퍼지는 것과 같습니다.

메모리 사용, 전역 상태 관리, 코드의 유연성이 떨어질 수 있으니 주의해야 합니다.

휴지가 우리 집에서만 유일한 것처럼, 정말 필요한 곳에서만 싱글턴 패턴을 사용해야 합니다.


마무리하며

싱글턴 패턴은 편하게 사용할 수 있는 강력한 도구지만, 모든 상황에 편리하게 사용될 수 있는 건 아니다.

휴지가 우리 집에서 행복하게 지내듯, 싱글턴도 적절히 사용했을 때 그 진가를 발휘한다.

싱글턴의 사용은 코드의 복잡성 증가와 테스트 어려움을 초래할 수 있으므로, 사용 전에 그 필요성과 대안을 면밀히 검토해야 한다.