피드로 돌아가기
Dev.toBackend
원문 읽기
코드 라인 수가 아닌 Abstraction Level 기반의 함수 분리 전략
Function — Small Function
AI 요약
Context
단순히 코드 라인 수 제한에 매몰된 함수 분리 관행으로 인한 가독성 저하 발생. 비즈니스 로직, I/O, 포맷팅 등 서로 다른 추상화 수준이 혼재된 거대 함수로 인해 인지 부하 증가 및 회귀 버그 위험 상승.
Technical Solution
- 추상화 수준(Abstraction Level)을 기준으로 함수를 계층화하여 상위 함수는 의도(Intent)를 기술하고 하위 함수는 세부 구현을 담당하는 구조 설계
- 고차 함수에서 각 단계에 명확한 이름을 부여하여 전체 워크플로우를 하나의 서술문처럼 읽히게 하는 Narrative 구조 도입
- 단순 라인 수 감소가 아닌 재사용성 확보 및 개념적 명명(Naming an Idea)이 필요한 시점에만 함수를 추출하는 전략 채택
- 함수 분리 시 입력과 출력 데이터 경계를 명확히 정의하여 State 공유로 인한 복잡도 전이 방지
- Cyclomatic Complexity 측정 도구를 활용하여 함수 분리 시점을 결정하는 객관적 시그널로 활용
실천 포인트
- 함수 내에 // 계산, // 메일 전송 등 주석으로 구역을 나누고 있다면 분리 대상인지 검토 - 상위 함수가 세부 구현(상세 계산식, DB 쿼리 등)을 직접 포함하고 있는지 확인 - 분리된 함수가 단순히 한 줄의 표현식을 포함하며 의미적 가치를 더하지 않는다면 다시 병합 - Linter의 Cyclomatic Complexity 수치가 임계치를 초과하는지 주기적으로 모니터링