<aside>
💡 목차
</aside>
<aside>
💡 특정 클래스의 인스턴스가 프로그램 내에서 오직 하나만 존재하도록 보장하는 디자인 패턴
주로 자원을 공유해야 하는 상황에서 유용
일관된 상태를 유지하고 싶을 때 적합
</aside>
사용 예시
- 데이터베이스 연결이나 로그 파일 핸들러와 같이 시스템 전체에서 단 하나만 있어야 하는 리소스를 관리할 때 사용
1. 싱글톤 패턴의 구현 방법
1-1) 생성자를 비공개로 설정
- 클래스의 외부에서 new 키워드를 사용하여 인스턴스를 생성할 수 없도록 설정
1-2) 클래스 내부에서 인스턴스 생성
- 클래스 자체가 자신의 유일한 인스턴스를 생성하고 관리
1-3) 전역 접근점 제공
- 인스턴스에 접근할 수 있는 정적 메소드(보통 getInstance라고 명명)를 제공
- 필요할 때 인스턴스를 생성하고, 이미 인스턴스가 존재하면 기존 인스턴스를 반환
2. TypeScript에서의 싱글톤 패턴 구현 예제
- 로거 기능을 싱글톤으로 구현
- 로거는 애플리케이션의 다양한 부분에서 메시지를 로깅하는 데 사용
- Logger 클래스는 자신의 유일한 인스턴스를 관리하며, 이 인스턴스에 대한 전역 접근점을 제공