20

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 upK8s 클러스터 필요
확장성제한적유연함
MVP 적합성최적오버엔지니어링

먼저 모놀리식으로 검증하고, 성공하면 필요한 부분만 분리하라. -- Martin Fowler, "MonolithFirst"


핵심 질문

다음 질문에 답할 수 있으면, 아키텍처 설계 준비가 된 것이다:

  1. 시스템의 주요 컴포넌트는 몇 개인가?
  2. 각 컴포넌트 사이의 데이터 흐름은 어떤가?
  3. 외부 의존성 (API, DB)은 무엇인가?
  4. 사용자의 핵심 유스케이스는 무엇인가?