이론 정리/java

싱글톤(Singleton) 패턴에 관하여

철매존 2022. 4. 3. 14:21
728x90
반응형

Singleton Pattern이란, 어플리케이션 실행 시 최초 한번만 메모리를 할당하고, 이 메모리에 인스턴스를 만들어서 사용하는 디자인 패턴이다.

주로 DBCP(DataBase Connection Pool)처럼 공통 객체를 여러개 생성해서 사용해야 하는 경우 쓴다.

싱글톤 패턴의 장점

위에서 설명했듯, 싱글톤 패턴은 어플리케이션 실행 시 단 하나의 인스턴스를 한 번만 할당하게 된다.
따라서 만들어진 메모리 영역에 new연산자를 통해 접근하게 되면 이 접근에 대해 메모리 낭비를 방지할 수 있게 되며, 처음에 실행 시 만들어진 인스턴스에 접근만 하면 되므로 속도 측면에도 이득이 있다.

그리고 클래스 간 데이터 공유를 원할하게 해 준다.
싱글톤 패턴으로 만들어진 인스턴스는 static 전역 변수이기 때문이다.

  • 속도, 메모리 측면 이점
  • 데이터 공유의 원할함

싱글톤 패턴의 단점

싱글톤 패턴은 단 하나를 생성하고, 이를 여러 클래스에서 접근할 수 있다고 했다.
따라서 동시성 문제가 발생할 여지가 있다.

또 테스트를 작성할 때에 고려해야 할 사항이 많다.
하나의 싱글톤 패턴에서 자원을 사용하기 때문에 고립환경에서의 테스트를 위해서는 이 인스턴스를 초기화해주어야 하기 때문이다.

  • 동시성 문제
  • 테스트가 어려움
반응형

'이론 정리 > java' 카테고리의 다른 글

abstract class와 interface에 관하여  (0) 2022.04.06
Java의 Optional 클래스  (0) 2022.04.03
필터와 인터셉트  (0) 2022.04.02
JPA가 무엇일까?? 왜 쓸까??  (0) 2022.03.01
Entity, DTO의 차이와 사용 이유, 개념  (0) 2022.02.28