콘텐츠로 이동

Clean Code 실전 강의 교재 — 17장 인덱스

무엇인가

Robert C. Martin Clean Code (Prentice Hall, 2008) 의 1~17장 을 Java/Spring 백엔드 입문~중급 수강생용 강의 교재로 풀어 쓴 자료입니다. 총 약 5,500줄이며, 각 장은 다음 형식을 따릅니다.

    1. 도입 (학습 목표·큰 그림 ASCII·시그니처 비유·현업에서 왜 중요한가)
  • 본문 (각 절별 한 줄 정의 → 비유 → Before/After → 함정 → Spring 현업)
  • 종합 (핵심 교훈 + 체크리스트 + Q/A 분리 퀴즈)
  • 다음 장 예고

→ 책 카드는 entity-clean-code입니다.

실습 환경과 장별 루틴

실습 환경(Java 17 + JUnit 5)과 5권 공통 루틴(읽기 → 빨강 → 초록 → 정련 → 기록)은 guide-java-book-study-lab에 있습니다. Clean Code 강의는 거대한 프로젝트보다 작은 함수 하나, 이름 하나, 테스트 하나를 고치는 식으로 따라갑니다.

17편 인덱스 — 각 장 본문으로 바로 진입

장 주제 본문 핵심 ⭐
1장 깨끗한 코드 (마인드셋) lecture-clean-code-ch1 보이스카우트
2장 의미 있는 이름 lecture-clean-code-ch2 의도 표현·기억력
3장 함수 lecture-clean-code-ch3 작게·한 가지·CQS
4장 주석 lecture-clean-code-ch4 좋은 8 vs 나쁜 16
5장 형식 맞추기 lecture-clean-code-ch5 신문 기사 패턴
6장 객체와 자료 구조 lecture-clean-code-ch6 디미터·Tell-Don't-Ask
7장 오류 처리 lecture-clean-code-ch7 unchecked·null 금지
8장 경계 lecture-clean-code-ch8 학습 테스트·Adapter
9장 단위 테스트 lecture-clean-code-ch9 TDD 3법칙·F.I.R.S.T.
10장 클래스 lecture-clean-code-ch10 SRP·응집도
11장 시스템 lecture-clean-code-ch11 DI·AOP
12장 창발성 lecture-clean-code-ch12 Kent Beck 4규칙
13장 동시성 lecture-clean-code-ch13 방어 원칙 4
14장 점진적 개선 (Args 사례) lecture-clean-code-ch14 다시 짜기 vs 점진
15장 JUnit 들여다보기 lecture-clean-code-ch15 좋은 코드도 더 좋게
16장 SerialDate 리팩터링 lecture-clean-code-ch16 특성화 테스트
17장 냄새와 휴리스틱 lecture-clean-code-ch17 66 휴리스틱 카탈로그

→ 총 66 휴리스틱 + 단순 설계 4규칙, 약 5,500줄.

강의 교재 형식 (일관된 5단)

## N장 — 제목

> 대상: Java/Spring 백엔드 입문~중급
> 형식: 개념 → 비유 → Before/After → 함정 → 체크리스트 → 퀴즈
> 전제: Java 17+, Spring Boot 4.x (start.spring.io 기본값)

## 0. 이 장을 시작하기 전에
  0.1 학습 목표
  0.2 큰 그림 (ASCII 그림 + 비유)
  0.3 현업에서 왜 중요한가

## N.M 절
  ### 한 줄 정의
  ### 비유 — "..."
  ### Before / After
  ### 동기 / 절차 / 함정
  ### Spring/JPA 현업

## 핵심 교훈 / 함정 / 체크리스트

## 퀴즈 (Q/A 분리)
**Q1. ...**

**A.** ...

## 다음 장 예고

시그니처 비유 (장별)

  • 1장: 코드는 요구사항을 정밀하게 적은 글
  • 2장: 이름은 표지판
  • 3장: 함수는 공구 한 자루
  • 4장: 주석은 사과문
  • 5장: 형식은 글의 단락
  • 6장: 객체 vs 자료 = 사람 vs 서식
  • 7장: 오류 처리는 비상 대피로
  • 8장: 경계는 국경
  • 9장: 단위 테스트는 헬스장
  • 10장: 클래스는 방
  • 11장: 시스템은 도시
  • 12장: 4규칙은 건축 검사 체크리스트
  • 13장: 동시성은 공유 도마
  • 14~16장: 사례 워크스루 — 초안·점진·레거시
  • 17장: 휴리스틱은 주방의 점검 체크리스트

책 전체 6원칙 (12장 마지막 + 17장 종합)

  1. 모든 테스트 통과 (12장 1규칙)
  2. 중복 없음 (12장 2규칙·G5)
  3. 의도 표현 (2·3·12장)
  4. 최소 클래스·메서드 (12장 4규칙·SRP)
  5. 함수는 작게·한 가지 (3장·G30·G34)
  6. 보이스카우트 (1·15장)

활용 가이드

목적 추천 진입점
입문~1년차 빠른 진입 1·2·3·4·10장 (마인드셋·이름·함수·주석·클래스)
코드 리뷰 어휘 17장 휴리스틱 코드 (G19·G23·N1·T5 등)
신입 교육 자료 1·2·3장 + 14장 (점진 정련 사례)
인터뷰 준비 9장 (TDD·F.I.R.S.T.) + 12장 (4규칙)
자기 코드 진단 17장 66 휴리스틱 + 6장 디미터

Spring/JPA 연결 사례

강의 교재 Spring/JPA 실무
3장 함수 @Valid 진입 검증·@Transactional 트랜잭션 경계
6장 객체와 자료 DTO record / Entity 분리
7장 오류 처리 @ControllerAdvice + DataAccessException unchecked
9장 테스트 @WebMvcTest·@DataJpaTest·@SpringBootTest 슬라이스
10장 클래스 SRP Service 거대화 (1,000줄+) 회피
11장 시스템 @Configuration·@Bean·@Component·@Aspect
13장 동시성 빈 가변 필드 위험·@Async·@Scheduled
17장 G23 enum + Strategy / Spring 의 @ConditionalOnX

위키 기존 페이지와의 연결

한계·주의

  • 사용자 강사용 내부 교재 성격입니다 — 인용·재배포 전에 확인합니다
  • Java 17+ 가정 — 각 장 본문의 전제 환경 표기는 Spring Boot 3.x이며, 현재 기준(Spring Boot 4.x)과 다른 부분은 조정해 읽습니다
  • 책 본문을 직접 인용하지 않은 강의용 재구성입니다
  • "주석은 다 나쁨" 같은 도그마는 본문이 단서 ("단, ...") 를 다는 점에 유의합니다

관련 페이지