1. 싱글톤의 개념
생성되는 인스턴스가 하나임을 의미하는 패턴입니다. 해당 클래스의 인스턴스가 1개만 존재함을 보장하고 싶을 때나 인스턴스가 1개만 존재함을 표현할 때 사용합니다.

2. 싱글톤의 요건
싱글톤은 하나의 인스턴스가 생성되는 것을 보장해야하기 때문에 new 키워드로는 객체를 생성할 수 없도록 생성자가 private이어야 하고 싱글톤을 생성하기 위해 공개된 static 메소드가 있어야 합니다. 이 때 다수의 스레드에서 이 메소드에 접근할 경우를 고려해 해당 메소드는 동기화 처리가 되어야 합니다.

3. 싱글톤의 효과
싱글톤은 이미 생성된 객체를 static 메소드를 통해 공개하기 때문에 여러 번 객체를 선언하여도 하나의 인스턴스가 할당됩니다. 이를 통해 복수의 인스턴스가 서로 영향을 끼쳐 문제를 일으킬 소지를 방지할 수 있습니다.

4. 싱글톤의 사례
데이터베이스의 커넥션풀이나 스레드의 스레드풀과 같이 하나의 인스턴스가 관리를 위해 쓰이는 경우, 시스템 설정값 등을 불러오는 경우가 있습니다.