Moe's Tech Blog
[디자인 페턴] 싱글톤에 관하여 본문
- 싱글톤은 프로세스가 실행중에 오직 하나의 오브젝트만 생성 되로록 강제하는 패턴이다
- 프로그램이 shutdown 될때까지 싱글톤을 없애면 안된다
class Singleton {
static instance;
constructor() {
if (!Singleton.instance) {
Singleton.instance = this;
}
return Singleton.instance;
}
}
싱글톤 패턴을 사용하는 이유
- 메모리 절약
- 하나의 클래스 인스턴스로 수행하기 때문에 일반 클래스보다 사용되는 메모리가 적다
- 클래스간의 데이터 공유가 쉽다
싱글톤 패턴이 유용할때
- 병렬 프로그래밍 - 실행과 함께 함수의 작업 진행상태를 보고싶을때
싱글톤 패턴의 문제점
- 테스트 하기 어렵다
- 격리된 상황에서 수행되려면 매번 인스턴스의 상태를 초기화 시켜주어야 한다.
- 조심스럽게 다루어야 한다
- 1번, 3번 이유와 비슷하다
- 반복적으로 사용할때 안에 저장되어있는 정보가 원치 않게 쉽게 변질 될 수 있다
- 여러곳에서 동시다발로 사용할땐 race condition에 취약해 진다
- 여러곳에서 동시다발로 사용하다 에러가 났을땐 debugging하는데 머리가 아퍼진다
출저
- https://www.freecodecamp.org/news/singleton-design-pattern-pros-and-cons-e10f98e23d63/
- https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
- https://www.youtube.com/watch?v=-oy5jOd5PBg
'Software Design Pattern > Notes' 카테고리의 다른 글
[Design Pattern] Facade Pattern (0) | 2022.08.13 |
---|---|
[Design Pattern] Factory Pattern (0) | 2022.07.25 |
[OO Design Foundation] Object Oriented Modeling 2 (0) | 2022.07.13 |
[Design Pattern] Mediator Pattern (0) | 2022.07.02 |
[디자인 페턴] 시작하며 (0) | 2022.03.20 |