코드 품질 개선 - 세션 60: 튀어나온 못을 두드리지 마라
·2026.01.02 02:00
SLAP 원칙을 과도하게 적용하여 메인 로직의 가독성을 해치는 것을 경계해야 한다.
코드의 가독성을 높이기 위해 SLAP(Single Level of Abstraction Principle) 원칙을 적용하여 함수를 분리하는 경우가 많습니다. 하지만 메인 로직을 별도의 함수로 추출할 때, 오히려 함수의 본질적인 동작을 파악하기 위해 다른 함수를 찾아 헤매야 하는 상황이 발생할 수 있습니다.
예를 들어, 파일 압축 로직을 compressFileInternalOrThrow와 같은 함수로 분리하면, 호출자는 함수의 시그니처만 보고는 실제 어떤 단계(디렉토리 생성, 파일 복사 등)를 거치는지 즉시 알 수 없게 됩니다. 이는 코드의 추상화 수준을 지나치게 높여 가독성을 떨어뜨리는 결과를 초래합니다.
따라서 다음과 같은 '서브 로직'은 별도 함수로 분리하되, 메인 로직은 구체적인 상태를 유지하는 것이 좋습니다.
- 에러 핸들링 (Error handling)
- 예외 케이스 처리 (Edge cases)
- 설정 및 해제 (Setup and teardown)
- 리소스 관리 (Resource management)
- 반환 값의 타입 변환 (Type conversion)
코드의 일관성을 유지하는 것은 품질을 높이는 수단이지 목적 그 자체가 아닙니다. 불필요한 추상화로 인해 기술 부채를 쌓기보다, 메인 로직의 추상화 수준을 의도적으로 낮게 유지하여 전체적인 흐름을 쉽게 파악할 수 있도록 설계해야 합니다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.