코드는 에세이처럼 작성하자: 깨끗한 코드의 원칙
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 초보 개발자: 깨끗한 코드의 중요성과 구조화된 작성 방법 학습
- 경험 많은 개발자: 코드 리뷰 및 리팩토링 기술 강화
- 팀 리더: 팀 내 코드 품질 개선 전략 수립
- 난이도: 중간 (기본적인 파이썬/타입스크립트 언어 지식 필요)
핵심 요약
- 깨끗한 코드는 읽기 쉬운 에세이처럼 구성되어야 한다
- run()
메서드를 두 개의 명확한 단계로 분리 (execute_first_step(), execute_second_step())
- 함수 이름과 인자 명확화
- get_status()
→ get_status_from_outcome()
, get_status_from_metrics()
- 함수 책임 단일화
- fetch_metrics()
→ trigger_data_preprocessing()
분리
섹션별 세부 요약
1. 깨끗한 코드의 중요성
- 코드는 에세이처럼 구성되어야 한다 (소개 → 논증 → 결론)
- 예:
run()
메서드의 복잡한 흐름으로 인한 가독성 저하 - Robert C. Martin의 "The Clean Code" 권장 (책은 핸드북 형태로 활용)
2. 실제 예제: `run()` 메서드 리팩토링
- 기존 코드 문제점
- run()
메서드 내에서 external_check
, fetch_metrics
, get_status
호출
- 혼란스러운 흐름 (소스 코드 내부 이동 필요)
- 리팩토링 후 구조
- run()
→ execute_first_step()
과 execute_second_step()
분리
- 각 단계의 명확한 책임 부여
3. 함수 이름과 인자 개선
get_status()
함수의 문제
- outcome
과 metrics
라는 다른 목적의 인자 사용
- 의도 불명확 (함수 내부 로직을 확인해야 이해 가능)
- 리팩토링 후
- get_status_from_outcome()
과 get_status_from_metrics()
분리
- 명확한 이름으로 각 함수의 목적과 인자 명시
4. `fetch_metrics()`의 이중 책임 문제
- 기존
fetch_metrics()
의 문제
- 데이터 전처리와 메트릭스 추출 두 가지 작업 수행
- 이름과 실제 기능 불일치 (메트릭스만 추출하는 것으로 보이지만, 전처리도 수행)
- 리팩토링 후
- trigger_data_preprocessing()
분리
- 명확한 분리로 코드의 의도와 책임 명확화
결론
- 함수 이름과 구조는 의도를 명확히 전달해야 한다 (예:
get_status_from_outcome()
) - 단계별 분리는 코드 흐름을 직관적으로 만들고, 리뷰 및 수정을 용이하게 한다
- 깨끗한 코드는 에세이처럼 구성되어야 하며, 이는 장기적인 유지보수와 팀 협업에 필수적이다