소프트웨어를 개발하다 보면 특정 객체가 애플리케이션 전체에서 단 하나만 존재해야 하는 경우가 있습니다. 대표적으로 데이터베이스 연결 객체, 설정Configuration 관리 객체, 로그Logger 객체, 캐시Cache 관리자 등이 있습니다.