출처 : 디자인 패턴에 뛰어들기 - 알렉산더 슈베츠 도서싱글턴클래스에 인스턴스가 하나만 있도록 하면서 이 인스턴스에 대한 전역 접근(액세스) 지점을 제공하는 생성 디자인패턴이다.문제싱글턴 패턴은 한 번에 두 가지의 문제를 동시에 해결함으로써 단일 책임 원칙을 위반한다.1. 클래스에 인스턴스가 하나만 있도록 한다. 클래스의 인스턴스를 제어하는 가장 일반적인 이유는 공유 리소스(예: 데이터베이스 또는 파일)에 대한 접근을 제어하기 위해서이다. 객체를 생성하고 나면, 같은 객체를 계속 사용할 수 있다.클라이언트들은 항상 같은 객체와 작업하고 있다는 사실을 인식조차 못 할 수 있다.2. 전역 접근 지점을 제공한다. 필요한 객체에 쉽게 접근할 수 있지만, 이로 인해 다른 코드가 객체를 덮어쓸 수 있어 충돌 가능성..