마이크로서비스MSA
Microservices Architecture
서비스를 업무 기능별로 나누고 각각 독립적으로 개발·배포할 수 있게 구성하는 아키텍처예요.
쉽게 비유하면
한 부서가 모든 일을 맡는 대신 역할이 분명한 여러 팀이 약속한 창구로 협업하는 것과 같아요.
조금 더 자세히
주문, 결제와 재고 등을 서비스로 나누고 API나 메시지로 통신해요. 코드 크기보다 업무 경계와 독립적인 변경 가능성이 중요해요.
부분별 확장과 배포에 유리할 수 있지만 네트워크 장애, 데이터 일관성, 추적과 운영 복잡도가 늘어요. 서비스별 데이터 책임도 명확히 해야 해요.
왜 생겼나요
큰 시스템에서 팀마다 다른 속도로 기능을 바꾸고 확장하려는 요구를 지원하기 위해 활용해요.
어떻게 작동하나요
- 1. 경계 정의 업무 기능과 데이터 책임에 따라 서비스를 나눠요.
- 2. 통신 계약 API와 메시지 형식, 실패 처리 방식을 정해요.
- 3. 독립 운영 서비스별 배포와 감시를 하고 전체 흐름도 추적해요.
활용 예시
- 주문·결제 서비스 분리
- 검색 기능만 별도 확장
- 팀별 배포 주기 분리
흔한 오해
마이크로서비스가 항상 더 좋은가요?
작은 팀이나 단순한 제품에서는 운영 부담이 더 클 수 있어요. 조직 규모와 변경·확장 요구에 맞춰 선택해요.
이렇게 쓰여요
시스템 분리 검토
“작게 나누기보다 독립 배포할 경계와 장애 시 동작, 데이터 책임부터 정하자”라고 이야기해요.
관련 용어
함께 보면 좋은 용어
최종 업데이트