5장 : 싱글턴 패턴

싱글턴 패턴

  • 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다.

언제 사용 ?

구현 방법

장단점

Refactoring Guru Code & Diagram

non_thread_safe

thread_safe

핵심 정리

  • 어떤 클래스에 싱글턴 패턴을 적용하면 애플리케이션에 그 클래스의 인스턴스가 최대 한 개까지만 있도록 할 수 있습니다.

  • 싱글턴 패턴을 이용하면 유일한 인스턴스를 어디서든지 접근할 수 있도록 할 수 있습니다.

  • 자바에서 싱글턴 패턴을 구현할 때는 private 생성자와 정적 메소드, 정적 변수를 사용합니다.

  • 다중 스레드를 사용하는 애플리케이션에서는 속도와 자원 문제를 파악해보고 적절한 구현법을 사용해야 합니다. (사실 모든 애플리케이션에서 멀티스레딩을 쓸 수 있다고 생각해야 합니다)

  • DCL을 사용하는 방법은 자바 2 버전(자바 1.5)보다 전에 나온 버전에서는 쓸 수 없다.

  • 클래스 로더가 여러 개 있으면 싱글턴이 제대로 작동하지 않고, 여러 개의 인스턴스가 생길 수 있다.

  • 1.2 버전보다 전에 나온 JVM을 사용하는 경우에는 가비지 컬렉터 관련 버그 때무에 싱글턴 레지스트리를 사용해야 할 수도 있습니다.

Last updated