728x90
- 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스(하나의 클래스에서 생성된 객체) 만 가지는 패턴이다.
- 하나의 인스턴스를 만들어 해당 인스턴스를 다른 모듈들이 공유하면서 사용한다.
- 보통 데이터베이스 연결 모듈에 많이 사용된다.
- 장점 : 인스턴스 생성 비용이 감소된다.
- 단점 : 의존성이 높아진다.
TDD(Test Driven Development)를 할 때 단위 테스트를 하는데, 독립적이지 않기 때문에 실행하기 어렵다.
private Singleton() {
// private 생성자
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
- 보완방향 : 의존성 주입
- 의존성 주입(DI, Dependency Injection)을 통해 모듈간의 결합을 느슨하게 만든다.
- 의존성 주입자(dependency injector)가 메인 모듈이 '직접' 다른 하위 모듈에 대한 의존성을 주기보다 '간접'적으로 주입하게 하는 방식이다. (디커플링)
- 의존성 장점 :
모듈들을 쉽게 교체할 수 있는 구조가 되어 테스트하기 쉽다.
구현할 때 추상화 레이어를 넣고 구현체를 넣어 주기 때문에 애플리케이션 의존성 방향이 일관된다.
애플리케이션을 쉽게 추론할 수 있다.
모듈 간의 관계들이 조금 더 명확해진다.
마이그레이션하기 쉽다.
- 의존성 단점 :
모듈들이 분리되므로 클래스 수가 증가해 복잡성이 상승된다.
약간의 런타임 페널티가 생긴다.
- 의존성 주입 원칙
상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않아야한다.
둘 다 추상화에 의존해야한다.
추상화는 세부 사항에 의존하지 말아야 한다.
728x90
'면접준비' 카테고리의 다른 글
[SW정책연구] SW산업 연간보고서 1부 정리 (1) | 2024.05.03 |
---|---|
[IBK 기업은행] 디지털 필기 회고 (0) | 2024.05.03 |
[Docker] Network 지식 (1) | 2024.01.30 |
(back) Web, Was server (0) | 2024.01.10 |
디자인 패턴 - 팩토리 패턴 특징 (1) | 2024.01.08 |