피드로 돌아가기
Dev.toBackend
원문 읽기
변경 비용 최소화를 위한 Deletability 중심의 설계 패러다임 전환
Write Code That's Easy to Delete: The Art of Impermanent Software
AI 요약
Context
확장성과 재사용성에 매몰된 설계 관습으로 인한 코드 간 강한 결합도 증가 및 유지보수 비용 상승 문제 발생. 불필요한 추상화와 과도한 DRY 원칙 적용이 오히려 코드 삭제 및 변경을 어렵게 만드는 기술적 부채로 작용하는 상황 분석.
Technical Solution
- Reversibility 설계를 통한 기능 제거 비용의 최소화 및 단일 PR 수준의 삭제 가능 구조 지향
- 과도한 DRY 원칙 지양 및 독립적 진화를 위한 의도적 중복 허용을 통한 모듈 간 결합도 완화
- 명확한 Boundary 설정 및 Interface 추상화를 통한 내부 구현 세부 사항의 외부 누출 방지
- Feature Flag 및 Adapter Layer 도입으로 런타임 제어 및 교체 가능한 Seam 구축
- Strangler Fig Pattern을 활용한 기존 레거시의 점진적 격리 및 안전한 제거 프로세스 적용
- Global State 접근 제한 및 Pure Function 지향을 통한 모듈의 무지(Ignorance) 상태 유지로 테스트 가능성 확보
실천 포인트
- 신규 기능 추가 시 '단일 PR로 제거 가능한 구조인가'를 검토하는 Deletability 렌즈 적용 - 의존성 추가 전 '2년 후 제거 시의 영향 범위와 소요 시간'을 사전 예측 - 15개 이상의 파일에 걸쳐 수정이 필요한 기능 구현 시 설계 단계의 결합도 재검토 - 추상화 계층 도입 시 중복 제거 목적보다 격리 및 교체 가능성 확보 여부를 우선 판단