smart_ims/docs/git 운영 규칙.md

4.9 KiB
Raw Blame History

🏷️ Git 운영 및 통합 업데이트 관리 규칙

이 문서는 Smart IMS 플랫폼의 Git 운영 정책, 태그 작성 규칙, 그리고 운영 서버 수동 업데이트 방법을 설명합니다.


1. 태그 메시지 작성 규칙 (Changelog 자동 생성)

플랫폼의 업데이트 엔진은 태그 메시지의 **머리말(Prefix)**과 **리스트 기호(-, *)**를 분석하여 관리 페이지의 업데이트 히스토리를 생성합니다.

📋 메시지 구조

[TYPE] 업데이트 제목 (한 줄 요약)
- 상세 변경 내용 1
- 상세 변경 내용 2
* 상세 변경 내용 3

🏷️ 업데이트 타입 (TYPE) 정의

키워드 업데이트 유형 시각적 표시 비고
[URGENT] 긴급/보안 빨간색 배너 최우선 업데이트 권장
[HOTFIX] 긴급 수정 빨간색 배너 버그 즉시 수정 건
[FEATURE] 기능 추가 남색(Indigo) 새로운 기능 도입
[FIX] 일반 수정 회색(Slate) 일반적인 버그 수정
[PATCH] 패치/보정 회색(Slate) 마이너 품질 개선

2. 개발 및 배포 절차 (개발 PC)

개발 작업 및 태그 생성은 아래 경로에서 진행합니다.

  • 작업 경로: d:\antigravity\smartims (윈도우 개발 환경 기반)

STEP 1: 코드 변경 사항 커밋 및 푸시

# [위치: d:\antigravity\smartims (루트)]
git add .
git commit -m "릴리즈 준비: v0.3.5 패치"
git push origin main

STEP 2: 어노테이티드 태그(Annotated Tag) 생성

# [위치: d:\antigravity\smartims (루트)]
git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치
- 원격 태그 동기화 로직 강화
- API 캐시 방지 타임스탬프 도입"

STEP 3: 원격 저장소에 태그 푸시

# [위치: d:\antigravity\smartims (루트)]
git push origin v0.3.5

3. 운영 서버 수동 업데이트 방법 (Production Server)

웹 UI 업데이트가 실패하거나 SSH를 통해 직접 서버에서 제어해야 할 경우 사용합니다.

  • 서비스 경로: /volume1/web/smartims (리눅스 운영 환경 기반)

STEP 1: 원격 정보 확인 및 체크아웃

# [위치: /volume1/web/smartims (루트)]

# 1. 원격 저장소의 최신 태그 목록 확인 (무엇이 최신인지 먼저 확인)
git ls-remote --tags origin

# 2. 태그 정보 강제 업데이트 (원격 저장소와 완벽 동기화)
git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags

# 3. 대상 버전으로 강제 체크아웃
git checkout -f v0.3.5

STEP 2: 프론트엔드 빌드 및 의존성 업데이트

# [위치: /volume1/web/smartims (루트)]
npm install
npm run build

STEP 3: 백엔드 반영 및 서비스 재시작

# [위치: /volume1/web/smartims/server]
cd server
npm install
pm2 reload smartims-api

4. 유용한 Git 명령어 레퍼런스

  • 태그 목록 확인: git tag -l (모든 환경의 루트 폴더)
  • 최신 태그 정보 확인: git describe --tags --abbrev=0
  • 원격 태그 강제 덮어쓰기 (메시지 수정 시):
    # [위치: 개발 PC 루트]
    git tag -a v0.3.5 -f -m "수정된 메시지..."
    git push origin v0.3.5 -f
    

5. 데이터 유지관리 및 백업 (Data Persistence)

플랫폼 운영 중 생성되는 데이터(업로드 이미지, 매뉴얼 등)는 소스 코드와 분리되어 관리됩니다.

<EFBFBD> 업로드 이미지 (server/uploads)

  • 주의: server/uploads/ 폴더의 내용은 Git 추적 대상이 아닙니다(.gitignore).
  • 현상: 개발 환경에서 등록한 자산 이미지는 운영 서버로 배포되지 않으므로, 운영 서버에서 직접 재등록해야 합니다.
  • 보존: 운영 서버를 재설치하거나 폴더를 삭제해야 할 경우, 반드시 server/uploads/ 폴더를 별도로 백업한 후 복구해야 기존 자산 이미지들이 유지됩니다.

🗄️ 데이터베이스 (MariaDB)

  • 모든 자산 정보와 설정값은 DB에 저장됩니다. 업데이트 전 반드시 DB 백업을 수행하세요.
  • 백업 예시: mysqldump -u [user] -p smartims > backup_date.sql

💡 최종 주의사항

  1. 실행 위치 확인: 특히 pm2 명령어나 server 관련 설정은 반드시 server 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다.
  2. 경로 이동 주의: cd server를 통해 폴더를 이동하여 작업을 마친 후에는 반드시 cd ..를 통해 다시 루트 폴더로 복귀하여 다음 작업에 혼선이 없도록 합니다.
  3. 권한 관리: 운영 서버에서는 반드시 서비스 실행 권한을 가진 계정으로 명령어를 실행해야 PM2 프로세스 관리에 문제가 생기지 않습니다.