싱글턴이란?


소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다.

만약 스프링 빈이 싱글턴으로 관리되지 않는다면 매번 new MemberService()와 같은 형식으로 객체 인스턴스를 생성한다. 초당 100tps라면 100개의 객체가 생성되고 소멸하며, 의존 관계를 감안하면 연관된 객체 수가 훨씬 많다. 싱글턴 패턴은 메모리 관리를 위해서 객체를 단 하나만 생성하고, 이것을 공유하도록 설계하는 것이다.

싱글턴의 장단점


장점

단점

싱글턴 패턴 주의점