[1]의 9장에서는 API의 계약 문서화와 이해 관계자들과 커뮤니케이션을 위한 패턴을 다룬다.
1. API 설명
- 설명: API의 기능, 메시지 구조, 동작의 의미 등을 문서화하여 클라이언트 개발자가 이해할 수 있도록 한다. OpenAPI와 같은 기술적 계약 설명 언어를 사용할 수 있다.
- 주요 특징:
- 상호 운용성 보장
- 정보 은닉 유지
- 확장성과 진화 가능성 지원
- 포스의 충돌:
- 지나치게 복잡한 설명은 유지보수에 어려움을 주고, 간단한 설명은 상호 운용성을 해칠 수 있음.
- 정보 은닉과 상호 운용성 사이의 균형을 유지해야 함.
2. 요금 책정 플랜
- 설명: API 사용량에 따라 요금을 청구하는 플랜을 정의하는 패턴. 구독 기반 요금제, 사용량 기반 요금제 등이 있으며, 고객의 사용량을 정확히 측정하고 요금 부과.
- 주요 특징:
- 경제적 측면, 정확성, 세분성, 보안 등의 고려 필요
- 구독형, 사용량 기반, 시장 기반 등의 요금제 변형 가능
- 포스의 충돌:
- 사용량 측정과 청구의 정확성을 유지하면서, 비용 효율적인 방법을 찾아야 함.
- 고객의 만족과 프로바이더의 수익성 사이의 균형 유지 필요.
3. 사용 비율 제한
- 설명: 클라이언트가 API를 과도하게 사용하는 것을 방지하기 위한 패턴. 주기적으로 재설정되는 간격 기반 전송률 제한을 사용하여 과도한 요청을 차단하거나 제한.
- 주요 특징:
- 경제적 측면과 성능 보장
- 남용 방지 및 신뢰성 유지
- 포스의 충돌:
- 너무 엄격한 제한은 사용자의 불만을 초래할 수 있으며, 너무 느슨한 제한은 시스템의 안정성을 해칠 수 있음.
- 서비스 품질과 클라이언트의 자유로운 사용 사이의 갈등을 조율해야 함.
4. 서비스 수준 계약 (SLA)
- 설명: API가 제공하는 서비스의 품질을 명시적으로 정의한 계약. 특정 서비스 수준 목표(SLO)를 포함하여, 이를 충족하지 못했을 때의 벌칙이나 보상 등을 규정.
- 주요 특징:
- 가용성, 성능, 보안, 법적 준수 등의 품질 특성 측정 가능
- 소비자 관점에서의 매력도 향상
- 포스의 충돌:
- 높은 품질 보증은 프로바이더에게 높은 비용과 위험을 수반할 수 있음.
- 클라이언트의 신뢰를 얻으면서도 비용 효율적인 방법을 찾아야 함.
참고 문헌
[1] 올라프 짐머만 , 미르코 스토커 , 다니엘 뤼브케 , 우베 즈둔 , 세자레 파우타소 , "마이크로서비스 API 디자인 패턴: 쉬운 통합을 위한 결합도 최적화 전략" 에이콘. 이승범 역
'Software Architecture' 카테고리의 다른 글
객체 지향 리엔지니어링 패턴: 10장 다형성 적용한 조건문 변환 (0) | 2025.01.01 |
---|---|
객체 지향 리엔지니어링 패턴: 9장 책임 재배치 (0) | 2024.12.25 |
마이크로서비스 API 디자인 패턴: 8장 API 진화 (1) | 2024.12.11 |
마이크로서비스 API 디자인 패턴: 7장 품질을 위한 메시지 설계 개선 (0) | 2024.12.04 |
마이크로서비스 API 디자인 패턴: 6장 요청 및 응답 메시지 표현 설계 (1) | 2024.11.27 |