마이크로서비스

애플리케이션을 비즈니스 역량을 중심으로 구성된, 작고 독립적으로 배포 가능한 서비스들의 모음으로 구조화하는 아키텍처 스타일입니다.

마이크로서비스란?

마이크로서비스는 내부 복잡성(하나의 큰 코드베이스)을 분산 복잡성(서로 조율해야 하는 여러 작은 것들)과 맞바꿉니다. 이 교환은 팀이 독립적인 속도와 명확한 소유권을 필요로 할 때 가치가 있으며, 분산 시스템을 운영할 운영 성숙도 없이 구축할 때는 큰 대가를 치르게 됩니다.

관련 용어

  • API 계약 — 생산자와 소비자가 준수하기로 합의한 API의 정형 명세(OpenAPI, gRPC proto, GraphQL 스키마)입니다.
  • 이벤트 채널 — 서비스들이 비동기적으로 발행하고 구독하는, 이름과 타입이 부여된 이벤트 스트림(흔히 Kafka 토픽 또는 그에 준하는 것)입니다.
  • 서비스 메시 — 주로 사이드카 프록시를 통해 서비스 간 통신을 처리하는 전용 인프라 계층입니다.