smart_ims/docs/git 운영 규칙.md

108 lines
3.8 KiB
Markdown

# 🏷️ Git 운영 및 통합 업데이트 관리 규칙
이 문서는 Smart IMS 플랫폼의 **Git 운영 정책**, **태그 작성 규칙**, 그리고 **운영 서버 수동 업데이트 방법**을 설명합니다.
---
## 1. 태그 메시지 작성 규칙 (Changelog 자동 생성)
플랫폼의 업데이트 엔진은 태그 메시지의 **머리말(Prefix)**과 **리스트 기호(`-`, `*`)**를 분석하여 관리 페이지의 업데이트 히스토리를 생성합니다.
### 📋 메시지 구조
```text
[TYPE] 업데이트 제목 (한 줄 요약)
- 상세 변경 내용 1
- 상세 변경 내용 2
* 상세 변경 내용 3
```
### 🏷️ 업데이트 타입 (TYPE) 정의
| 키워드 | 업데이트 유형 | 시각적 표시 | 비고 |
|:--- |:--- |:--- |:--- |
| `[URGENT]` | **긴급/보안** | 빨간색 배너 | 최우선 업데이트 권장 |
| `[HOTFIX]` | **긴급 수정** | 빨간색 배너 | 버그 즉시 수정 건 |
| `[FEATURE]` | **기능 추가** | 남색(Indigo) | 새로운 기능 도입 |
| `[FIX]` | **일반 수정** | 회색(Slate) | 일반적인 버그 수정 |
| `[PATCH]` | **패치/보정** | 회색(Slate) | 마이너 품질 개선 |
---
## 2. 개발 및 배포 절차 (개발 PC)
개발 작업 및 태그 생성은 아래 경로에서 진행합니다.
* **작업 경로**: `d:\antigravity\smartims` (윈도우 개발 환경 기반)
### STEP 1: 코드 변경 사항 커밋 및 푸시
```powershell
# [위치: d:\antigravity\smartims (루트)]
git add .
git commit -m "릴리즈 준비: v0.3.5 패치"
git push origin main
```
### STEP 2: 어노테이티드 태그(Annotated Tag) 생성
```powershell
# [위치: d:\antigravity\smartims (루트)]
git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치
- 원격 태그 동기화 로직 강화
- API 캐시 방지 타임스탬프 도입"
```
### STEP 3: 원격 저장소에 태그 푸시
```powershell
# [위치: d:\antigravity\smartims (루트)]
git push origin v0.3.5
```
---
## 3. 운영 서버 수동 업데이트 방법 (Production Server)
웹 UI 업데이트가 실패하거나 SSH를 통해 직접 서버에서 제어해야 할 경우 사용합니다.
* **서비스 경로**: `/volume1/web/smartims` (리눅스 운영 환경 기반)
### STEP 1: 원격 정보 동기화 및 체크아웃
```bash
# [위치: /volume1/web/smartims (루트)]
# 1. 태그 정보 강제 업데이트 (원격 저장소와 완벽 동기화)
git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags
# 2. 대상 버전으로 강제 체크아웃
git checkout -f v0.3.5
```
### STEP 2: 프론트엔드 빌드 및 의존성 업데이트
```bash
# [위치: /volume1/web/smartims (루트)]
npm install
npm run build
```
### STEP 3: 백엔드 반영 및 서비스 재시작
```bash
# [위치: /volume1/web/smartims/server]
cd server
npm install
pm2 reload smartims-api
```
---
## 4. 유용한 Git 명령어 레퍼런스
* **태그 목록 확인**: `git tag -l` (모든 환경의 루트 폴더)
* **최신 태그 정보 확인**: `git describe --tags --abbrev=0`
* **원격 태그 강제 덮어쓰기 (메시지 수정 시)**:
```powershell
# [위치: 개발 PC 루트]
git tag -a v0.3.5 -f -m "수정된 메시지..."
git push origin v0.3.5 -f
```
---
## 💡 주의사항
1. **빌드 확인**: 운영 서버에서 수동 업데이트 시 `npm run build` 결과가 `Success`인지 반드시 확인하신 후 서버를 재시작하세요.
2. **경로 이동 주의**: `cd server`를 통해 폴더를 이동하여 작업을 마친 후에는 반드시 `cd ..`를 통해 다시 루트 폴더로 복귀하여 다음 작업에 혼선이 없도록 합니다.
3. **권한 관리**: 운영 서버에서는 반드시 서비스 실행 권한을 가진 계정으로 명령어를 실행해야 `PM2` 프로세스 관리에 문제가 생기지 않습니다.