일반적으로 __CAPGO_KEEP_0__ 버전 관리 전략을 알게 되지 않습니다. API 버전 관리 전략 까지는 __CAPGO_KEEP_0__ 버전 관리 전략이 문제가되지 않습니다. 그러나 릴리스가 전날까지 작동하던 것을 깨트리면 문제가 시작됩니다. 모바일 앱이 출시되거나 백엔드 필드가 이름이 바뀌거나 스토어 리뷰 주기가 길어지거나 사용자가 몇 주간 업데이트를 하지 않아도 같은 문제를 보고하기 시작하면 "변경 사항을 깨트리지 않도록 하자"는 계획이 아닌 비용이 됩니다.
실질적인 문제는 버전을 사용할 것인가가 아니라, 어떻게 오래된 클라이언트를 살리고 API를 영원히 멈추지 않도록 유지할 것인가이다. 어떤 것이 API 문서로 간주되는지 어떤 것이 __CAPGO_KEEP_0__ 문서로 간주되는지
목차
- 왜 API는 버전 관리 전략이 필요합니까
- 버전 관리 패턴 4 가지를 비교해 보세요
- API에 Semantic Versioning을 적용하세요
- 팀에 적합한 패턴을 선택하는 방법
- 모바일 및 크로스 플랫폼 앱을 위한 버전 관리 실무
- 클라이언트를 깨뜨리지 않고 버전을 종료하는 방법
- 이전 버전의 변경 사항을 빠르게 잡아내는 테스트 및 모니터링
- API 버전 관리 체크리스트 및 다음 단계
API가 버전 관리 전략을 필요로 하는 이유
나는 세 가지 각도에서 이 실패를 보았다. 백엔드 팀은 스테이징에서 불만을 제기하지 않은 응답 필드를 제거했다. 모바일 릴리스는 이미 앱 스토어에 출시되어 빠르게 강제로 업데이트할 수 없었다. 기업 고객들은 PROCUREMENT 주기보다 릴리스 트레인보다 느린 속도로 PROCUREMENT 주기 동안 이전에 사용하던 엔드포인트를 계속 호출했다.
그것이 버전 관리가 예방해야 하는 것이다. 그것은 __CAPGO_KEEP_0__ 소유자와 모든 계약에 의존하는 클라이언트 간의 호환성 약속이다. URL이 정돈된 것만으로는 충분하지 않다. 그것은 팀이 변경할 수 있는 것과 안정해야 하는 것을 명확하게 하기 위해 규칙을 명시적으로 정의하는 것이다. 버전 관리가 __CAPGO_KEEP_0__ 표면의 나머지 계약 규칙과 같은 계약 규칙의 일부에 속한다면, __CAPGO_KEEP_0__ 문서화에 대한 유용한 개요를 얻고 싶다면, 그것이 도움이 된다. 실용적인 규칙: 클라이언트가 일정에 따라 업데이트할 수 없다면, API에는 명시적인 호환성 정책이 필요하다. URL이 절대 변경되지 않는 경우에도. 버전 관리는 API 소유자와 모든 계약에 의존하는 클라이언트 간의 호환성 약속이다.API 문서화에 대한 개요
버전 관리는 __CAPGO_KEEP_0__ 표면의 나머지 계약 규칙과 같은 계약 규칙의 일부이다. 버전 관리는 API 소유자와 모든 계약에 의존하는 클라이언트 간의 호환성 약속이다.
선택은 매트릭스, slogannya 아니다. 팀 크기는 중요하다. 작은 그룹은 수동으로 변경을 조율할 수 있지만, 더 큰 조직은 수동 전달을 견딜 수 있는 규칙이 필요하다. 클라이언트 제어는 중요하다. 웹 클라이언트는 빠르게 갱신할 수 있지만, 모바일 클라이언트는 그렇지 못하다. 릴리스 주기는 중요하다. 자주 릴리스하는 팀은 오류를 더 빨리 폐기할 수 있지만, 승인과 저장소 검토를 기다리는 팀은 그렇지 못하다.
내부 소비자만 제공하는 백엔드 팀은 종종 오랜 시간 동안 버전 관리를 가볍게 유지할 수 있다. 세 번째-party 통합자와 함께하는 공개 API는 훨씬 더 명확한 경계가 필요하다. 오프라인 동작 또는 느린 채택을 하는 모바일 앱은 가장 엄격한 계획이 필요하다. 왜냐하면 한 번 잘못된 클라이언트 버전이 세상에 나면 사용자가 업데이트할 때까지 그것을 살아야 하기 때문이다.
실패 모드는 예측 가능하다. 침묵적인 브레이크는 명백한 하나지만, 앱 스토어 문제는 일반적으로 더 나쁘다. 왜냐하면 스토어는 이미 이전 버전을 사용 중인 사용자를 구원하기 위해 패치를 빨리 수용하지 않기 때문이다. 장기적인尾은 승인에 의존하는 엔터프라이즈 클라이언트가 오래된 엔드포인트를 계속 사용하는 경우이다.
좋은 전략은 브레이크가 발생하기 전에 질문을 해결한다. 어떤 변경이 새로운 주요 버전을 요구하는가. 어떤 클라이언트가 먼저 경고를 받는가. 오래된 버전이 살아남는 기간은 얼마인지. 이러한 결정은 모바일 앱에 더 중요하다. 왜냐하면 사용자는 웹 페이지와 같이 빠르게 갱신하지 않기 때문이다. 또한 크로스 플랫폼 앱 소유자와 같은 팀은 도구와 함께 릴리스 계획을 만들 때 이러한 결정이 더 중요하다. Capgo의 Capacitor과 Appflow 버전 차이 비교.
버전을 관리하지 않는다면, 정책을 선택하고 있지만, 그 정책을 모든 사람이 살아가야 하는 사람들에게 숨기고 있는 것입니다.
버전 관리 패턴 4 가지 비교
4 가지 일반적인 패턴은 동일한 문제를 다른 장소에서 해결합니다. URI 버전 관리는 경로에 버전을 넣습니다. 헤더 버전 관리는 요청 메타데이터로 버전을 옮깁니다. 쿼리 매개 변수 버전 관리는 기본 경로를 안정화하고 매개 변수를 추가합니다. 미디어 타입 버전 관리는 콘텐츠 협상 사용합니다. 올바른 선택은 팀이 투명성, 캐시 동작, 또는 장기적인 URL 청결성을 가치 있다고 여부에 따라 달라집니다.
URI 버전 관리
/v1/users 로그, 브라우저 추적, 지원 티켓에서 가장 쉽게 읽을 수 있는 패턴입니다. 신입 개발자가 버전을 즉시 식별하고, 지원 데스크_AGENT가 고객에게 정확한 URL을 요청할 수 있습니다. 이러한 투명성은 여전히 일반적인 기본값으로 남아 있습니다.
버전 관리의 단점은 명확합니다. 버전은 모든 경로에 유출되고, 경로가 오래된 릴리스의 묘지로 변할 수 있습니다. 버전 관리가 간단하지만, 간단함은 팀이 v1을 오래 유지하는 것을 유혹할 수 있습니다.
헤더 버전 관리
요청 형식은 URL을 깨끗하게 유지하고, 여러 계약 버전이 동일한 리소스 경로를 공유할 수 있습니다. 이는 동일한 엔드포인트가 여러 소비자에게 서비스를 제공해야 할 때 경로 구조를 지저분하게 하지 않습니다. 또한 이미 형식 협상이 사용되는 API와도 잘 어울립니다. Accept: application/vnd.example.v2+json __CAPGO_KEEP_0__’s comparison of __CAPGO_KEEP_1__ and Appflow versioning differences
운영상의 마찰은 단점입니다. 버전 관리는 디버깅 중에 더 어려울 수 있고, 캐시 또는 프록시를 구성할 때 응답을 혼합하지 않도록 주의해야 합니다. CDNs 또는 에지 레이어를 통해 라우팅하는 팀에게는 이 추가적인 discipline이 중요합니다.
쿼리 매개 변수 버전 관리
/users?version=2 파트너 API가 빠른 마이그레이션 경로가 필요할 때 쉽게 추가하고 사용할 수 있습니다. 경로 자체가 안정적이지만 계약이 가볍고 선택자로 사용할 수 있는 경우 유용합니다. 브라우저와 대부분의 클라이언트 라이브러리들은 쿼리 문자열을 많은 절차 없이 이해합니다.
캐싱 복잡성의 단점은 중간 시스템이 쿼리 기반 변화를 잘못 처리할 수 있고, API 게이트웨이는 일반적으로 이에 맞게 커스텀 로직이 필요합니다. 따라서 처음에는 더 강력해 보이지만 실제로는 더 취약합니다.
미디어 타입 버전 관리
미디어 타입 버전 관리는 Accept 헤더를 사용하여 특정 표현을 요청하여 리소스 URL이 안정적이고 더 세분화된 콘텐츠 협상이 지원됩니다. 이는 리소스 식별성과 계약 형태를 분리하고 싶은 성숙한 API에 유용합니다. 이 기술은 헤더 버전 관리의 근친족입니다. 협상 스토리도 더 명확합니다.
비용은 수용의 마찰입니다. 더 많은 팀이 경로 또는 미디어 타입을 읽거나 디버깅하는 것을 편안하게 생각하지 않기 때문입니다.established한 후에는 깨끗하지만 API에 접근하는 모든 팀이 discipline을 유지해야 합니다.
| 패턴 | 가시성 | 캐싱 | 최적 |
|---|---|---|---|
| URI 버전 관리 | 높음 | 직관적 | 작은 팀, 디버깅, 빠른 온보딩 |
| 헤더 버전 관리 | URL에서 낮고 code에서 높음 | 주의 깊게 설정해야 함 | 공개 API, 안정적인 리소스 경로 |
| 쿼리 매개 변수 버전 관리 | 중간 | 매우 까다로움 | 파트너 API, 빠른 마이그레이션 |
| API 버전 관리 전략 | URL에서 낮고, 헤더에서 중간 | 협상에 대한 캐시가 필요하다 | 성숙한 API, 세세한 계약 제어 |
내부 메커니즘은 다르지만, 트레이드 오프 패턴은 안정적이다. URI 버전 관리는 단순성과 디버그 가능성에서 우수하다, 하지만 헤더 및 미디어 타입 버전 관리는 깨끗한 URL 및 더 세세한 협상에서 우수하다. 관련 제품 analogy에 대해, Capacitor 버전 관리 차이점 안내서 은 навіть 근접 릴리스 시스템이 명확성과 라우팅 복잡성을 균형을 맞추는 것을 보여준다.
API에 Semantic Versioning을 적용한다
SemVer 레이블은 팀이 계약 위반으로 간주하는 것을 결정하는 데만 도움이 됩니다. MAJOR 계약 위반을 포함하는 변경 사항을 다룹니다. MINOR 뒤로 호환되는 추가 기능을 다룹니다. PATCH 계약을 변경하지 않는 버그 수정을 다룹니다. 그 규칙은 유용합니다. 소비자는 미니어처 및 패치 업데이트를 흡수하는 데 더 적은 조정을 필요로 하므로, 메이저 업데이트는 소비자가 code 변경을 계획해야 한다는 것을 알려줍니다.
클라이언트가 실제로 깨지게 하는 것
응답 필드를 제거하는 것은 클라이언트가 읽는 경우 깨지게 됩니다. 속성을 이름을 바꾸는 것은 같은 이유로 깨지게 됩니다. 값의 의미를 변경하는 것도 깨지게 됩니다. JSON 형태가 동일한 경우에도.
선택적 필드를 추가하는 것은 추가적입니다. 새로운 엔드포인트를 추가하는 것도 추가적입니다. 설명에 있는 오타를 고치는 것은 패치입니다. 왜냐하면 그것은 통신을 변경하지 않기 때문입니다. 행동을 변경하지 않기 때문입니다. 그 이유로 SemVer는 API에만 사용되는 것이 아닙니다. 라이브러리에도 사용됩니다.
실질적으로, 나는 소비자가 code을 편집해야 하는 변경 사항이 메이저인지 아닌지까지 모든 변경 사항을 메이저로 간주합니다. 그 변경 사항이 메이저인지 아닌지까지.
The empirical study above found that among APIs using the version field, semantic versioning accounted for a large share of releases. That does not mean every API should use it everywhere, but it does show that SemVer is a common mental model in public API histories. In practice, the rest of the field tends to use calendar labels, mixed conventions, or no explicit discipline at all.
__CAPGO_KEEP_0__ 계약 버전을, 단지 엔드포인트 버전을 관리하는 것보다 중요합니다.
대규모 버전이 일반적으로 마이그레이션 노트와 호환성 윈도우와 함께 배포되어야 합니다. 이는 비밀, 인증, 또는 요청 서명이 포함된 경우 더 중요합니다. 왜냐하면 버전 변경은 팀이 보호해야 하는 표면을 변경할 수 있기 때문입니다. Webtwizz API 키 보안 가이드 버전 업데이트가 클라이언트 인증 또는 자격 증명 회전 방법을 변경하는 경우 유용한 동반자입니다.
버전 번호가 의미를 전달한다면 팀이 이를 사용하여 동작을 시그널링한다면만 도움이 됩니다. __CAPGO_KEEP_0__ semantic versioning guide는 이러한 운영 관점을 취하고 있습니다. 이는 __CAPGO_KEEP_0__ 릴리스에도 올바른 직감입니다. SemVer는 릴리스 규칙이 아닌 브랜딩 선택이 아닙니다. Capgo semantic versioning guide takes that operational view, which is the right instinct for API releases too. SemVer becomes a release rule, not a branding choice.
__CAPGO_KEEP_0__ 팀에 적합한 패턴을 선택하는 방법
결정은 단일 축을 고려할 때보다 명확해집니다.
팀 크기
__CAPGO_KEEP_0__ 계약 버전을, 단지 엔드포인트 버전을 관리하는 것보다 중요합니다. 대규모 버전이 일반적으로 마이그레이션 노트와 호환성 윈도우와 함께 배포되어야 합니다. 이는 비밀, 인증, 또는 요청 서명이 포함된 경우 더 중요합니다. 왜냐하면 버전 변경은 팀이 보호해야 하는 표면을 변경할 수 있기 때문입니다. The, 고객 관리, 그리고 릴리스 주기 의식보다 버전 선택을 더 많이 형성한다. 작은 스타트업이 주간 릴리스를 하는 것과 금융 기술 플랫폼이 외부 통합자에게 PROCUREMENT 일정에 따라 업데이트하는 것은 같은 문제가 아니다.

