문서 업데이트: 명령어 실행 위치(Root/Server) 명시 및 가이드 보강

This commit is contained in:
choibk 2026-01-24 23:47:10 +09:00
parent d6784807f2
commit c2e0a7804a

View File

@ -27,18 +27,21 @@
--- ---
## 2. 개발 및 배포 절차 (Local → Remote) ## 2. 개발 및 배포 절차 (개발 PC)
모든 명령어는 프로젝트의 **최상위 루트 폴더**(`smart_ims/`)에서 실행합니다.
### STEP 1: 코드 변경 사항 커밋 및 푸시 ### STEP 1: 코드 변경 사항 커밋 및 푸시
```powershell ```powershell
# [위치: 프로젝트 루트]
git add . git add .
git commit -m "릴리즈 준비: v0.3.5 패치" git commit -m "릴리즈 준비: v0.3.5 패치"
git push origin main git push origin main
``` ```
### STEP 2: 어노테이티드 태그(Annotated Tag) 생성 ### STEP 2: 어노테이티드 태그(Annotated Tag) 생성
시스템 엔진이 메시지를 읽으려면 반드시 `-a` 옵션을 사용해야 합니다.
```powershell ```powershell
# [위치: 프로젝트 루트]
git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치 git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치
- 원격 태그 동기화 로직 강화 - 원격 태그 동기화 로직 강화
- API 캐시 방지 타임스탬프 도입" - API 캐시 방지 타임스탬프 도입"
@ -46,6 +49,7 @@ git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치
### STEP 3: 원격 저장소에 태그 푸시 ### STEP 3: 원격 저장소에 태그 푸시
```powershell ```powershell
# [위치: 프로젝트 루트]
git push origin v0.3.5 git push origin v0.3.5
``` ```
@ -53,28 +57,28 @@ git push origin v0.3.5
## 3. 운영 서버 수동 업데이트 방법 (Manual Update) ## 3. 운영 서버 수동 업데이트 방법 (Manual Update)
웹 UI의 자동 업데이트가 불가능하거나 직접 서버에서 제어해야 할 경우 아래 명령어를 순서대로 실행합니다. 웹 UI 업데이트가 실패하거나 서버에서 직접 제어해야 할 경우 사용합니다.
### STEP 1: 최신 태그 정보 강제 동기화 ### STEP 1: 원격 정보 동기화 및 체크아웃
로컬 태그 캐시와 원격 저장소의 실제 태그를 일치시킵니다.
```powershell ```powershell
# [위치: 프로젝트 루트]
# 1. 태그 정보 강제 업데이트
git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags
```
### STEP 2: 대상 버전으로 체크아웃 # 2. 대상 버전으로 강제 체크아웃
```powershell
# 모든 변경사항을 무시하고 강제로 특정 태그 버전으로 전환
git checkout -f v0.3.5 git checkout -f v0.3.5
``` ```
### STEP 3: 의존성 설치 및 빌드 (Root 경로) ### STEP 2: 프론트엔드 빌드
```powershell ```powershell
# [위치: 프로젝트 루트]
npm install npm install
npm run build npm run build
``` ```
### STEP 4: 서버 모듈 의존성 설치 및 재시작 (Server 경로) ### STEP 3: 백엔드 반영 및 서비스 재시작
```powershell ```powershell
# [위치: 서버 폴더 (프로젝트루트/server)]
cd server cd server
npm install npm install
pm2 reload smartims-api pm2 reload smartims-api
@ -84,10 +88,11 @@ pm2 reload smartims-api
## 4. 유용한 Git 명령어 레퍼런스 ## 4. 유용한 Git 명령어 레퍼런스
* **태그 목록 확인**: `git tag -l` * **태그 목록 확인**: `git tag -l` (루트 실행)
* **최신 태그 정보 확인**: `git describe --tags --abbrev=0` * **최신 태그 정보 확인**: `git describe --tags --abbrev=0` (루트 실행)
* **원격 태그 강제 덮어쓰기 (수정 시)**: * **원격 태그 강제 덮어쓰기 (수정 시)**:
```powershell ```powershell
# [위치: 프로젝트 루트]
git tag -a v0.3.5 -f -m "수정된 메시지..." git tag -a v0.3.5 -f -m "수정된 메시지..."
git push origin v0.3.5 -f git push origin v0.3.5 -f
``` ```
@ -95,6 +100,6 @@ pm2 reload smartims-api
--- ---
## 💡 주의사항 ## 💡 주의사항
1. **빌드 확인**: 운영 서버에서 수동 업데이트 시 `npm run build` 과정에서 에러가 없는지 반드시 확인해야 합니다. 1. **실행 위치 확인**: 특히 `pm2` 명령어나 `server` 관련 설정은 반드시 `server` 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다.
2. **권한 차이**: 수동 업데이트 시 파일 권한 문제가 발생할 수 있으므로 가급적 서비스 실행 계정(예: `sokuree`)으로 진행하세요. 2. **경로 이동**: `cd server`를 통해 폴더를 이동한 후 작업을 마쳤다면, 다시 `cd ..`를 통해 루트로 복귀하는 습관이 중요합니다.
3. **No-Cache**: 업데이트 후 브라우저에 즉시 반영되지 않으면 서버의 `pm2 reload`가 정상적으로 수행되었는지 확인하세요. 3. **권한**: 운영 서버에서는 가급적 서비스 소유 계정으로 명령어를 실행하세요.