하나의 큰 애플리케이션을 여러 개의 작고 독립적인 서비스로 나누어 개발하고 배포하는 소프트웨어 개발 아키텍처를 의미한다.
아래 그림을 보면서 조금 더 직관적으로 이해해보자.
일반적으로 백엔드 서버를 구성할 때 활용하는 구조가 모놀리식 아키텍처다. 프로젝트 하나에 모든 API(결제 관련 API, 인증 관련 API, 상품 관련 API)를 전부 구현하는 방식이다.
하지만 마이크로서비스 아키텍처(MSA)는 서비스에 필요한 API들을 하나의 프로젝트가 아닌 여러 개의 프로젝트로 나눠서 구현하는 방식이다. 위 그림을 보면 결제 관련 API들끼리 모아놓은 프로젝트와, 인증 관련 API들끼리 모아놓은 프로젝트와, 상품 관련 API들끼리 모아놓은 프로젝트를 분리해서 구성했다. 그리고 MSA에서는 독립적으로 분리된 하나의 프로젝트를 서비스(service)라고 부른다.
👨🏻🏫
사실 MSA가 뭔지 궁금해서 조금 찾아본 사람들은, MSA가 대략적으로 어떤 개념인지는 이미 알고 있었을 것이다. 하지만 MSA를 언제, 어떤 상황에서 적용시켜야 하는 지 명확하게 이해하고 있는 사람들은 잘 없다.
따라서 다음 강의에서는 MSA가 도대체 어떤 특징과 장점을 가지고 있길래, 많은 회사에서 MSA를 도입하는 지 알아보자.