모놀리식 아키텍처
하나의 코드베이스와 배포 단위로 모든 기능을 통합한 전통적인 애플리케이션 아키텍처입니다.
구조
┌─────────────────────────────────────────┐
│ 단일 애플리케이션 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌───────┐ │
│ │ 사용자 │ │ 주문 │ │ 결제 │ │
│ │ 모듈 │ │ 모듈 │ │ 모듈 │ │
│ └──────────┘ └──────────┘ └───────┘ │
│ │
│ ┌─────────────────────────────────┐ │
│ │ 단일 데이터베이스 │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
│
▼
단일 배포 단위 (JAR/WAR)
장점
- 개발 환경 구성 단순 — 로컬에서 하나만 실행
- 트랜잭션 처리 용이 — 단일 DB이므로 ACID 보장
- 디버깅 · 로깅 · 배포 파이프라인 단순
- 팀이 작을 때 개발 속도 빠름
- 서비스 간 네트워크 비용 없음
단점
- 배포 리스크: 작은 수정도 전체 재배포 필요
- 스케일링 비효율: 특정 모듈만 부하가 높아도 전체 서버 증설
- 기술 스택 고착: 하나의 언어/프레임워크에 종속
- 코드 결합도 증가: 규모가 커질수록 변경이 전파되기 쉬움
- 장애 전파: 한 모듈의 장애가 전체 서비스에 영향
언제 적합한가?
- 초기 스타트업 / 팀 규모가 작을 때
- 도메인 경계가 아직 불분명할 때
- 빠른 MVP 개발이 필요할 때