summaryrefslogtreecommitdiff
path: root/README.md
blob: 8b87e2f284385fe75c94f37a479212a84f448499 (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# SHI eVCP

## 마이그레이션

1. 마이그레이션을 위한 최소 압축

```bash
# zip 은 심볼릭 링크 정보가 누락되는 문제 있음
# zip -r archive_$(date +%Y%m%d_%H%M%S).zip . -x "node_modules/*" "public/*" ".next/*" ".git/*" "tmp/*" "temp/*"

# h 옵션 필수임. 심볼릭링크 날려먹으면 node_modules 내부에서 문제생김.

tar -czhvf archive_$(date +%Y%m%d_%H%M%S).tar.gz --exclude="node_modules" --exclude="public" --exclude=".next" --exclude=".git" --exclude="tmp" --exclude="temp" .
```

2. 전체 압축

```bash
# zip -r archive_$(date +%Y%m%d_%H%M%S).zip . -x ".git/*"

# 1단계 상위 디렉토리에서 실행
tar -czhf ./archive_$(date +%Y%m%d_%H%M%S).tar.gz \
    --exclude=".git" \
    --exclude="public" \
    --exclude=".next" \
    -C ./evcp .

# .git 경로 제외 압축
tar -czhf ./archive_$(date +%Y%m%d_%H%M%S).tar.gz --exclude=".git" \-C ./evcp .

# 전달용
tar -czhf ./archive_$(date +%Y%m%d_%H%M%S).tar.gz \
    --exclude=".next" \
    --exclude="public/*.zip" \
    -C ./evcp .
```

3. 압축 해제

```bash
# 원본 구조 그대로 바로 풀기
tar -xzvf archive_[date].tar.gz

# 특정 경로에 풀기
tar -xzvf archive_20240101_123456.tar.gz -C /path/to/directory

# 압축파일 미리보기
tar -tzvf archive_20240101_123456.tar.gz

# 특정 파일만 압축 해제하기
tar -xzvf archive_20240101_123456.tar.gz path/to/specific/file
```

- `-x`: 압축 해제 (e**x**tract)
- `-z`: gzip 압축 해제
- `-v`: 압축 해제 과정 출력 (생략 가능)
- `-f`: 파일 이름 지정

## 실행

1. 종속성 설치 `npm i`
2. pdfTron 라이브러리 복사
   `@/public/pdftronWeb` 경로에 `core`, `ui` 폴더를 복사
   - `cp -r node_modules/@pdftron/webviewer/public/ public/pdftronWeb/`
3. 실행 `npm run dev`

## 로컬 실행을 위한 DB 준비

1. postgres 17 버전을 준비 (환경변수에 따라 계정 및 데이터베이스 생성)
2. drizzle-kit 으로 ORM to Database 처리
3. 환경변수 선택을 위한 dotenv-cli 설치 `npm i -g dotenv-cli`

development:

```bash
npx dotenv -e .env.production -- npx drizzle-kit push
```

production:

```bash
npx dotenv -e .env.development -- npx drizzle-kit push
```

3. 필요시 seeding 진행 (`@/db/` 경로 참조, drizzle 문서 확인)

## 주의사항

- 개발한 부분과 관련없는 부분에 대해 포매팅 변경사항을 만들지 마세요.
- 자동 포맷 기능을 종료해두세요 (vscode, prettier, biome 등)
  - formatOnSave 옵션을 비활성화하는 설정이 `.vscode/settings.json` 설정에 작성되어 있습니다.

## 협업전략

- main, dev 브랜치에 다이렉트 푸시 X (PR 사용)
- features 브랜치에서 새로운 브랜치 생성하기

### github 사용하기

1. 조직 내 팀에 개발 인원 추가
2. 개발 인원은 깃허브 로그인 후 클론 & 작업 내역 PR

인증 절차는 HTTPS, SSH 등 특정 방식으로 제한하고 있지는 않으며, 적절한 방법으로 진행하시면 됩니다.

예시 상황: AWS EC2 - CentOS 에서 크레덴셜 셋업하기

> ```bash
> # GH 설치하기
> # 저장소 파일 다운로드
> sudo curl -L https://cli.github.com/packages/rpm/gh-cli.repo -o /etc/yum.repos.d/gh-cli.repo
>
> # 저장소 활성화 및 설치
> sudo yum install -y gh
>
> # 인증 처리하기
> gh auth login # 이후 CLI를 통해 인증처리 진행
> ```

[gh cli에 대해 알아보기](https://github.com/cli/cli)