Dependency Injection을 프레임워크 사용법이 아니라 IoC와 결합도 관리의 기술로 다룬다. 주입 방식, Composition Root, 안티패턴, 생명주기, 컨테이너 vs Pure DI까지 정리하며 OO-Design Essential 시리즈를 마무리한다.
Grady Booch의 OOAD를 길잡이 삼아 객체 모델의 4요소, 객체·클래스 식별, 관계와 책임 주도 설계, UML 표기법과 반복적 프로세스, 그리고 아키텍처적 시야까지 시스템 전체를 객체로 모델링하는 법을 정리한다.
Bertrand Meyer의 Object-Oriented Software Construction을 따라 객체지향의 원리와 계약에 의한 설계(Design by Contract)를 정리합니다. Precondition·Postcondition·Class Invariant, LSP, 그리고 방어적 프로그래밍과의 차이를 Python 예제로 다룹니다.
GoF 패턴을 그대로 베끼지 말고 현대 언어 기능으로 재해석한다. Protocol·Generic·Closure, 값 타입과 불변성, 고차 함수가 디자인 패턴을 어떻게 바꾸는지 Swift 코드로 살펴본다.
GoF의 23개 디자인 패턴을 생성·구조·행동 세 가족으로 정리하고, 의도·구조·결과(Consequences)의 엄밀함으로 패턴을 고르고 남용을 경계하는 법을 다룹니다.
Head First Design Patterns로 디자인 패턴의 직관을 잡는다. 변하는 부분을 캡슐화하고 합성을 선호하라는 OO 설계 원칙을 Strategy·Observer·Decorator·Factory 계열을 통해 익힌다.
객체지향 설계와 디자인 패턴을 6권의 고전으로 정복하는 마스터 로드맵입니다. 패턴 입문부터 GoF 정전, 현대 언어 적용, 계약에 의한 설계, OOAD, DI까지 도장깨기 방식으로 추적합니다.