Architecture / Backend
MSA
💡 핵심 : 서비스 규모가 커지면 하나의 거대한 코드베이스(Monolithic)는 관리가 불가능해집니다. 이를 독립적인 작은 서비스로 쪼개어 관리하는 MSA의 특징과 장단점을 비교 분석합니다.
1. 모놀리틱 아키텍처
모놀리틱 아키텍처는 모든 기능(회원, 상품, 주문 등)이 하나의 애플리케이션 내에 포함된 구조입니다.
✅ 장점: 배포가 단순하고 하나의 DB를 사용하여 데이터 일관성 유지가 쉽습니다
❌ 단점: 서비스가 커지면 특정 기능만 확장하기 어렵고, 작은 수정에도 전체를 다시 배포해야 하는 비효율이 발생
2.모놀리틱 vs MSA: 무엇이 다른가?

아키텍처를 선택하는 것은 정답을 찾는 과정이 아닌 트레이드 오프(Trade-off)의 과정입니다. 두 방식의 장단점을 명확히 인지하고 있어야 적재적소에 기술을 적용할 수 있습니다.
| 아키텍처 | 주요 장점 (Pros) | 주요 단점 (Cons) |
|---|---|---|
| 모놀리틱 (Monolithic) |
|
|
| MSA (Microservices) |
|
|
MSA의 단점은 무엇일까?
면접에서 MSA의 단점은 "서비스 간의 복잡한 통신과 데이터의 정합성 문제"이다.
성공적인 MSA 구축은 서비스를 잘 나누고, 나눠진 서비스들을 어떻게 잘 연결하고 관리하느냐에 달려 있다는 것을 보여주는 게 핵심이다.
3. MSA의 핵심
MSA는 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리합니다.
각 서비스는 특정 비즈니스 기능(회원, 주문 등)을 수행하며 독자적으로 운영된다.
- 독립적 배포: 다른 서비스에 영향을 주지 않고 특정 기능만 업데이트하거나 배포할 수 있습니다.