반응형
마이크로서비스 아키텍처(Microservice Architecture, MSA)
마이크로서비스 아키텍처(MSA)는 소프트웨어 시스템을 작은 독립적인 서비스로 분리하여 각 서비스가 독립적으로 개발, 배포, 확장 및 관리되도록 설계된 아키텍처입니다. 각 마이크로서비스는 특정 도메인이나 비즈니스 기능을 담당하며, 다른 서비스와는 API나 메시지 큐를 통해 통신합니다.
전통적인 모놀리식 아키텍처에서 모든 기능이 하나의 큰 시스템에 포함되는 것과 달리, MSA는 각 기능을 독립된 단위로 나누어 시스템의 유연성과 확장성을 극대화하는 데 초점을 둡니다.
MSA의 주요 특징
- 독립성: 각 마이크로서비스는 독립적으로 개발, 배포, 그리고 확장이 가능하며, 다른 서비스에 영향을 주지 않고 업데이트할 수 있습니다.
- 분산 시스템: 마이크로서비스는 분산 시스템의 형태를 띄고 있으며, 서비스 간 통신은 주로 REST API, gRPC, 메시지 큐 등을 통해 이루어집니다.
- 다양한 기술 스택: 각 마이크로서비스는 개별적으로 선택된 프로그래밍 언어, 데이터베이스, 프레임워크를 사용할 수 있어, 각 서비스에 최적화된 기술을 선택할 수 있습니다.
- 작은 규모: 마이크로서비스는 각각 작은 단위로 나뉘어 있으며, 하나의 서비스가 특정 기능만을 담당하는 구조입니다. 이는 코드베이스가 작아져 유지보수가 용이해집니다.
장점:
- 독립적 배포: 각 서비스가 독립적으로 배포 및 확장이 가능하여 빠른 개발과 배포가 가능합니다.
- 유연성: 다양한 기술 스택을 사용하여 각 서비스에 최적화된 기술을 선택할 수 있습니다.
- 탄력성: 한 서비스의 장애가 전체 시스템에 영향을 미치지 않도록 격리할 수 있습니다.
단점:
- 복잡성 증가: 서비스 간 통신, 데이터 일관성 유지 등이 복잡해질 수 있습니다.
- 배포 및 관리 어려움: 다수의 서비스가 존재하기 때문에 배포, 모니터링, 로깅 등이 어려워질 수 있습니다.
- 네트워크 지연: 서비스 간 통신이 네트워크를 통해 이루어지므로 지연이 발생할 수 있습니다.
반응형
'면접' 카테고리의 다른 글
[Node.js] 3년차 백엔드 면접 질문 정리 (0) | 2024.11.08 |
---|---|
프로토콜 버퍼(protobuf)란? (1) | 2024.11.08 |
마이크로서비스 아키텍처(MSA)에서 모듈 간 통신 방법 (0) | 2024.08.08 |
서버로 파일을 전송하는 여러가지 방법 (0) | 2024.08.06 |