객체지향 디자인 패턴 중 하나. 특정 클래스의 인스턴스가 하나만 생성되고, 이후에도 항상 같은 인스턴스를 반환하는 패턴. 전역적으로 하나의 공유된 인스턴스를 유지하고 접근. 주로 자원을 공유하거나 공통된 설정 값을 사용하는 경우 적용.
생성자를 private으로 선언하여 직접적인 인스턴스 생성을 막는다.
정적 메소드를 통해 클래스 내부에서 유일한 인스턴스를 생성하거나 반환.
처음 생성한 인스턴스를 저장하고 그 이후에도 같은 인슨턴스를 반환.