on
싱글톤 패턴이요?..혹시 혼자니?.. 어 아직 솔로야
싱글톤 패턴이요?..혹시 혼자니?.. 어 아직 솔로야
728x90
싱글톤패턴?... 난생 처음 코생처음 들었읍니다...
싱글톤패턴이 뭘까요 찾아봣는데
나는 이미 쓰고있는데요?
Nest 프로젝트나 Node 에서 util에 추천인 코드를 만드는 함수를 전역 함수로 사용하고있는데
이런방식을 싱글톤패턴 디자인이라고 하는것같아서
다시한번 정리해보겠습니다
싱글톤 패턴(Singleton Pattern)이란?
싱글톤 패턴은 객체를 딱 하나만 생성하여 생성된 객체를 프로젝트 어디에서든 접근, 사용할 수 있도록 하는 패턴
전역적으로 하나의 객체만을 사용하는 경우가 생기는데
그렇다고해서 제한을 걸지않으면 해당 객체들이 엄청나게 복제가 되는경우가 생기는데
싱글톤 패턴을 사용해서 ,단한번의 객체선언으로 객체들이 복제되는경우를 미연의 방지를 할수있다고 합니다
클래스를 사용하는 여러곳에서 인스턴스를 계속 생성해서 불필요한 메모리낭비를 할경우에
싱글톤패턴으로 메모리낭비를 막을수도잇겟쥬??
싱글톤 패턴의 장점
- 메모리 낭비를 방지
- 싱글톤으로 만들어진 클래스와 다른 클래스의 인스턴스들의 데이터 공유가 쉽다.
- 인스턴스가 절대적으로 한개만 존재하는 것을 보증하기에 개발 시 실수를 줄일 수 있다.
- 싱글톤 객체를 사용하지 않는 경우 인스턴스를 생성하지 않는다.
- 싱글톤을 상속시킬 수 있다.
싱글톤 패턴의 단점
- 전역변수보다 사용하기가 불편(언짢)
- 싱글톤의 역할이 커질수록 결합도가 높아져 객체 지향 설계 원칙에 어긋날 수 있다.
- 멀티쓰레드 환경에서 컨트롤이 어렵다(노드는 싱글쓰레드인데!!)
- 객체의 파괴 시점을 컨트롤하기 어려울 수 있다.
싱글톤 패턴의 사용법!
싱글톤 패턴에서는 생성자를 클래스 자체에서만 접근할 수 있도록 private와 같이 접근 제어자를 통해 제어해주어야 합니다. 만약 생성자를 열어두면 해당 클래스를 다른 부분에서 인스턴스화 시킬 수 있기 때문입니다. 접근 제어자로 막는 것과 더불어 수정이 되지 않도록 막아야 합니다. 만약 인스턴스 생성 이후, 수정이 가능하다면 해당 클래스의 인스턴스를 NULL로 초기화시켜버릴 수 있기 때문입니다.
728x90
from http://ganzicoder.tistory.com/162 by ccl(A) rewrite - 2021-08-13 01:00:17