작은 팀이 빠르게 배포하는 경우
두 명의 스타트업이 주간 릴리스를 하는 경우에는 URI 버전 관리와 SemVer를 사용하는 것이 좋다. . 이의 이유는 순수함이 아니라 압박하에 속도이다. 로그는 읽을 수 있고, 라우팅은 명확하고, 새로운 직원에게 계약을 설명할 수 있는 팀은 긴 온보딩 의식이 필요하지 않다.URL의 버전 관리가 필요하다. 한번
가 공개되면 버전을 계속 쌓고 청소하지 않으려는 유혹이 있다. 작은 팀은 초기에 강력한 버전 관리 정책을 필요로 하거나, '간단한' 패턴이 버전 관리의 스파우를 만들어 버린다. v1 클라이언트 관리가 약한 대규모 공개 API
large public APIs with weak client control
API 버전 관리 전략 header 버전 관리 또는 API 버전 관리미디어 타입 버전 관리
. 이 방법은 한 리소스 경로를 안정적으로 유지하면서 여러 계약을 뒤에 있는 것처럼 동작합니다. 여러 계약이 뒤에 있는 것처럼 동작하는 동안 한 리소스 경로를 안정적으로 유지합니다. 클라이언트가 즉시 업데이트하거나 단일 전환 날짜를 협조할 수 없는 경우에 이 방법이 더 적합합니다.
운영 비용은 discipline입니다. 캐시, 프록시, 지원 도구 모두 요청이 어떤 버전을 요청했는지 이해해야 합니다. 이 세그먼트에서 추가 플러밍이 가치가 있는 이유는 클라이언트가 오래되고 조정하기 어려우기 때문입니다.
대행사 및 마감 기한에 의한 클라이언트 작업 대행사에서 클라이언트의 앱을 배포하는 경우 URI 버전 관리
클라이언트가 URL에 버전을 볼 수 있고, 앱이 이미 프로덕션에 있는 경우 지원 질문이 더 쉽게 답변될 수 있기 때문에 가장 명확한 옵션입니다. 유지보수에 명확성이 중요하지 않으면서도 협상이 필요한 프로젝트에 적합합니다.
이 방법의 희생은 예술입니다. 깨끗한 URL이 예술보다 예측 가능한 배포가 중요합니다. 다른 사람의 지원 부담을 물려받을 때 깨끗한 URL이 중요하지 않습니다.
그 그래픽의 라인과 일치하는 결정 tree는 그 규칙과 일치합니다. 작은 내부 팀은 경로 기반의 단순성에 tolerate할 수 있습니다. 파트너 API는 더 많은 유연성을 필요로합니다. 대형 공개 API는 릴리즈 캘린더와 클라이언트 다양성으로 인해 경로 기반 버전 관리가 너무 무겁기 때문에 헤더 기반의 제어가 유용합니다.
모바일 및 크로스 플랫폼 앱의 버전 관리
모바일 클라이언트는 밤새 업데이트를 강제할 수 없기 때문에 규칙을 바꿉니다. 아이폰 사용자는 몇 달 동안 이전 버전을 사용할 수 있고, 사이드 로드 된 안드로이드 앱은 더 오래 살아남을 수 있습니다. 따라서 버전 관리는 더 이상 예술적인 문제가 아니라 이전 버전과 새로운 버전의 code 경로를 동시에 유지하는 문제가 됩니다.
스타트업이 Capacitor 앱을 배포하는 경우
스타트업이 CapacitorJS 앱을 배포하고 Capgo 라이브 업데이트를 사용하여 사용자 코호트에 자바스크립트修정을 푸시합니다. 앱은 배포 업데이트 후 새로운 API field가 필요하지만, 모든 장치가 새로운 code를 같은 날에 받을 수 없습니다. 가장 안전한 방법은 앱이 이전 버전과 새로운 서버 동작을 부드럽게 감지하면서 API이 이전 계약을 배포 중인 동안 유지하는 것입니다.
이것이 중요합니다. 라이브 업데이트만은 백엔드 계약을 변경하지 않습니다. 그들은 code와 배포 간의 지연을 줄이기 위해 사용됩니다. Capgo 버전 관리 워크플로 가이드 배포를 제어된 호환성 문제로 대체하는 대신, 모든 것을 대체하는 단순한 이벤트로 다루는 대신 배포를 다루는 __CAPGO_KEEP_0__ 버전 관리 워크플로 가이드가 여기에서 잘 맞습니다.
규제된 기업에 장기적으로 유지되는 field 장치가 있는 경우
건강 관리 팀이 구형 태블릿을 지원하는 필드 직원에게는 다른 제약 조건이 있습니다. 앱이 새로운 빌드가 출시된 후에도 오래 사용될 수 있으며, API은 짧은 업그레이드 기간을 가정할 수 없습니다. 안전한 패턴은 v1을 유지하고, 클라이언트 버전별로 라우팅하고, 사용량을 측정하여 팀이 해산일이 현실적인지 알 수 있도록 합니다.
문서도 엔지니어 팀과 사용자가 현장에서 문제를 진단하는 데 사용할 수 있어야 합니다. API 엔드포인트에 대한 실용적인 __CAPGO_KEEP_0__ 엔드포인트에 대한 실용적인
같은 버전 관리 전략은 두 가지 경우 모두 다른 방식으로 작동합니다. 클라이언트가 다르게 행동하기 때문입니다. 한 경우 업데이트 채널은 제어하실 수 있습니다. 다른 경우는 아닙니다. 따라서 모바일 팀은 웹 팀이 기대하는 것보다 더 엄격한 계약 관점이 필요합니다.
버전 관리의 가장 어려운 부분은 새로운 버전을 만들기보다 오래된 버전을 끄는 것입니다. 사용자들이 여전히 사용하는 것을 놀라지 않도록 하기 위해서입니다. 올바르게 처리하는 팀은 해제를 운영 프로세스로 다루며, 단 한번의 발표로 다루지 않습니다.
해제를 명확하게 하세요
응답에 해제 신호를 사용하고, 실제 해산 일자를 뒷받침하세요. 유용한 헤더는
해제 해산, , 그리고 , and a 링크 이동 가이드로 이동하세요. 그곳에서 클라이언트에게 현재 버전이 여전히 살아남고 있지만, 시간이 흐르면 버전이 더 이상 지원되지 않음을 알려줍니다.
해당 버전이 더 이상 지원되지 않기를 원하는 날짜는 사용량에 따라 결정되어야 합니다. 대중 API는 기업 제품보다 짧은 기간 동안 지원해야 합니다. 이는 소비자 혼합물이 더 불안정하기 때문입니다. 대형 고객에게는 일반적으로 더 긴 병렬 실행이 보다 안전합니다. 이는 마이그레이션에 더 많은 사람들이 관여하고 더 많은 테스트가 필요하기 때문입니다.
두 버전을 병렬로 실행하세요
병렬 지원은 비용이 많이 들지만, 지원 인상보다 저렴합니다. 2025년 API 보고서에 대한 2026년 엔지니어링 분석에 따르면 60% API 버전을 관리하는 팀은 많지만, 26% Semantic 버전을 사용하는 팀은 적고, 17% 계약 테스트만 수행하는 팀은 분석분석
마이그레이션을 담당하는 사람을 지정하세요. 많은 사람들이 도움을 주더라도, 한 명의 사람만이 이 역할을 맡아야 합니다. 이 사람만이 사용량을 추적하고, 클라이언트와의 통신을 책임지고, 해제 시계의 날짜를 결정할 수 있습니다. 이 역할이 없으면, 이전 버전이 지속적으로 지원되기 때문입니다.
The API 버전 관리 이주 지침 실제로 mainstream 조언의 약점을 지적합니다. 대부분의 출처는 “여러 버전을 지원하라”고 “이른 발표”를 하지만, 소유주가 누구인지 또는 해산 정책이 강제되는 방법을 설명하는 출처는 적습니다. 이 약점은 실제로 긴 꼬리 클라이언트가 갇히는 곳입니다.
파괴적인 변경을 일찍 잡는 테스트 및 모니터링
버전 관리 정책이 테스트되지 않은 것은願望 목록입니다. 만약 API 계약이 CI에서 변경될 수 있다면, 버전 번호는 당신을 구원하지 못합니다. 팀은 클라이언트가 파괴되기 전에 파괴를 잡는 루프가 필요합니다.
계약을 pipe라인에 넣어라
계약 테스트는 CI에서 속해야 하며, 계약이 더 이상 발행된 스키마 또는 예상되는 상호 작용과 일치하지 않으면 실패해야 합니다. Pact, Spectral, Postman 계약 테스트와 같은 도구는 계약이 실행 가능하도록 만듭니다. 디자인 pipe라인에서 스키마 diffing은 두 번째 경계로, merge하기 전에 명백한 파괴적인 편집을 막습니다.
제작 모니터링은 세 번째 경계입니다. 버전, 엔드포인트, 클라이언트에 따라 사용량을 추적하여 v1에 아직 남아있는 클라이언트가 있는지, 오류율이 왜곡되는지 알 수 있습니다. 이것이 해산이 안전한지 결정하는 유일한 신뢰할 수 있는 방법입니다.
유용한 패턴: 디자인 시간 스키마 확인, CI 계약 테스트, 제작 버전 메트릭스, 그리고 출시 후 오류 프로파일이 변경되면 롤백
The 자동화된 테스트 가이드 이것은 API 롤아웃 안전성에 관련된 이유입니다. 모바일 릴리스 안전성과 같은 discipline를 사용하여 API 롤아웃 안전성을 적용하고자 합니다. staged 노출, observable 행동, 그리고 misbehave 한 계층에 대한 빠른 롤백 경로가 필요합니다. 이것은 JS 번들 또는 계약 변경을 shipping하는 경우 모두 적용됩니다.

