문장의 실무적 의미
“새 기능이 잘 붙는다”
→ 개발자 기준 성공
“문제 없이 뗄 수 있다”
→ 운영·조직 기준 성공
대부분의 시스템은
- 기능 추가는 가능하지만
- 기능 제거는 공포입니다.
그 이유가 설계 실패의 정체죠.
삭제가 어려운 설계의 특징 (실무 체크리스트)
- 삭제 대상 기능이
- 다른 모듈에서 암묵적으로 참조됨
- 데이터 스키마가
- 특정 기능 전제 하에 굳어 있음
- 로그/통계/배치가
- 기능 존재를 가정
- 테스트가
- “있는 상태”만 검증
👉 그래서 기능을 끄지 못하고
👉 “안 쓰는 코드”만 쌓입니다.
삭제 가능한 설계의 조건
- 기능 단위 명확한 경계
- 계약(Interface) 중심 설계
- 데이터 수명주기 정의
(생성–사용–보관–파기) - Feature Toggle / Soft Delete 전략
- 롤백 시나리오가 문서로 존재
이게 갖춰지면
기능 추가 = 비용
기능 삭제 = 선택
이 됩니다.
한 줄로 요약
설계는 확장성을 증명하는 게 아니라
철수 가능성을 보장하는 일이다.
이 문장, 아키텍처 리뷰 첫 장에 써도 됩니다.
“왜 이걸 나눴는지”를 가장 빨리 설명해주는 문장이라서요.
LIST
'Spring & Backend > Architecture' 카테고리의 다른 글
| 처음 설계에서의 편의는, 운영에서 빚이 된다 (0) | 2026.02.06 |
|---|---|
| 복잡성은 기능 수가 아니라 의존성에서 폭발한다 (0) | 2026.02.06 |
| 설계 문서는 완성도가 아니라 공통 이해를 만든다 (0) | 2026.02.06 |
| 추상화는 자유를 주지만, 과하면 방향 감각을 잃는다 (0) | 2026.02.06 |
| 결합도는 줄이고, 되돌릴 수 있는 선택을 늘려라 (0) | 2026.02.06 |
