1️⃣ “미래를 대비한 설계”의 의미 (⭕)
이건 불확실성을 전제로 한 설계입니다.
- 요구는 바뀐다
- 트래픽은 예측 불가
- 조직/인력은 변한다
그래서 하는 것:
- 경계 분리
- 인터페이스 정의
- 되돌릴 수 있는 배포
- 데이터 이력 보존
- 기능 on/off
👉 모르겠음을 인정하는 설계
2️⃣ “미래를 가정한 설계”의 실체 (❌)
이건 확신을 전제로 한 설계입니다.
- “나중엔 무조건 커질 거예요”
- “이 기능은 곧 필요해요”
- “글로벌 확장 대비”
- “다른 팀이 붙을 걸요”
결과:
- 안 쓰는 추상화
- 죽은 코드
- 이해 비용 증가
- 변경 비용 폭증
👉 틀릴 가능성을 코드로 고정
3️⃣ 둘을 가르는 결정적 질문
“이 미래가 안 오면, 우리는 무엇을 잃는가?”
- 아무것도 안 잃음 → 대비
- 구조가 무너짐 → 가정
4️⃣ 실무에서 바로 쓰는 구분표
항목대비가정
| 인터페이스 | 경계만 정의 | 구현까지 미리 |
| 확장성 | 분리 가능성 확보 | 미리 분산 |
| 성능 | 병목 관측 가능 | 캐시/비동기 선도입 |
| 도메인 | 현재 규칙 중심 | 미래 정책 반영 |
5️⃣ 위험한 신호 문장들
- “일단 만들어 두죠”
- “나중에 필요할 것 같아서”
- “확장성 고려했어요” (근거 없음)
- “요즘 다 이렇게 해요”
이 말이 많아질수록
가정 설계 비율이 높아집니다.
6️⃣ 설계 판단 기준 문장
“지금 안 써도, 지워도 되는가?”
- YES → 대비
- NO → 가정
한 줄 요약
대비는 여지를 남긴다.
가정은 결정을 고정한다.
LIST
'Spring & Backend > Architecture' 카테고리의 다른 글
| 추상화는 자유를 주지만, 과하면 방향 감각을 잃는다 (0) | 2026.02.06 |
|---|---|
| 결합도는 줄이고, 되돌릴 수 있는 선택을 늘려라 (0) | 2026.02.06 |
| 좋은 설계는 똑똑해 보이지 않고 안전해 보인다. (0) | 2026.02.04 |
| 설계는 정답을 고르는 게 아니라 변경 비용을 정하는 일이다 (1) | 2026.02.04 |
| 좋은 백엔드는 트래픽이 아니라 운영 시간을 줄인다 (0) | 2026.02.04 |
