[Effective Java] Item 3. private 생성자나 enum 타입으로 싱글톤임을 보장하자.
Dongwoongkim
싱글톤이란? 싱글톤이란 인스턴스를 단 1개만 생성할 수 있는 클래스를 말합니다. ex) 무상태 객체, 설계 상 유일해야 하는 시스템 컴포넌트 (service, repository) 싱글톤 장점 한 번의 객체 생성으로 재사용이 가능하기 때문에, 메모리 낭비를 줄일 수 있습니다. 싱글톤으로 생성된 객체는 전역성을 띄기 때문에 다른 객체와 공유가 용이합니다. 싱글톤 단점 클라이언트를 테스트하기 어렵습니다. private 생성자를 가지고 있기 때문에 상속이 불가능합니다. 서버에서 클래스 로더를 어떻게 구성하고 있는지에 따라 또는 여러 개의 JVM에 분산되어 있는 경우 싱글톤 클래스여도 하나 이상의 인스턴스가 만들어질 수 있습니다. 전역 상태로 사용할 수 있기 때문에 바람직하지 못합니다. 사실 아무 객체나 자유롭..