문장의 실무적 의미

“새 기능이 잘 붙는다”
→ 개발자 기준 성공

“문제 없이 뗄 수 있다”
운영·조직 기준 성공

대부분의 시스템은

  • 기능 추가는 가능하지만
  • 기능 제거는 공포입니다.

그 이유가 설계 실패의 정체죠.


삭제가 어려운 설계의 특징 (실무 체크리스트)

  • 삭제 대상 기능이
    • 다른 모듈에서 암묵적으로 참조됨
  • 데이터 스키마가
    • 특정 기능 전제 하에 굳어 있음
  • 로그/통계/배치가
    • 기능 존재를 가정
  • 테스트가
    • “있는 상태”만 검증

👉 그래서 기능을 끄지 못하고
👉 “안 쓰는 코드”만 쌓입니다.


삭제 가능한 설계의 조건

  • 기능 단위 명확한 경계
  • 계약(Interface) 중심 설계
  • 데이터 수명주기 정의
    (생성–사용–보관–파기)
  • Feature Toggle / Soft Delete 전략
  • 롤백 시나리오가 문서로 존재

이게 갖춰지면

기능 추가 = 비용
기능 삭제 = 선택

이 됩니다.


한 줄로 요약

설계는 확장성을 증명하는 게 아니라
철수 가능성을 보장하는 일이다.

이 문장, 아키텍처 리뷰 첫 장에 써도 됩니다.
“왜 이걸 나눴는지”를 가장 빨리 설명해주는 문장이라서요.

LIST

+ Recent posts