행복한 째아의 개발 블로그

[Java] Singleton pattern 사용 이유와 단점 본문

JAVA

[Java] Singleton pattern 사용 이유와 단점

째아 2023. 1. 26. 20:10

Singleton pattern이란?

싱글톤 패턴은 오직 하나의 인스턴스만 생성하여 사용하는 디자인 패턴이다.

 

+) 인스턴스란 객체를 실체화한 것

 

Singleton pattern을 사용하는 이유

1. 메모리 낭비 방지

싱글톤 패턴 사용 시 한 개의 인스턴스를 고정 메모리 영역에 생성한다.

이는 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다.

 

2. 쉬운 데이터 공유

싱글톤 패턴에서 사용하는 인스턴스는 전역으로 사용하기 때문에 데이터를 공유하며 사용할 수 있다.

 

3. 속도 향상

이미 생성된 객체를 가져다가 사용하므로 객체 생성에 소요되는 시간을 줄일 수 있다.

 

Singleton pattern 사용시 단점

1. 높은 결합도

싱글톤에서 사용하는 인스턴스가 너무 많이 공유되거나 다양하게 사용되면 다른 클래스들의 결합도가 높아진다.

결합도가 높아지면 수정, 테스트 시 어려움이 생길 수 있다.

 

2. 멀티 스레드 환경에서의 문제

멀티 스레드 환경에서 동시에 getInstance()를 실행하게 되면 동시에 여러 개의 인스턴스가 생길 수 있다.

이로 인해 일관되지 않은 값들이 생길 수 있다.

 

Singleton pattern 구현

public class SingleTonClass {
	
	private static SingleTonClass st = new SingleTonClass();

	private SingleTonClass() {
	}
	
	public static SingleTonClass getInstance() {
		return st;
	}
}
Comments