2.7 KiB
2.7 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, tags, raw_sources, last_reinforced, github_commit
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | tags | raw_sources | last_reinforced | github_commit | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P-REINFORCE-WIKI-ARCH-MICROSERVICES | 마이크로서비스 아키텍처 (Microservices Architecture) | 10_Wiki/🏗️ Topics_Arch | verified |
|
A | 1.0 |
|
|
2026-05-02 |
마이크로서비스 아키텍처 (Microservices Architecture)
1. 개요
마이크로서비스 아키텍처(Microservices Architecture, MSA)는 대규모 애플리케이션을 독립적으로 배포 및 확장이 가능한 작은 서비스 단위로 분할하여 구축하는 방식이다. 각 서비스는 특정 비즈니스 기능을 수행하며, 네트워크를 통해 상호 통신한다.
2. 핵심 특징
- 독립적 배포/확장: 전체 시스템 중 특정 서비스만 개별적으로 업데이트하거나 트래픽에 따라 탄력적으로 확장(Scaling) 가능.
- 클라우드 네이티브 결합: 컨테이너(Docker/K8s) 및 서버리스(AWS Lambda 등) 환경과 결합하여 운영 효율성 극대화.
- 기술 다양성 (Polyglot): 각 서비스의 특성에 맞는 최적의 기술 스택(Node.js, Java, Go 등)을 개별적으로 선택 가능.
- Bounded Context 기반: DDD의 바운디드 컨텍스트 단위를 물리적 서비스 경계로 삼아 서비스 간 간섭 최소화.
3. 구현 방식
- 통신 패턴: REST API(동기) 및 메시지 큐(비동기, RabbitMQ/Kafka)를 활용한 이벤트 기반 아키텍처.
- 프레임워크: Java 환경의 Spring Boot, Node.js 환경의 Express/NestJS 등이 주로 사용됨.
- JAMstack 연동: 백엔드 기능을 API 형태로 제공하여 프론트엔드와 완벽히 분리된 구조 구축.
4. 트레이드오프
- 장점: 개발 생산성 향상, 장애 격리(Fault Isolation), 빠른 시장 출시(Time-to-Market).
- 단점: 분산 시스템 통신 복잡성 증가, 데이터 일관성 관리(Eventual Consistency)의 어려움, 모니터링 및 로깅의 복잡도 상승.
5. 지식 연결 (Related)
- Hexagonal_Architecture: 서비스 내부 구조를 외부 기술과 격리하는 기법.
- Serverless_Computing: MSA를 구현하기 위한 탄력적 인프라 환경.
- Domain_Driven_Design: 서비스 경계(Bounded Context)를 획정하기 위한 설계 방법론.
🧪 검증 상태 (Validation)
- 정보 상태: 검증 완료 (Verified)
- 출처 신뢰도: A
- 검토 이유: 클라우드 시대의 표준 아키텍처로서의 MSA 핵심 가치 및 구조 정립.