MA (Monolithic Architecture)
- 하나의 애플리케이션에서 제공하는 모든 서비스를 하나의 백엔드 서버에서 처리하는 아키텍처
- ex : 결제, 회원가입, 리뷰 등의 기능을 하나의 Spring Boot 서버에서 함께 개발
- → 소규모 프로젝트에 적합함
→ 구조가 단순하고 모든 기능이 한 프로젝트에 몰려있어 개발이 빠름.
→ 빌드, 배포를 한 번에 진행할 수 있어 편리함.
→ 비교적 저렴하게 서버 한대로 운용 가능.
→ 팀 규모가 작아도 커뮤니케이션 부담이 없어 감당할 수 있음. - 모든 서비스가 하나의 코드베이스와 배포 단위를 공유함
- 단점: 규모가 커지면 유지보수 어려움, 일부 기능 수정 시 전체 재배포 필요
→ 기능이 많아질수록 구조가 복잡해지고, 하나의 기능이 전체 서비스에 영향을 줄 수 있음.

MSA (Microservice Architecture)
- 하나의 애플리케이션에서 제공하는 서비스를 여러 개의 독립된 백엔드 서버(마이크로서비스)로 나누는 아키텍처
- ex : 결제, 회원가입, 리뷰 등의 기능을 각각 다른 서버로 개발 및 배포
- 각 서비스는 독립적인 코드베이스, 데이터베이스, 배포 단위를 가질 수 있음
- → 대규모 프로젝트에 적합함
→ 기능별로 나누어져있어 서비스의 확장과 유지보수가 좋음.
→ 기능별로 팀을 나누어 각 팀이 서로의 코드를 몰라도 팀별 분산 개발이 가능함.
→ 특정 기능을 수정할 때 전체코드를 재배포하지 않고 필요 부분만 배포가능함 → 빠른 릴리즈
→ MA와 다르게 장애가 발생하면 전체 서비스가 죽는게 아니라 특정 서비스만 죽음 → 장애 격리 - 단점: 통신 복잡성 증가, 운영/관리 복잡도 상승 (예: API Gateway, 서비스 간 인증 등 필요)

감이 안잡힌다면 배민 MSA 도입도 한번 찾아보자
반응형
'정리' 카테고리의 다른 글
| 스프링 (0) | 2025.04.22 |
|---|---|
| 프로세스와 스레드 (0) | 2025.04.22 |
| SSO에 대해 알아보자 (1) | 2025.04.18 |
| socket과 webSocket (0) | 2025.04.17 |
| index의 개념 (0) | 2025.04.16 |