하나의 인스턴스만 생성할 수 있으며, 새로운 인스턴스 생성 요청 시 이미 생성된 인스턴스를 전달합니다.
장점
하나의 인스턴스만 존재하기 때문에 고정된 메모리 영역을 차지하며 메모리 낭비를 방지할 수 있습니다.
이 인스턴스를 통해 데이터 공유가 쉽습니다.
불리
테스트하기 어렵다
내부 데이터는 여러 곳에서 사용되기 때문에 쉽게 변경될 수 있어 변수 제어가 쉽지 않습니다.
클라이언트는 개체에 종속됩니다.
내부적으로 새로운 인스턴스를 생성하려고 시도하고 생성된 인스턴스를 회수하는 방식으로 인해 의존성이 발생합니다.
-> 컨테이너와 의존성 주입으로 해결 가능
여러 위치에서 인스턴스를 참조할 때 동시성 문제가 발생할 수 있습니다.
하위 클래스를 만들 수 없습니다.
변경하기 어려운 내부 상태

