smart_ims/docs/version_control/version manage.md

4.8 KiB
Raw Blame History

📘 SMART IMS 버전 관리 규정 (Versioning Rules)

SMART IMS 플랫폼의 모든 배포와 업데이트는 아래의 MAJOR.MINOR.PATCH.BUILD 4자리 버전 관리 체계를 엄격히 준수합니다.


1 MAJOR (첫 번째 자리)

대규모 변경, 하위 호환성 붕괴

  • 의미: 시스템의 근간이 바뀌거나 기존 데이터/연동 체계와의 호환성이 파괴될 때 증가합니다.
  • 상황: API 구조 전면 개편, 데이터베이스 아키텍처 변경, 통신 프로토콜 교체 등.
  • 규칙:
    • 절대 자주 올리지 않으며, "제품의 세대 교체" 수준에서만 사용합니다.
    • 사용자는 업데이트 전 반드시 호환성 여부를 검토해야 합니다.
  • 예시: 1.x.x.x2.0.0.0

2 MINOR (두 번째 자리)

기능 추가, 호환성 유지

  • 의미: 기존 시스템과 호환성을 유지하면서 새로운 기능이 추가되거나 UI가 대폭 개선될 때 증가합니다.
  • 상황: 신규 모듈 추가, 기존 기능 확장, 설정 옵션 대량 추가 등.
  • 규칙:
    • 기능 단위의 주요 배포 시 사용합니다.
    • 고객에게 "업데이트 권장" 수준의 변화를 의미합니다.
  • 예시: 1.2.x.x1.3.0.0

3 PATCH (세 번째 자리)

버그 수정, 품질 개선

  • 의미: 새로운 기능 추가 없이 기존 기능의 버그를 수정하거나 성능을 개선할 때 증가합니다.
  • 상황: 보안 패치, 성능 최적화, 로직 오류 수정 등.
  • 규칙:
    • 기능 추가는 엄격히 금지됩니다.
    • 긴급한 오류 수정 및 정기 유지보수 배포에 주로 사용됩니다.
  • 예시: 1.2.3.x1.2.4.0

4 BUILD / REVISION (네 번째 자리)

빌드 번호 또는 미세 변경

  • 의미: 사용자에게 기능적/시각적 변화를 거의 주지 않는 기술적 수정 시 증가합니다.
  • 상황:
    • 빌드 번호: CI/CD 파이프라인의 빌드 식별자.
    • 핫픽스: 오타 수정, 로그 문구 변경, 주석 업데이트 등.
  • 규칙:
    • 사용자에게 "버전 변경 체감"을 주지 않는 수준의 작업입니다.
    • 릴리스 노트(Changelog) 작성을 생략할 수 있습니다.
  • 예시: 1.2.3.45 (45번째 빌드)

💡 버전 비교 및 업데이트 공지 원칙

  1. 플랫폼은 원격 저장소의 최신 태그 버전과 현재 설치된 버전의 4자리를 순차적으로 비교합니다.
  2. 상위 자리수가 더 높을 경우 즉시 시스템 업데이트 안내를 발생시킵니다.
  3. 모든 버전은 v 접두사를 포함하여 관리하나, 비교 시에는 숫자로 정규화하여 처리합니다.

🚀 배포 및 태그 생성 절차 (Standard Deployment Procedure)

경고: 이 절차를 위반할 경우 운영 서버에서 업데이트가 누락되거나 버전 불일치가 발생할 수 있습니다.

[Step 1] 사전 검증 (Pre-check)

  1. 작업 내용 커밋 확인: git status 명령어로 커밋되지 않은(Unstaged/Modified) 파일이 없는지 확인합니다.

    • 실수 패턴: 코드를 수정하고 저장만 한 뒤, 커밋 없이 태그를 생성하면 구버전 코드가 배포됩니다.
  2. 버전 번호 동기화 (필수): 아래 2개 파일의 version 필드를 배포할 버전 번호(예: 0.4.3.5)로 직접 수정합니다.

    • root/package.json
    • root/server/package.json
    • 이 작업이 누락되면 시스템은 업데이트 후에도 "구버전"으로 인식합니다.

[Step 2] 커밋 및 태그 생성 (Commit & Tag)

반드시 소스코드 커밋을 먼저 수행하고, 그 커밋에 태그를 붙여야 합니다.

# 1. 버전 파일 및 변경 사항 커밋
git add .
git commit -m "[BUILD] v0.4.3.5 - 배포 내용 요약"

# 2. 원격 저장소로 코드 푸시 (먼저!)
git push origin main

# 3. 태그 생성 (경량 태그 권장)
git tag v0.4.3.5

# 4. 태그 푸시 (배포 트리거)
git push origin v0.4.3.5

[Step 3] 운영 서버 배포 확인

  1. 운영 서버(NAS)에서 업데이트 스크립트 실행
  2. 업데이트 완료 후 브라우저에서 '새로고침(Ctrl+F5)' 또는 캐시 비우기 수행
  3. [시스템 관리] > [버전 정보] 메뉴에서 표시되는 버전 번호빌드 일자가 최신인지 확인

🚫 절대 금지 사항 (Do Not)

  1. 커밋 없이 태그만 생성 금지: 운영 서버는 태그가 가리키는 시점의 코드를 가져옵니다. 변경 사항이 커밋되지 않았다면 아무것도 변하지 않습니다.
  2. package.json 수정 누락: 코드는 바꼈는데 명찰(버전 번호)을 안 바꾸면, 시스템은 "이미 최신 버전"이라 판단하고 업데이트 알림을 띄우지 않습니다.