blob: 702857b2959fef9c5167f7b54e0e536f04167bcc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# SHI eVCP
## 배포 가이드
1. 프로젝트 압축
```bash
zip -r public/archive-$(date +%Y%m%d-%H%M%S).zip . -x "./public/*" "./.git/*" "./.next/*" "./tmp/*" "./temp/*" "./.cursor/*" "./_docker/*"
zip -r public/archive-$(date +%Y%m%d-%H%M%S).zip . -x "./public/*" "./.git/*" "./.next/*" "./tmp/*" "./temp/*" "./.cursor/*" "./node_modules/*" "./_docker/*"
```
2. 내부망으로 이동해서 경로 생성 후 압축 풀기
- `mkdir destination && cd destination`
- SSH 연결 기반으로 파일 옮기기
- `unzip archive-xxx.zip`
3. public, node_modules 복사
- `cp -r current/node_modules/ 대상/`
- `cp -r current/public/ 대상/`
4. 환경변수 조정
- ide compare 기능 사용
- 외부개발서버, 개발서버(60.101.108.100), 품질서버(60.101.108.101), 운영서버(evcp.sevcp.com)는 환경변수를 환경에 맞게 변경해야 합니다. 현재 소스는 외부개발서버에 맞춰져 있으니, 배포시 환경변수를 그대로 사용할 수 없습니다.
5. 배포
- `pm2 stop evcp && npm run build && pm2 start evcp`
6. 기타 신경써야 할 부분
- `@/public/pdftronWeb` 경로에 `core`, `ui` 폴더를 복사
- `cp -r node_modules/@pdftron/webviewer/public/ public/pdftronWeb/`
- package.json 에서 next 명령어 실행할 때 `./node_modules/next/dist/bin/next`로 스크립트 변경한 이유는 import 관련 에러 처리 목적입니다.
### pm2 관련
pm2는 쉘 연결이 종료되어도 프로그램을 계속 운영하기 위한 목적으로 사용합니다.
현재는 간단한 설정으로 등록하여 사용하고 있습니다. (서버 재시작 대응등을 위해 추가 설정 필요)
`pm2 start npm --name "evcp" -- start`
## 로컬 실행을 위한 DB 준비
1. postgres 17 버전을 준비 (환경변수에 따라 계정 및 데이터베이스 생성)
2. drizzle-kit 으로 ORM to Database 처리 (generate 후 생성 쿼리 실행)
- drizzle-kit 버그로 인해 migrate 불가
3. (선택) 환경변수 선택을 위한 dotenv-cli 설치 `npm i -g dotenv-cli`
## 주의사항
- **generate 로 생성한 저널과 쿼리는 깃에 push 하지 마세요.**
- 개발한 부분과 관련없는 부분에 대해 포매팅 변경사항을 만들지 마세요.
- 자동 포맷 기능을 종료해두세요 (vscode, prettier, biome 등)
- formatOnSave 옵션을 비활성화하는 설정이 `.vscode/settings.json` 설정에 작성되어 있습니다.
## 협업전략
- 이전 전략
- main, dev 브랜치에 다이렉트 푸시 X (PR 사용)
- features 브랜치에서 새로운 브랜치 생성하기
- 현재 전략
- dujinkim 브랜치에 작업사항을 직접 커밋 & 푸시합니다.
|