디자인 패턴이란?
- 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 “규약” 형태로 만들어 놓은 것을 의미한다.
1. 싱글톤 패턴
- 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴.
- 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통은 데이터베이스 연결 모듈에 많이 사용한다.
- 하나의 인스턴스를 만들어 놓고, 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에, 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다.
- 하지만 의존성이 높아진다.
1-2. 자바스크립트의 싱글톤 패턴
1-3. 싱글톤 패턴의 단점
- 싱글톤 패턴은 TDD를 할 때 걸림돌이 된다.
- TDD를 할 때 단위 테스트를 주로 하는데, 단위 테스트는 서로 독립적이어야 하며 테스트를 어떤 순서로든 실행 할 수 있어야한다.
<aside>
🚨 하지만 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하는 패턴이므로 각 테스트마다 “독립적인” 인스턴스를 만들기 어렵다.
</aside>
1-4. 의존성 주입
- 싱글톤 패턴은 모듈간의 결합을 강하게 만들 수 있다는 단점이 있다.