728x90
반응형
MSA (Microservices Architecture, 마이크로서비스 아키텍처)는 소프트웨어 시스템을 여러 개의 작은 독립적인 서비스로 나누어 개발하고 운영하는 아키텍처 스타일입니다.
🔹 MSA의 핵심 개념
- 서비스 단위 분리: 애플리케이션을 여러 개의 독립적인 서비스로 구성
- 독립적인 배포 및 운영: 각 서비스는 개별적으로 개발, 배포, 확장 가능
- API 기반 통신: REST, gRPC, 메시지 큐(Kafka, RabbitMQ) 등을 사용해 서비스 간 통신
- 각 서비스별 데이터 관리: 서비스별 개별 DB 사용 (Database per service)
- 자동화된 운영 및 배포: CI/CD를 활용한 지속적 배포 및 운영 자동화
🔹 MSA의 장점
✅ 확장성 (Scalability): 특정 서비스만 개별적으로 확장 가능
✅ 유지보수 용이성: 각 서비스가 독립적이므로 부분 수정이 전체 시스템에 영향 없음
✅ 개발 생산성 증가: 여러 팀이 병렬적으로 개발 가능
✅ 탄력적인 기술 선택: 서비스마다 다른 기술 스택(Java, Python, Go 등) 사용 가능
🔹 MSA의 단점
❌ 복잡한 운영 관리: 서비스가 많아지면 모니터링과 장애 대응이 어려움
❌ 네트워크 비용 증가: 서비스 간 API 호출이 많아지면서 성능 저하 가능
❌ 데이터 일관성 유지 어려움: 분산된 데이터 저장으로 인해 트랜잭션 관리가 복잡
🔹 MSA vs Monolithic (모놀리식) 아키텍처 비교
비교 항목 MSA Monolithic
구조 | 여러 개의 독립적인 서비스 | 하나의 통합된 애플리케이션 |
배포 방식 | 서비스별 독립적 배포 | 전체 애플리케이션을 한 번에 배포 |
개발 속도 | 팀별로 병렬 개발 가능 | 단일 코드베이스에서 개발 |
확장성 | 특정 서비스만 확장 가능 | 전체 시스템을 확장해야 함 |
운영 복잡성 | 높음 (서비스 간 통신, 모니터링 필요) | 상대적으로 단순 |
🔹 MSA를 활용한 대표적인 사례
- Netflix: MSA를 활용해 글로벌 스트리밍 서비스 운영
- Amazon: 주문, 결제, 배송 등을 독립적인 서비스로 운영
- Uber: 지역별, 기능별 서비스 분리하여 확장성 확보
📌 결론:
MSA는 확장성과 유연성이 뛰어나지만, 운영 복잡성이 증가하기 때문에 적절한 모니터링, DevOps, 분산 데이터 관리 전략이 필수입니다. 🚀
728x90
반응형
'Tech 이야기' 카테고리의 다른 글
vscode에서 Code Runner 사용하기 (4) | 2025.03.24 |
---|---|
불확실성 커졌다. 제 4인뱅은 어디로? (9) | 2025.03.18 |
GTC 2025 시작 (4) | 2025.03.17 |
합격 후 적응 실패? 컬처핏이 답이다! (0) | 2025.03.17 |
스타게이트, AI 미래가 궁금하다 (4) | 2025.01.23 |