반응형
디자인 패턴이란??
- 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미한다
싱글톤 패턴
- 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다
- 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만 그렇게 하지 않는다
- 보통 데이터베이스 연결 모듈에 많이 사용한다
장점
하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어든다
단점
- 의존성이 높아진다
- 단위테스를 할 때 애로사항이 꼽힌다
모듈 간의 결합을 강하게 만든다는 싱글톤 패턴의 단점을 의존성 주입(DI, Dependncy Injection)을 통해 모듈 간의 결합을 조금 더 느슨하게 만들어 해결 가능하다.
메인 모듈이 '직접' 다른 하위 모듈에 대한 의존성을 추기보다는 중간에 의존성 주입자(dependency injector)가 이 부분을 가로채 메인 모듈이 '간접' 적으로 의존성을 주입하는 방식. 이를 '디커플링이 된다'고도 한다.
의존성 주입의 장점
모듈들을 쉽게 교체할 수 있는 구조가 되어 테스팅하기 쉽고 마이그레이션하기도 수월하다. 즉 유지보수가 용이해진다
의존성 주입의 단점
모듈들이 더욱더 분리되므로 클래스 수가 늘어나 복잡성이 증가될 수 있으며 약간의 런타임 페널티가 생기기도 한다.
계속 모듈 모듈 하는데 모듈이란?
모듈이란 프로그램을 구성하는 시스템을 기능 단위로 독립적인 부분으로 분리한 것이다. 모듈은 독립적인 프로그램 그 자체일 수도 있고 함수나 메서드일 수도 있다.
반응형