Skip to content

Latest commit

 

History

History
210 lines (160 loc) · 4.57 KB

File metadata and controls

210 lines (160 loc) · 4.57 KB

📦 버전 관리 가이드

🎯 버전 형식

Semantic Versioning (SemVer) 사용: MAJOR.MINOR.PATCH

1.0.0
│ │ │
│ │ └─ Patch: 버그 수정, 작은 개선
│ └─── Minor: 새 기능 추가 (하위 호환)
└───── Major: 큰 변경, 하위 호환성 깨짐

📊 버전 업데이트 기준

🔴 MAJOR (X.0.0) - 큰 변경사항

버전을 올려야 하는 경우:

  • API 구조가 완전히 바뀜
  • 데이터 형식이 변경되어 이전 버전과 호환 안 됨
  • 주요 기능이 제거됨
  • 사용자 경험이 크게 바뀜 (UI/UX 대폭 변경)

예시:

1.0.0 → 2.0.0
- 설문 생성 방식이 완전히 바뀜
- 저장된 데이터 형식이 변경됨
- 주요 기능이 제거됨

🟡 MINOR (0.X.0) - 새 기능 추가

버전을 올려야 하는 경우:

  • 새로운 기능 추가 (하위 호환)
  • 새로운 질문 타입 추가
  • 새로운 설정 옵션 추가
  • 성능 개선 (기능 추가 없이)

예시:

1.0.0 → 1.1.0
- 객관식 질문 타입 추가
- 설문 미리보기 기능 추가
- 다국어 지원 추가
- 성능 최적화

🟢 PATCH (0.0.X) - 버그 수정

버전을 올려야 하는 경우:

  • 버그 수정
  • UI 텍스트 수정
  • 스타일링 개선 (기능 변경 없음)
  • 타입 오류 수정
  • 접근성 개선

예시:

1.0.0 → 1.0.1
- 버튼 클릭 안 되는 버그 수정
- 오타 수정
- 색상 대비 개선
- 타입 에러 수정

🚀 버전 업데이트 프로세스

1️⃣ 변경사항 확인

# 변경된 파일 확인
git status
git diff

2️⃣ 버전 결정

  • Major? → 큰 변경사항 있나?
  • Minor? → 새 기능 추가했나?
  • Patch? → 버그만 수정했나?

3️⃣ package.json 수정

{
  "version": "1.0.1"  // 적절한 버전으로 변경
}

4️⃣ 커밋 & 푸시

git add package.json
git commit -m "chore: bump version to 1.0.1"
git push origin main

5️⃣ 자동 Release 생성

  • CI가 자동으로 Release 생성
  • GitHub Releases에서 확인

📋 실제 사용 예시

시나리오 1: 버그 수정

현재: 1.0.0
변경: 버튼 색상 오류 수정
결과: 1.0.0 → 1.0.1 ✅

시나리오 2: 새 기능 추가

현재: 1.0.1
변경: 주관식 질문 타입 추가
결과: 1.0.1 → 1.1.0 ✅

시나리오 3: 큰 변경

현재: 1.1.0
변경: 설문 저장 형식 완전히 변경
결과: 1.1.0 → 2.0.0 ✅

시나리오 4: 여러 변경

현재: 1.0.0
변경: 
  - 새 기능 추가 (객관식)
  - 버그 수정 (버튼 클릭)
결과: 1.0.0 → 1.1.0 ✅ (Minor가 우선)

⚠️ 주의사항

❌ 하지 말아야 할 것

  • 같은 버전으로 여러 번 Release (버전 충돌)
  • 버전을 낮추기 (1.0.1 → 1.0.0)
  • 버전 건너뛰기 (1.0.0 → 1.2.0, 1.1.0 건너뛰기)

✅ 권장사항

  • 작은 변경도 버전 올리기 (1.0.0 → 1.0.1)
  • 커밋 메시지에 버전 명시 (chore: bump version to 1.0.1)
  • 릴리즈 노트 작성 (선택사항, CI가 자동 생성)

🎯 버전 관리 체크리스트

Release 전에 확인:

  • 변경사항이 Major인가? → X.0.0
  • 변경사항이 Minor인가? → 0.X.0
  • 변경사항이 Patch인가? → 0.0.X
  • package.json 버전 업데이트
  • 커밋 메시지에 버전 명시
  • main 브랜치에 머지
  • GitHub Releases 확인

📈 버전 히스토리 예시

v2.0.0  (2025-01-22) - 설문 저장 형식 변경
v1.2.0  (2025-01-20) - 주관식 질문 타입 추가
v1.1.1  (2025-01-19) - 버그 수정
v1.1.0  (2025-01-18) - 객관식 질문 타입 추가
v1.0.2  (2025-01-17) - UI 개선
v1.0.1  (2025-01-16) - 버그 수정
v1.0.0  (2025-01-15) - 첫 정식 릴리즈

💡 팁

빠른 판단 기준

  1. "이전 버전과 호환 안 되나?" → Major
  2. "새 기능 추가했나?" → Minor
  3. "버그만 수정했나?" → Patch

버전 관리 도구 (선택사항)

  • npm version patch - Patch 버전 자동 증가
  • npm version minor - Minor 버전 자동 증가
  • npm version major - Major 버전 자동 증가

하지만 수동으로 package.json 수정하는 것도 충분히 좋습니다!


🎉 요약

간단하게:

  • 🐛 버그 수정 → Patch (1.0.0 → 1.0.1)
  • 새 기능 → Minor (1.0.0 → 1.1.0)
  • 🔥 큰 변경 → Major (1.0.0 → 2.0.0)

현재 버전: 1.0.0