API 버전 관리
Multi-SaaS Kit API의 버전 관리 전략입니다.
개요
| 항목 | 설명 |
|---|---|
| 버전 관리 방식 | URL 경로 (/api/v1/...) |
| 현재 버전 | v1 |
| 지원 기간 | 최소 24개월 |
버전 관리 방식
URL 경로 방식
모든 API 엔드포인트는 URL에 버전을 포함합니다:
GET /api/v1/users
GET /api/v1/tenants
GET /api/v2/users (향후)
왜 URL 방식인가?
| 방식 | 장점 | 단점 |
|---|---|---|
| URL 경로 | 명확함, 캐싱 용이, 디버깅 쉬움 | URL 길어짐 |
| Header | URL 깔끔 | 디버깅 어려움, 캐싱 복잡 |
| Query Parameter | 유연함 | 표준 아님, 실수 가능 |
버전 생명주기
┌─────────────────────────────────────────────────────────┐
│ Current (현재) │
│ - 모든 신규 기능 추가 │
│ - 버그 수정 및 보안 패치 │
│ - 기간: 새 버전 출시까지 │
└────────────────────────┬────────────────────────────────┘
│ 새 버전 출시
▼
┌─────────────────────────────────────────────────────────┐
│ Maintained (유지보수) │
│ - 신규 기능 없음 │
│ - 버그 수정 및 보안 패치만 │
│ - 기간: 12개월 │
└────────────────────────┬────────────────────────────────┘
│ 12개월 후
▼
┌─────────────────────────────────────────────────────────┐
│ Deprecated (지원 중단 예정) │
│ - 보안 패치만 │
│ - 마이그레이션 경고 헤더 추가 │
│ - 기간: 6개월 │
└────────────────────────┬────────────────────────────────┘
│ 6개월 후
▼
┌─────────────────────────────────────────────────────────┐
│ End of Life (지원 종료) │
│ - 410 Gone 응답 반환 │
│ - 문서에서 제거 │
└─────────────────────────────────────────────────────────┘
현재 버전 상태
| 버전 | 상태 | 출시일 | 지원 종료 |
|---|---|---|---|
| v1 | Current | 2024-01 | - |
| v2 | 계획 중 | 미정 | - |
버전별 변경 사항
v1 (현재)
핵심 기능:
- 인증 API (Sanctum 기반)
- 사용자 CRUD
- 테넌트 CRUD
- 권한 시스템 (Level 0~6, ADR-058)
- 웹훅 시스템
v2 (계획)
예정 변경 사항:
- GraphQL 지원 (선택)
- Batch 요청 지원
- 실시간 구독 (WebSocket)
버전 확인
응답 헤더
모든 API 응답에 버전 정보가 포함됩니다:
HTTP/1.1 200 OK
X-API-Version: v1
X-API-Deprecated: false
Deprecated 버전 응답
지원 중단 예정 버전 사용 시:
HTTP/1.1 200 OK
X-API-Version: v1
X-API-Deprecated: true
X-API-Sunset-Date: 2026-06-01
X-API-Deprecation-Notice: This API version will be deprecated. Please migrate to v2.
마이그레이션 가이드
v1 → v2 마이그레이션 (예정)
버전 업그레이드 시 변경 사항:
# 엔드포인트 변경
- GET /api/v1/users
+ GET /api/v2/users
# 응답 형식 변경 (예시)
{
"success": true,
- "data": { ... }
+ "result": { ... },
+ "meta": { "version": "v2" }
}
호환성 유지 기간
- 기존 API: 최소 18개월 동안 동작 보장
- 경고 기간: 6개월 전 Deprecation 공지
- 마이그레이션 도구: 변환 스크립트 제공 예정