오브젝트 실전 강의 교재 — 18편 인덱스 (15장 + 부록 A·B·C)¶
무엇인가¶
조영호 『오브젝트』 (위키북스, 2019) 의 15장 + 부록 A·B·C 를 Java/Spring 백엔드 입문~중급 수강생용 강의 교재로 풀어 쓴 자료. 총 18편.
→ 책 카드는 entity-object.
실습 환경과 장별 루틴¶
먼저 guide-java-book-study-lab의 Java 17 + JUnit 5 기본 환경을 준비한다. 오브젝트 강의는 “테스트 통과”보다 책임이 어느 객체로 이동했는지를 확인하는 실습이 핵심이다.
각 장은 같은 순서로 읽는다.
- 문제 코드에서 “누가 남의 내부를 알고 있는가”를 표시한다.
- 객체에게 보낼 메시지를 먼저 이름 붙인다.
- 책임을 옮긴 After 코드를 작성한다.
- getter/setter 호출이 줄었는지, 변경 파급이 줄었는지 체크한다.
- 마지막 체크리스트와 퀴즈로 “왜 이 설계가 나아졌는지”를 한 문장으로 남긴다.
18편 인덱스¶
| 장 | 주제 | 본문 | 핵심 |
|---|---|---|---|
| 1장 | 객체, 설계 — 티켓 판매 | lecture-object-ch1 | 절차지향 → OO 첫 워크스루 |
| 2장 | 객체지향 프로그래밍 — 영화 예매 | lecture-object-ch2 | 협력·다형성·추상 의존 |
| 3장 | 역할, 책임, 협력 | lecture-object-ch3 | RDD 사고 순서 |
| 4장 | 설계 품질과 트레이드오프 | lecture-object-ch4 | 데이터 중심 함정 |
| 5장 | 책임 할당하기 (GRASP) | lecture-object-ch5 | 책임 주도 설계 |
| 6장 | 메시지와 인터페이스 | lecture-object-ch6 | Tell, Don't Ask·CQS |
| 7장 | 객체 분해 | lecture-object-ch7 | 절차지향 vs OO 역사 |
| 8장 | 의존성 관리하기 | lecture-object-ch8 | DIP·new 함정 |
| 9장 | 유연한 설계 | lecture-object-ch9 | OCP·생성/사용 분리 |
| 10장 | 상속과 코드 재사용 | lecture-object-ch10 | 상속 함정 |
| 11장 | 합성과 유연한 설계 | lecture-object-ch11 | 합성 > 상속 |
| 12장 | 다형성 | lecture-object-ch12 | 업캐스팅·동적 바인딩 |
| 13장 | 서브클래싱과 서브타이핑 | lecture-object-ch13 | LSP |
| 14장 | 일관성 있는 협력 | lecture-object-ch14 | 패턴 발견 |
| 15장 | 디자인 패턴과 프레임워크 | lecture-object-ch15 | GoF + IoC |
| 부록 A | 계약에 의한 설계 (DbC) | lecture-object-appendixA | 사전·사후·불변 |
| 부록 B | 타입 계층의 구현 | lecture-object-appendixB | 메커니즘 비교 |
| 부록 C | 동적인 협력, 정적인 코드 | lecture-object-appendixC | 행동이 코드를 결정 |
→ 총 18편. 사용자 입력 (1·2·3장) + 본 세션 작성 (4~15장·부록 A·B·C, 15편).
강의 교재 형식¶
## N장 — 제목
> 원서: 조영호 『오브젝트』
> 대상: Java/Spring 백엔드 입문~중급
> 형식: 개념 → 비유 → 예시 → 핵심 교훈 → 현업 예제 → 함정 → 체크리스트 → 퀴즈(정답 분리)
## 0. 이 장을 시작하기 전에
0.1 학습 목표
0.2 큰 그림 (ASCII + 비유)
0.3 현업에서 왜 중요한가
## N.M 절
비유 / 핵심 / 예시
## 핵심 교훈 / 현업 예제 / 함정 / 체크리스트
## 퀴즈 (질문 5개)
### 정답·해설 (번호 매핑)
## 다음 장 예고
책 전체 10 메시지¶
- 객체지향의 본질 = 객체 협력.
- 메시지가 객체를 결정 — 협력 → 책임 → 객체.
- 데이터 중심 X → 책임 중심.
- 추상에 의존 (OCP·DIP).
- 합성 > 상속.
- 다형성 + LSP = 진짜 다형성.
- 일관된 협력 → 디자인 패턴 → 프레임워크.
- 계약 (사전·사후·불변) 이 LSP 의 기반.
- 타입 계층 표현 = 인터페이스 + 추상 클래스 + 합성 조합.
- 동적 협력 먼저, 정적 코드 나중.
활용 가이드¶
| 목적 | 추천 진입점 |
|---|---|
| OO 입문 1~3년차 | 1·2·3장 (티켓·영화 예매·RDD) |
| 빈혈 도메인 탈출 | 4·5장 (데이터 중심 함정 + RDD) |
| 상속 정리 | 10·11장 (상속 함정 → 합성) |
| LSP 깊이 | 13장 + 부록 A |
| 패턴 학습 진입 | 14·15장 |
| 신입 교육 | 1·2장 통째로 |
5권 도서 오각형 (entity-object 안에 정리)¶
| 책 | 단위 | 시점 |
|---|---|---|
| 오브젝트 | 객체·협력 | 처음부터 잘 설계 |
| Effective Java | 메서드·필드 | 매번 짤 때 |
| 리팩터링 | 1단계 변환 | 이미 짠 코드 |
| Clean Code | 줄·이름·함수 | 매 라인 |
| TDD | 사이클 | 코드 짜기 전 |
관련 페이지¶
- entity-object — 책 카드 (상위)
- entity-effective-java / entity-refactoring / entity-clean-code / entity-tdd — 5권 오각형
- concept-oop / concept-design-patterns / concept-spring-core
- guide-java-book-study-lab — 5권 공통 실습 환경