싱글톤

바그다드·2023년 2월 24일
0

객체를 단 하나만 생성하여 이를 공유하도록 설계한 패턴

웹 어플리케이션은 보통 여러 고객이 동시에 요청을 함
이 때 위와 같은 코드가 서버에 구현되어 있다면 고객이 요청을 할 때마다 새로운 객체가 생성됨

  • 트래픽이 초당 100이라면 초당 100개의 객체가 생성되고 소멸됨
    -> 메모리 낭비가 심함
  • 이에 대한 해결 방안으로 해당 객체는 단 1개만 생성하여 공유하도록 설계함
    -> 이를 싱글톤 패턴이라고 함

싱글톤 패턴 단점

1. 구현 코드가 많이 들어감
2. 클라이언트가 구현 클래스에 의존(DIP위반)
	- static멤버로 선언하기 때문에
3. 구현 클래스에 의존하기 때문에 OCP위반 가능성이 높음
4. 테스트가 어려움
5. 내부 속성 변경이나 초기화가 어려움
6. private한 생성자로 자식 클래스 생성이 어려움
7. 유연성이 떨어짐
- 때문에 안티패턴으로 불리기도 함
profile
꾸준히 하자!

0개의 댓글