본문으로 건너뛰기
객체지향 설계 · 디자인 패턴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
  1. 문제 1“코드 스멜과 리팩터링”의 역할과 의존성을 판단하는 올바른 기준은 무엇인가요?
  2. 문제 2‘중복 한 줄마다 추상화’ 실수를 판단할 때 “코드 스멜과 리팩터링” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

9강. 코드 스멜과 리팩터링 미완료 상태