피드로 돌아가기
잘못된 추상화보다 중복을 선호하라 (2016)
GeekNewsGeekNews
Backend

잘못된 추상화보다 중복을 선호하라 (2016)

성급한 추상화보다 중복을 통한 유연성 확보와 유지보수 비용 절감

neo2026년 6월 22일12intermediate

Context

중복 제거를 위한 성급한 추상화가 요구사항 변경 시 복잡한 조건문과 매개변수를 양산하는 병목 지점으로 작용. 단일 진실 공급원(SSOT) 원칙의 맹목적 적용으로 인한 과잉 설계와 코드 가독성 저하 문제 발생.

Technical Solution

  • 잘못된 추상화 식별을 위해 공통 코드 내 조건 분기 및 매개변수 증가 추이 모니터링
  • 추상화된 코드를 호출부로 다시 인라인(Inline)하여 도메인별 고유 경로를 분리하는 전략 채택
  • WET(Write Everything Twice) 원칙을 적용하여 실제 입증된 공통 사례에 대해서만 사후 추상화 수행
  • 캡슐화에 의존하기보다 호출자가 인지하는 얇은 추상화 계층을 두어 변경 영향도 최소화
  • 데이터 성격에 따른 개별 로더(Loader) 설계로 무리한 일반화로 인한 복잡도 증가 방지

1. 공통 함수에 특정 호출자만을 위한 if/else 조건문이 추가되고 있는가?

2. 추상화된 로직을 인라인했을 때 각 호출부의 실행 경로가 명확히 구분되는가?

3. 미래의 잠재적 요구사항이 아닌, 현재 존재하는 3개 이상의 구체적 사례가 확보되었는가?

4. 중복 제거로 인해 변경 시 무관한 영역에 사이드 이펙트가 발생할 가능성이 높아졌는가?

원문 읽기