팀별 서비스 패턴 - AWS 권장 가이드

팀별 서비스 패턴

팀별 서비스 패턴은 비즈니스 역량이나 서비스별로 모놀리스를 분해하는 대신 개별 팀이 관리하는 마이크로서비스로 세분화합니다. 각 팀은 비즈니스 역량을 책임지고 해당 역량의 코드베이스를 소유합니다. 팀은 독립적으로 서비스를 개발, 테스트, 배포 또는 확장하며 주로 API를 협상하기 위해 다른 팀과 상호 작용합니다. 각 마이크로서비스를 단일 팀에 할당하는 것이 좋습니다. 그러나 팀 규모가 충분히 크면 여러 하위 팀이 동일한 팀 구조 내에서 개별 마이크로서비스를 소유할 수 있습니다. 다음 표는 이 패턴 사용의 장단점을 설명합니다.

장점 단점
  • 팀은 최소한의 조정만 필요로 하며 독립적으로 행동합니다.

  • 코드 베이스와 마이크로서비스를 여러 팀에서 공유하지 않습니다.

  • 팀은 제품 기능을 빠르게 혁신하고 반복할 수 있습니다.

  • 팀마다 다양한 기술, 프레임워크 또는 프로그래밍 언어를 사용할 수 있습니다. 중요: 이러한 정보는 잘 정의되고 안정적인 공개 API 뒤에 숨겨야 합니다.

  • 최종 사용자 기능이나 비즈니스 역량에 맞게 팀을 조정하는 것은 어려울 수 있습니다.

  • 특히 팀 간에 순환적 종속성이 있는 경우, 더 크고 조율된 애플리케이션 증분을 제공하려면 추가적인 노력이 필요합니다.

다음 그림은 모놀리스를 개별 팀이 관리, 유지 관리 및 제공하는 마이크로서비스로 분할하는 방법을 보여줍니다.

팀에 의한 모놀리스를 마이크로서비스로 분해