반응형
디자인 패턴
- 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것,
싱글톤 패턴(singleton pattern)
- 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는패턴
- 주로 데이터베이스 연결 모듈에 사용
장점
- 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스 생성비용이 줄어듬
단점
- 의존성이 높아짐
- TDD에서 문제점이 생김
- 싱글톤 패턴은 각 테스트마다 독립적인 인스턴스를 만들기가 어려워 단위테스트 진행이 힘듬. 또한, 모듈간의 결합을 강하게 만들 수 있음
의존성주입
- 의존성주입으로 모듈간의 결합을 조금 더 느슨하게 만들 수 있음.
- 장점
- 모듈들을 쉽게 교체할 수 있는 구조가 되어 테스팅과 마이그레이션이 수월해짐
- 구현할 때 추상화 레이어를 넣고 이를 기반으로 구현체를 넣어주기 때문에 애플리케이션 의존성 방향이 일관적임
- 애플리케이션을 쉽게 추론 가능
- 모듈간의 관계가 조금 더 명확해짐
- 단점
- 단위 테스트를 하기 어려움
- 모듈들이 더욱 더 분리되므로 클래스 수가 늘어나 복잡성이 증가될 수 있음
- 런타임 패널티가 생기기도 함
- 원칙
- 상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않아야 함
- 둘다 추상화에 의존해야 하고 추상화는 세부사항에 의존하지 말아야 함
틀린 부분이 있거나 인용한 부분에 대해 문제가 있을 시
댓글로 알려주시면 감사하겠습니다.
반응형
'Study > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
| 1.2.1 ~ 1.2.4 선언형과 함수형, 객체지향, 절차형 프로그래밍& 패러다임의 혼합 (0) | 2026.05.03 |
|---|---|
| 1.1.9 ~ 1.1.10 MVP 패턴/MVVM 패턴 (0) | 2026.05.03 |
| 1.1.6 ~ 1.1.8 이터레이터/노출모듈/MVC 패턴 (0) | 2026.01.23 |
| 1.1.3~1.1.5 전략/옵저버/프록시 패턴과 프록시 서버 (0) | 2026.01.21 |
| 1.1.2 팩토리패턴 (0) | 2026.01.05 |