싱글턴 패턴(Singleton Pattern)은 객체가 딱 1개만 필요하고, 코드의 다양한 곳에서 접근해야 할 때 사용하는 디자인 패턴이다. 객체지향 프로그래밍의 객체는 빵틀로 찍어내듯 무한히 같은 객체를 생성하는 것이 장점이라고 했다. 하지만 상황에 따라서 객체가 중복되면 오히려 방해되고, 단 하나의 객체만 필요한 경우가 있다. 예를 들어 게임의 BGMManager 객체는 중복으로 생성되면 안 된다. 이처럼 공유 자원에 접근해야 하고 여러 코드가 하나의 자원에 접근하고 유일한 객체가 필요하거나 값이 캐시가 필요할 때 싱글턴 패턴을 사용한다. 구현 싱글턴 클래스는 객체가 1번 생성되어야 한다. 이 기능을 구현하기 위해 생성자를 private으로 설정하고, 생성된 클래스가 없다면 생성을, 있다면 자기 자신..