싱글톤 패턴이란?
싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴입니다. 주로 데이터베이스 연결 모듈에 많이 사용합니다.
최초 한번만 메모리 할당(static)을 하고 그 메모리에 해당하는 인스턴스를 생성하여 반환하는 패턴입니다.
데이터베이스 연결처럼 여러 객체 생성으로인해 다수의 클라이언트가 동시에 설정값이 변경되면 문제가 생기기 때문에 이와 같은 곳에서 사용된다.
장점
- 메모리 낭비 적음
- 인스턴스가 전역이라 다른 클래스의 인스턴스들이 데이터 공유하기 쉽다.
- 두번째 이용시부터 로딩시간이 줄어들어 시간단축
단점
- TDD를 할때 걸림돌이 됨. 단위테스트는 테스트가 서로 독립적이여야하지만 싱글톤은 같은 객체를 기반으로 구현하는 패턴이기에 '독립적인' 인스턴스를 만들기 어렵다.
- 모듈간의 결합을 강하게 만들 수 있다는 단점이있음 -> DI로 느슨하게 만들수있음
예제
자바스크립트
자바