디자인패턴이란? 프로그램을 설계할 때 발생했던 문제점 들을 객체 간의 상호관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것 싱글톤 패턴 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 인스턴스를 다른 모듈들이 공유하며 사용 (비용 GOOD) (의존성 높아질수있음ㅠ) 데이터베이스 연결 모듈에 많이 사용 단점: TDD에 불리 TDD는 단위테스트 주로 하는데, 단위테스트는 테스트가 서로 독립적이어야 하고 어떤 순서로든 실행할 수 있어야함 싱글톤은 독립적인 인스턴스 어려움 의존성주입 싱글톤은 결합도 높은편... 이때 DI로 결합 느슨하게 만들 수 있다 모듈들을 쉽게 교체할 수 있는 구조가 테스팅, 마이그레이션 쉬움 모듈 간의 관계들도 명확해짐 원칙: 상위 모듈은 하위모듈에서..