20분
Why: 설계 없이 코딩하면 벌어지는 일
시스템 아키텍처 설계
Why: 설계 없이 코딩하면 벌어지는 일
통합 프로젝트 > 시스템 아키텍처 설계
학습 목표
설계 없이 통합했을 때 발생하는 문제를 이해한다 MVP에서의 "적정 설계" 수준을 판단할 수 있다 모놀리식 vs 마이크로서비스의 트레이드오프를 안다
설계 없이 코딩하면 벌어지는 일
흔한 실패 시나리오
에디터 로딩 중...
설계 없이 5일 코딩 = 대혼란. 설계에 1일 투자 = 나머지 4일이 순탄.
MVP 설계의 핵심 원칙
1. YAGNI (You Ain't Gonna Need It)
에디터 로딩 중...
MVP의 목표는 "완벽한 시스템"이 아니라 "동작하는 데모"
2. 의존성 방향 원칙
에디터 로딩 중...
규칙: 상위 레이어만 하위 레이어를 참조한다. 역방향 금지.
3. 단일 진입점 (Single Entry Point)
에디터 로딩 중...
아키텍처 선택: 모놀리식 MVP
| 구분 | 모놀리식 (MVP) | 마이크로서비스 |
|---|---|---|
| 개발 속도 | 빠름 (5일 가능) | 느림 (3주+) |
| 복잡도 | 낮음 | 높음 |
| 디버깅 | 쉬움 (단일 프로세스) | 어려움 (분산 추적) |
| 배포 | docker compose up | K8s 클러스터 필요 |
| 확장성 | 제한적 | 유연함 |
| MVP 적합성 | 최적 | 오버엔지니어링 |
먼저 모놀리식으로 검증하고, 성공하면 필요한 부분만 분리하라. -- Martin Fowler, "MonolithFirst"
핵심 질문
다음 질문에 답할 수 있으면, 아키텍처 설계 준비가 된 것이다:
- 시스템의 주요 컴포넌트는 몇 개인가?
- 각 컴포넌트 사이의 데이터 흐름은 어떤가?
- 외부 의존성 (API, DB)은 무엇인가?
- 사용자의 핵심 유스케이스는 무엇인가?