

# REL03-BP03 API별로 서비스 계약 제공
<a name="rel_service_architecture_api_contracts"></a>

 서비스 계약은 서비스 통합에 대한 팀 간의 문서화된 계약으로, 머신 판독 가능한 API 정의, 속도 제한 및 성능 기대치를 포함합니다. 버전 관리 전략을 사용하면 클라이언트에서 기존 API를 계속 사용하면서 준비가 될 때 애플리케이션을 최신 API로 마이그레이션할 수 있습니다. 계약을 위반하지 않는 한 언제든지 배포가 가능합니다. 서비스 공급자 팀은 원하는 기술 스택을 사용하여 API 계약을 충족할 수 있습니다. 마찬가지로 서비스 소비자는 자체 기술을 사용할 수 있습니다. 

 마이크로서비스는 서비스 지향 아키텍처(SOA) 개념을 적용하여 최소한의 기능 세트만 포함된 서비스를 생성합니다. 각 서비스는 API 및 설계 목표, 한도 및 서비스 사용을 위한 기타 고려 사항을 게시합니다. 이렇게 하면 호출 애플리케이션과의 *계약이* 성립됩니다. 이러한 방식에서 제공되는 세 가지 주요 이점은 다음과 같습니다. 
+  서비스에서 간단한 업무상의 문제만 처리하면 되며, 소규모 팀이 업무상의 문제를 소유할 수 있습니다. 그러므로 조직 크기를 더 효율적으로 조정할 수 있습니다. 
+  팀은 API 및 ‘계약’ 요구 사항을 충족하는 경우에 한해 언제든지 서비스를 배포할 수 있습니다. 
+  팀은 API 및 ‘계약’ 요구 사항을 충족하는 경우에 한해 원하는 모든 기술 스택을 사용할 수 있습니다. 

 Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안할 수 있게 해주는 완전관리형 서비스입니다. 트래픽 관리, 권한 부여 및 접근 제어, 모니터링 및 API 버전 관리를 비롯하여 최대 수십만 건의 동시 API 호출을 수락하고 처리하는 데 관련된 모든 작업을 처리합니다. 이전의 Swagger Specification인 OpenAPI Specification(OAS)을 사용하여 API 계약을 정의한 다음 이 정의를 API Gateway로 가져올 수 있습니다. 그런 다음 API Gateway를 사용하여 API를 버전 관리하고 배포할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>
+  API당 서비스 계약 제공: 서비스 계약은 서비스 통합에 대한 팀 간의 문서화된 계약으로, 머신 판독 가능한 API 정의, 속도 제한 및 성능 기대치를 포함합니다. 
  +  [Amazon API Gateway: OpenAPI를 사용하여 REST API 구성](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html) 
    +  버전 관리 전략을 사용하면 클라이언트에서 기존 API를 계속 사용하면서 준비가 될 때 애플리케이션을 최신 API로 마이그레이션할 수 있습니다. 
    +  Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성할 수 있게 해주는 완전관리형 서비스입니다. 이전의 Swagger Specification인 OpenAPI Specification(OAS)을 사용하여 API 계약을 정의한 다음 이 정의를 API Gateway로 가져올 수 있습니다. 그런 다음 API Gateway를 사용하여 API를 버전 관리하고 배포할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon API Gateway: OpenAPI를 사용하여 REST API 구성](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html) 
+  [경계 컨텍스트(도메인 주도 설계의 주요 패턴)](https://martinfowler.com/bliki/BoundedContext.html) 
+  [AWS에서 마이크로서비스 구현](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/introduction.html) 
+  [Microservice Trade-Offs](https://martinfowler.com/articles/microservice-trade-offs.html) 
+  [Microservices - a definition of this new architectural term](https://www.martinfowler.com/articles/microservices.html) 
+  [AWS 마이크로서비스](https://aws.amazon.com/microservices/) 