객체의 책임과 의존성을 나누는 방법, 애플리케이션 계층과 설계 패턴을 살펴보는 자료입니다. 패턴 이름뿐 아니라 적용하려는 문제와 변경 비용을 함께 확인할 수 있습니다.
객체의 책임과 의존성
-
Object Oriented Programming — Dev.java
객체·클래스·인터페이스·상속과 Record를 이용한 모델링의 기초를 설명합니다.
-
Solid Relevance — Robert C. Martin
SOLID의 각 원칙을 변경 이유·확장·타입 호환·인터페이스·의존성 관점에서 설명합니다.
-
Inversion of Control Containers and the Dependency Injection pattern — Martin Fowler
서비스 로케이터와 의존성 주입을 비교하며 객체 구성과 사용을 분리하는 방법을 설명합니다.
계층과 경계
-
Presentation Domain Data Layering — Martin Fowler
표현·도메인·데이터 접근의 책임과 계층 분리가 만드는 경계를 설명합니다.
-
Hexagonal Architecture — Alistair Cockburn
포트와 어댑터를 통해 애플리케이션 내부를 외부 기술과 분리하는 아키텍처의 원문입니다.
-
Patterns of Enterprise Application Architecture — Martin Fowler
Service Layer·Repository·Data Mapper·DTO 등 애플리케이션 패턴의 목적과 구조를 찾아볼 수 있습니다.
설계 패턴
-
Design Patterns for Reuse — Carnegie Mellon University
전략과 템플릿 메서드 등 재사용 패턴을 비교하며 상속·위임의 선택과 설계 원칙을 다루는 강의 자료입니다.
-
Design Patterns — Carnegie Mellon University
싱글턴 등 생성·구조·행위 패턴의 적용 조건과 결과를 살펴볼 수 있는 강의 자료입니다.
-
Introduce Special Case — Martin Fowler
특수한 경우를 별도 객체로 표현하는 리팩터링으로 널 객체 패턴과 함께 읽을 수 있습니다.
빌드와 모듈 구성
-
빌드 태스크·의존성·다중 프로젝트 구성과 테스트 실행을 연결하는 공식 문서입니다.