객체지향 설계 · 디자인 패턴LESSON 09
코드 스멜과 리팩터링
난이도중급 → 심화
예상 시간65분
선수지식이전 강의
9강. 코드 스멜과 리팩터링
1. 이번 강의에서 해결할 문제
한 번에 전체 구조를 다시 쓰면 동작 보존을 증명하기 어렵습니다. 코드 스멜은 결함 판정이 아니라 변경 위험을 조사할 신호입니다.
2. 학습 목표
3. 핵심 개념
리팩터링은 외부 동작을 보존한 구조 변경입니다. 테스트→한 변경→빌드→테스트 순서를 지킵니다. switch 폭발은 상태·정책 변형일 수 있지만 분기 수가 작고 닫혀 있으면 유지할 수 있습니다.
4. 구현
함수 추출
void TaskService::complete(TaskId id) {
Task task = loadRequired(id);
task.complete(clock_.now());
repository_.save(task);
publishCompleted(task);
}
5. 코드가 동작하는 이유
유스케이스 순서는 읽히고 세부 실패는 이름 있는 함수와 협력자로 이동합니다. 각 추출 뒤 기존 테스트로 동작을 확인합니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2코드 스멜과 리팩터링 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
9강. 코드 스멜과 리팩터링 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.