피드로 돌아가기
GeekNewsBackend
원문 읽기
잘못된 추상화보다 중복을 선호하라 (2016)
성급한 추상화보다 중복을 통한 유연성 확보와 유지보수 비용 절감
AI 요약
Context
중복 제거를 위한 성급한 추상화가 요구사항 변경 시 복잡한 조건문과 매개변수를 양산하는 병목 지점으로 작용. 단일 진실 공급원(SSOT) 원칙의 맹목적 적용으로 인한 과잉 설계와 코드 가독성 저하 문제 발생.
Technical Solution
- 잘못된 추상화 식별을 위해 공통 코드 내 조건 분기 및 매개변수 증가 추이 모니터링
- 추상화된 코드를 호출부로 다시 인라인(Inline)하여 도메인별 고유 경로를 분리하는 전략 채택
- WET(Write Everything Twice) 원칙을 적용하여 실제 입증된 공통 사례에 대해서만 사후 추상화 수행
- 캡슐화에 의존하기보다 호출자가 인지하는 얇은 추상화 계층을 두어 변경 영향도 최소화
- 데이터 성격에 따른 개별 로더(Loader) 설계로 무리한 일반화로 인한 복잡도 증가 방지
실천 포인트
1. 공통 함수에 특정 호출자만을 위한 if/else 조건문이 추가되고 있는가?
2. 추상화된 로직을 인라인했을 때 각 호출부의 실행 경로가 명확히 구분되는가?
3. 미래의 잠재적 요구사항이 아닌, 현재 존재하는 3개 이상의 구체적 사례가 확보되었는가?
4. 중복 제거로 인해 변경 시 무관한 영역에 사이드 이펙트가 발생할 가능성이 높아졌는가?