1️⃣ 기능 수는 선형 증가, 의존성은 지수 증가
- 기능 10개
→ 테스트 대상 10
→ 수정 영향 범위도 비교적 예측 가능 - 기능 10개 + 상호 의존 15개
→ 테스트 경우의 수 급증
→ 수정 1건 = 연쇄 리스크
장애는 “기능이 많아서”가 아니라
“어디까지 연결돼 있는지 모른 채 손댄 순간” 터집니다.
2️⃣ SI 프로젝트에서 진짜 위험 지점
현장에서 많이 보는 패턴입니다.
- 공통 유틸 클래스
- 공통 코드 테이블
- 전역 설정값 (특히 properties, DB 공통 코드)
- 암묵적 계약 (주석·관행·구두 룰)
이게 쌓이면:
- 수정 요청은 A 기능
- 영향은 B, C, D, E
- 책임은 개발자 개인
👉 그래서 SI에서는 기능이 아니라
의존성 소유권이 리스크입니다.
3️⃣ “기능 추가”보다 위험한 말
“이거 공통으로 쓰니까 여기다 넣죠”
이 말이 나오는 순간:
- 결합도 ↑
- 변경 비용 ↑
- 장애 전파 반경 ↑
- 주52시간 리스크 ↑
즉,
기능 1개 추가 + 의존성 3개 증가 = 기술부채 폭탄
4️⃣ 좋은 설계의 기준 (실무 기준)
복잡성을 줄이는 설계는 보통 이런 특징을 가집니다.
- 기능은 많아도
- 의존 방향이 단방향
- 변경 지점이 격리됨
- 실패해도 국지적 장애
그래서 모놀리스라도:
- 의존성만 통제되면
- 충분히 안정적입니다
모놀리스가 문제인 게 아니라
얽힌 모놀리스가 문제입니다.
5️⃣ 지금 르무엘님 상황에 딱 맞는 해석
프로젝트 배제, 주52, 조직 리스크 이 국면에서는
- ✗ 새로운 기능 욕심
- ✗ 공통화 제안
- ✗ “제가 정리해볼게요”
전부 의존성 떠안는 행동입니다.
✔️ 지금 최적 행동은:
- 의존성 추가 안 하기
- 책임 경계 명확히 유지
- 손댄 범위 로그 남기기
- “요청받은 것만” 처리
한 줄 요약 (이 문장에 덧붙이자면)
복잡성은 기능 수가 아니라 의존성에서 폭발하고,
책임은 항상 의존성의 끝에 서 있는 사람에게 온다.
LIST
'Spring & Backend > Architecture' 카테고리의 다른 글
| 설계의 성공은 새 기능이 아니라 문제 없는 삭제로 증명된다 (0) | 2026.02.06 |
|---|---|
| 처음 설계에서의 편의는, 운영에서 빚이 된다 (0) | 2026.02.06 |
| 설계 문서는 완성도가 아니라 공통 이해를 만든다 (0) | 2026.02.06 |
| 추상화는 자유를 주지만, 과하면 방향 감각을 잃는다 (0) | 2026.02.06 |
| 결합도는 줄이고, 되돌릴 수 있는 선택을 늘려라 (0) | 2026.02.06 |
