[1]의  8장에서는 다룬 API 진화 패턴을 다룬다. 각 패턴에 대한 설명, 주요 특징, 그리고 충돌하는 요구 사항(포스)을 포함한다.

변경 사항 도입 패턴:

  1. 공격적 폐기
    • 설명: 이전 버전을 빠르게 폐기하고, 클라이언트에게 빠르게 신규 버전으로 전환하도록 강제.
    • 주요 특징:
      • 사용 빈도가 낮은 기능을 신속히 제거.
      • 유지 관리 비용 절감.
      • 최신 버전 채택 촉진.
    • 포스:
      • 신속한 혁신과 클라이언트 안정성 간의 균형.
      • 빠른 전환이 어려운 클라이언트와의 충돌 가능성.
  2. 실험적 미리 보기
    • 설명: 초기 버전을 미리 공개하여 클라이언트가 테스트하고 피드백을 제공할 수 있게 함.
    • 주요 특징:
      • 초기 채택과 피드백 장려.
      • 정식 출시 전 API를 개선할 수 있음.
    • 포스:
      • 불안정한 기능 노출의 위험.
      • 기능의 안정성과 클라이언트 기대치 관리 필요.
  3. 2개의 상용 버전
    • 설명: 기존 버전과 새로운 버전을 동시에 유지하여 점진적인 전환 지원.
    • 주요 특징:
      • 클라이언트의 중단 없는 전환 가능.
      • 역호환성 제공.
    • 포스:
      • 여러 버전을 유지 관리하는 데 필요한 자원 증가.
      • 새로운 기능과 이전 버전 지원 간의 균형.
  4. 제한적 수명 보장
    • 설명: API 버전의 지원 기간을 명확히 설정.
    • 주요 특징:
      • 버전 지원 종료 시점을 명확히 하여 클라이언트의 계획 수립 도움.
    • 포스:
      • 클라이언트의 기대치와 실제 지원 기간 간의 조율 필요.
      • 더 긴 지원이 필요한 클라이언트와의 충돌 가능성.
    •  

버전 표시 패턴:

  1. 버전 구분자
    • 설명: 명확한 버전 식별자를 사용하여 API 업데이트 구분.
    • 주요 특징:
      • 역호환성 관리.
      • 클라이언트가 특정 버전을 선택할 수 있게 함.
    • 포스:
      • 버전 관리 규칙의 엄격한 제어 필요.
      • 여러 버전이 동시에 사용될 때의 어려움.
  2. 시멘틱 버전 관리
    • 설명: 구조화된 버전 체계(예: major.minor.patch)를 사용하여 변경의 성격을 표시.
    • 주요 특징:
      • 버전 간 호환성 이해를 간편하게 만듦.
      • 중요한 변경 및 신규 기능을 명확히 신호.
    • 포스:
      • 새로운 기능 추가와 역호환성 유지의 균형 필요.
      • 일관된 버전 규칙 준수가 요구됨.

호환성 보장 패턴:

  1. 서비스 수준 계약(SLA)
    • 설명: API의 가용성, 성능 및 지원에 대한 명확한 기대치를 설정.
    • 주요 특징:
      • 클라이언트에게 안정성을 보장.
      • 신뢰성과 가동 시간 기준 설정.
    • 포스:
      • 안정성을 보장하면서 지속적인 개선을 하는 것의 충돌.
      • 높은 기준을 유지하기 위한 비용 부담.

참고 문헌
[1]  올라프 짐머만 , 미르코 스토커 , 다니엘 뤼브케 , 우베 즈둔 , 세자레 파우타소 , "마이크로서비스 API 디자인 패턴: 쉬운 통합을 위한 결합도 최적화 전략" 에이콘. 이승범 역

+ Recent posts