[swift] Singleton 디자인 패턴의 장단점

Singleton 패턴은 소프트웨어 디자인에서 많이 사용되는 패턴 중 하나입니다. 이 패턴은 하나의 클래스가 오직 하나의 객체만을 생성하고, 이 객체에 대한 전역 접근점(global access point)을 제공합니다. 이 글에서는 Singleton 패턴의 장단점에 대해 살펴보겠습니다.

장점

1. 전역 접근성

Singleton 패턴을 사용하면 어디서나 동일한 객체 인스턴스에 접근할 수 있습니다. 이는 일관성 있는 데이터 상태 및 동작을 보장하고, 객체 간의 정보 교환을 용이하게 합니다.

2. 리소스 절약

한 번 생성된 객체를 재사용함으로써 메모리 및 시스템 리소스를 절약할 수 있습니다.

3. 유연한 인스턴스 제어

Singleton 패턴은 단일 객체의 생성 및 제어를 담당하기 때문에, 인스턴스화 프로세스를 유연하게 관리할 수 있습니다.

단점

1. 전역 상태

Singleton 객체는 전역적으로 접근 가능하므로, 다른 객체들이 의존성을 갖게 될 경우 의존성이 복잡해질 수 있습니다.

2. 테스트 어려움

전역 객체이기 때문에 다른 클래스나 테스트 환경과의 독립성을 유지하기 어려울 수 있습니다.

3. 단일 책임 원칙 위배

Singleton 클래스는 자신의 인스턴스 생성을 스스로 담당합니다. 이는 클래스가 여러 책임을 갖는다는 단일 책임 원칙을 위배할 수 있습니다.

Singleton 패턴은 사용처나 상황에 따라 장단점이 다르므로, 적용 시 고려해야 합니다.CommandLine