본문 바로가기
Java

싱글톤 패턴의 이점과 단점

by 지민재 2022. 8. 15.
반응형
SMALL
싱글톤 패턴

최초 한번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 그리고 생선된 인스턴스를 사용하기 때문에 속도 면으로도 이점이 있다고 한다.
또 다른 이점은 다른 클래스 끼리 데이터 공유가 쉽다 싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다.


싱글톤 패턴의 문제점

싱글톤 패턴을 구현하기 위해 코드가 많이 필요하다. 정적 팩토리 메서드에서 객체 생성을 확인하고 생성자를 호출하는 경우 멀티스레딩 환경에서 발생할 수 있는 동시성 문제 해결을 위해 syncronized 키워드를 사용해야 한다.

 

매번 인스턴스를 초기화 해주지 않으면 어플리케이션 전역에서 상태를 공유하기 때문에 테스트가 온전하게 수행되지 못한다.

 

자식클래스를 만들수 없다.

내부 상태를 변경하기 어렵다.

 

그래서 싱글톤 패턴을 사용할 땐 장단점의 trade-off를 잘 고려하여 사용하는 것이 좋다고 한다. 

 

Trade-off란?

어떤 문제를 해결할 때 두 가지 방법이 존재할 때, 한 방법이 A측면에서 유리하고 B측면에서는 불리하면, 다른 방법은 B측면에서 유리하고 A측면에서 불리한 두 방법을 Trade-off 관계라고 말한다.

'Java' 카테고리의 다른 글

Java - 컬렉션(Collection)  (0) 2024.04.17
Java - 배열을 문자열로 합치기  (0) 2023.02.03
상속(Java)  (0) 2022.07.18
static 변수 (Java)  (0) 2022.07.13
this(Java)  (0) 2022.07.12

댓글