이러한 요소가 함께 작동할 때, 버전 관리가 반응적이지 않습니다. API 팀은 breakage를 일찍 발견하고, 지원 팀은 증거를 가지고 있으며, 고객은 더 적은 surprise를 받습니다.
API 버전 관리 체크리스트 및 다음 단계
이것을 실제로 만들기 위한 가장 빠른 방법은 정책을 작성하고 팀에게 이를 사용하도록 강제하는 것입니다. 버전 관리 전략은 릴리스 프로세스의 동일한 장소에 존재해야 usefulness를 가집니다. alguien의 머릿속에 존재하는 것이 아닙니다.

체크리스트 복사
- 스타일 가이드에 하나의 패턴을 작성하세요. 팀이 URI, 헤더, 쿼리, 미디어 타입 버전 관리를 선택한 경우, 향후 릴리스에서 임의로 하지 않도록 문서화하세요.
- breaking 변경을 한 문장으로 정의하세요. 제거, 이름 변경, 클라이언트 편집을 강요하는 행동 변경을 포함하세요.
- CI에 계약 테스트를 추가하세요. implementation과 contract이 다르면 pipeline이 실패하도록 하세요.
- 해당 버전이 더 이상 지원되지 않음을 알리기 위한 deprecation 및 sunset 헤더를 공개하세요. 클라이언트는 blog 포스트만으로는 충분하지 않습니다. 기계가 읽을 수 있는 경고 신호가 필요합니다.
- 버전별 사용량을 추적하세요. 기존 엔드포인트에 접근하는 사용자를 볼 수 없다면, 그 엔드포인트를 안전하게 폐지할 수 없습니다.
- 다음 마이그레이션에 대한 책임을 한 명에게 할당하세요. 책임을 할당하면 '누군가가 이 문제를 처리해야 한다'는 문제를 해결할 수 있습니다.
- forced-deprecation 테이블 토크를 진행하세요. v1 shutdown 시뮬레이션을 진행하여 클라이언트, 경고, 대시보드가 먼저 실패하는지 확인하세요.
팀이 이미 모바일 배포에 대한 릴리즈 코호트를 사용한다면, 동일한 discipline이 여기에도 적용됩니다. 릴리즈 관리 프로세스 가이드는 __CAPGO_KEEP_0__ 마이그레이션에도 동일한 접근 방식을 제공합니다. 릴리즈 관리 프로세스 가이드 릴리즈 관리 프로세스 가이드는 rollout control을 유지하는 방법을 보여주며, 이 접근 방식은 API 마이그레이션에도 동일하게 적용됩니다.
버전 관리는 변화가 불가능하도록 만드는 것이 아니라, 변화가 살아남을 수 있도록 만드는 것입니다. 정책을 정의하고, 테스트하고, 모니터링하고, 클라이언트에게 앞으로의 경로를 제공하여 이전 경로가 닫히기 전에.
Capgo은 모바일 팀이 클라이언트 측에서 동일한 릴리스 제어를 제공하는 것과 백엔드에서 강력한 API 버전 관리 전략이 제공하는 것과 같습니다. Capacitor 또는 Electron 앱을 배포하는 경우 Capgo 클라이언트 측에서 동일한 릴리스 제어를 제공하는 것과 백엔드에서 강력한 __CAPGO_KEEP_1__ 버전 관리 전략이 제공하는 것과 같습니다. __CAPGO_KEEP_2__ 또는 Electron 앱을 배포하는 경우