etc/Today, I Learned

싱글톤(Singleton) 패턴이란?

yusung_ 2023. 1. 10. 19:50

📌 싱글톤 패턴이란?

객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. 이러한 패턴은 주로 프로그램 내에서 하나로 공유를 해야하는 객체가 존재할 때 해당 객체를 싱글톤으로 구현하여 모든 유저 또는 프로그램들이 해당 객체를 공유하며 사용하도록 할 때 사용됩니다.

📌 싱글톤 패턴의 사용하는 이유(장점)

1. 메모리 측면의 이점
싱글톤 패턴을 사용하게 된다면 한 개의 인스턴스만을 고정 메모리 영역에 생성하고, 추후 해당 객체를 접근할 때 메모리 낭비를 방지할 수 있다.

2. 속도 측면의 이점
생성된 인스턴스를 사용할 때는 이미 생성된 인스턴스를 활용하여 속도 측면에 이점이 있다.

3. 데이터 공유의 이점
전역으로 사용하는 인스턴스이기 때문에 다른 여러 클래스에서 데이터를 공유하며 사용할 수 있다. 하지만 동시성 문제가 발생할 수 있어 이 점은 유의하여 설계하여야 한다.

📌 싱글톤 패턴의 단점

싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우에 다른 클래스의 인스턴스들 간에 결합도가 높아져 "개방-폐쇄 원칙"을 위배하게 된다. 이는 객체 지향 설계 원칙에 어긋나기 때문에 수정이 어려워지고 유지보수의 비용이 높아질 수 있다.
또한, 멀티쓰레드 환경에서 동기화 처리를 안하면 인스턴스가 2개가 생성될 수 있는 가능성이 생기게 된다.
이러한 이유로 싱글톤 패턴은 꼭 필요한 경우가 아니라면 지양해야 한다.

 


Reference

 

싱글톤(Singleton) 패턴이란?

싱글톤 패턴은 객체의 인스턴스를 한개만 생성되게 하는 패턴입니다.

velog.io

 

싱글톤(Singleton) 패턴이란?

이번 글에서는 디자인 패턴의 종류 중 하나인 싱글톤 패턴에 대해 알아보자. 싱글톤 패턴이 무엇인지, 패턴 구현 시 주의할 점은 무엇인지에 대해 알아보는 것만으로도 많은 도움이 될 것이라

tecoble.techcourse.co.kr

 

'etc > Today, I Learned' 카테고리의 다른 글

캐시(Cache)와 쿠키(Cookie)  (0) 2023.03.03
JVM 구조와 JAVA의 동작 원리  (0) 2023.01.10
스택(Stack) & 큐(Queue)  (0) 2023.01.05
DI & IoC  (0) 2023.01.04
@Transactional  (0) 2022.12.14