마이크로서비스

기술 용어
1분 읽기

애플리케이션을 비즈니스 기능 중심의 독립적인 소규모 서비스들로 분리하여 구축하고 배포하는 클라우드 네이티브 아키텍처입니다.

다른 이름
MicroserviceMSAMicroservice Architecture

상세 설명

마이크로서비스(Microservices)는 하나의 큰 애플리케이션을 작고 느슨하게 결합된 서비스들의 집합으로 설계하는 방식입니다. 각 서비스는 고유의 데이터베이스와 비즈니스 로직을 가지며, 주로 REST API나 gRPC를 통해 통신합니다. 모놀리식 아키텍처와 달리 특정 기능만 독립적으로 업데이트하거나 확장할 수 있어 개발 민첩성과 장애 격리 능력이 뛰어납니다. 최근에는 AI 모델의 추론 환경을 별도의 마이크로서비스로 분리하여 자원을 효율적으로 배포하는 'Model-as-a-Service' 패턴이 확산되고 있으며, 서비스 메시와 서버리스 기술을 통해 운영 복잡성을 해결하는 추세입니다.

도구 선택에서 중요한 이유

AI 도구나 플랫폼을 도입할 때 마이크로서비스 아키텍처 지원 여부는 확장성과 직결됩니다. AI 모델은 일반 비즈니스 로직보다 높은 연산 자원을 소모하므로, 이를 전체 시스템과 분리하여 독립적으로 확장(Scaling)할 수 있어야 비용 효율적인 운영이 가능합니다. 또한 다양한 기술 스택을 허용하므로 최신 AI 프레임워크를 기존 시스템에 쉽게 통합할 수 있습니다.

도구 도입 시 확인할 점

  • 표준 API(REST, gRPC)를 통해 기존 시스템과 유연하게 통신하는가?
  • Docker/Kubernetes 등 컨테이너 환경에서 독립적인 배포를 지원하는가?
  • 분산된 서비스 간의 상태를 파악할 수 있는 관찰성(Observability) 도구를 제공하는가?
  • 특정 서비스 장애가 전체 시스템으로 전이되는 것을 방지하는 서킷 브레이커 기능이 있는가?

AI 시스템 적용 예시

이커머스 서비스에서 '상품 검색'은 일반 DB로 처리하고, '이미지 기반 유사 상품 추천'은 GPU 자원이 할당된 별도의 마이크로서비스로 구성합니다. 사용자가 급증할 때 추천 엔진 서비스만 서버를 늘려 대응함으로써 전체 시스템의 안정성을 유지할 수 있습니다.

헷갈리기 쉬운 용어

모놀리식 (Monolithic)

모든 기능이 하나의 코드 베이스와 프로세스로 묶여 있어 배포와 확장이 일괄적으로 이루어지는 구조입니다.

모듈러 모놀리스 (Modular Monolith)

배포는 하나로 하되 내부 코드는 서비스 단위로 엄격히 분리하여, 마이크로서비스의 복잡성을 피하면서 구조적 이점을 취하는 중간 단계입니다.

관련 용어

monolithiccontainerizationapi-gateway서버리스