docs: [react] React 빌드/배포 정책 추가
- 서버 빌드 금지, 로컬 빌드 후 배포 정책 명시 - 프로젝트 경로에 react 추가
This commit is contained in:
64
CLAUDE.md
64
CLAUDE.md
@@ -116,11 +116,75 @@ fix: [auth] 로그인 시 세션 만료 오류 수정
|
||||
|------|------|-----------|
|
||||
| `/home/aweso/sam/mng` | 관리자 웹 (Laravel) | 독립 저장소 |
|
||||
| `/home/aweso/sam/api` | API 서버 (Laravel) | 독립 저장소 |
|
||||
| `/home/aweso/sam/react` | 프론트엔드 (Next.js) | 독립 저장소 |
|
||||
|
||||
**각 폴더는 독립적인 Git 저장소입니다. 해당 폴더에서 git 명령을 실행해야 합니다.**
|
||||
|
||||
---
|
||||
|
||||
## React 빌드/배포 정책 (필수 규칙)
|
||||
|
||||
> **경고: React(Next.js) 빌드는 반드시 로컬에서 실행합니다. 서버에서 빌드 절대 금지!**
|
||||
|
||||
### 배경
|
||||
|
||||
서버 스펙(2코어, 3.8GB RAM, Swap 없음)으로는 Next.js 빌드 시 메모리 부족으로 20분 이상 소요되거나 실패한다.
|
||||
로컬(WSL)에서 빌드 후 결과물만 서버에 배포한다.
|
||||
|
||||
### 금지 사항
|
||||
|
||||
```
|
||||
❌ 서버에서 npm run build 실행 금지
|
||||
❌ 서버 SSH 접속 후 빌드 명령 실행 금지
|
||||
❌ Claude가 직접 npm run build 실행 금지 (로컬 포함)
|
||||
```
|
||||
|
||||
### 빌드/배포 방법
|
||||
|
||||
```
|
||||
로컬 (WSL) 서버 (114.203.209.83)
|
||||
┌─────────────────┐ ┌─────────────────┐
|
||||
│ npm run build │ ── rsync ──→ │ node server.js │
|
||||
│ (standalone) │ │ (포트 3001) │
|
||||
└─────────────────┘ └─────────────────┘
|
||||
```
|
||||
|
||||
**배포 스크립트**: `/home/aweso/sam/react/deploy.sh`
|
||||
|
||||
```bash
|
||||
# 개발 서버 배포
|
||||
cd /home/aweso/sam/react
|
||||
./deploy.sh dev
|
||||
```
|
||||
|
||||
### standalone 모드
|
||||
|
||||
- `next.config.ts`에 `output: 'standalone'` 설정됨
|
||||
- 서버에 `node_modules` 불필요 (빌드 결과물에 필요한 것만 포함)
|
||||
- 서버에서는 `node server.js`로 실행
|
||||
|
||||
### 빌드가 필요한 상황
|
||||
|
||||
사용자에게 다음과 같이 안내한다:
|
||||
|
||||
```
|
||||
React 코드가 변경되었습니다. 배포하려면:
|
||||
cd /home/aweso/sam/react && ./deploy.sh dev
|
||||
```
|
||||
|
||||
### 서버 정보
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 서버 주소 | `114.203.209.83` |
|
||||
| SSH 유저 | `hskwon` |
|
||||
| 프로젝트 경로 | `/home/webservice/react` |
|
||||
| 실행 포트 | `3001` |
|
||||
| 도메인 | `dev.codebridge-x.com` |
|
||||
| 로그 | `/tmp/sam-react.log` |
|
||||
|
||||
---
|
||||
|
||||
## 데이터베이스 아키텍처 (필수 규칙)
|
||||
|
||||
> **경고: 이 규칙을 반드시 준수하세요!**
|
||||
|
||||
@@ -8,7 +8,7 @@ command=/usr/local/sbin/php-fpm
|
||||
command=nginx -g "daemon off;"
|
||||
|
||||
[program:queue-worker]
|
||||
command=php /var/www/api/artisan queue:work database --sleep=3 --tries=3 --timeout=1800 --max-jobs=100 --max-time=3600
|
||||
command=php /var/www/api/artisan queue:work database --queue=api,default --sleep=3 --tries=3 --timeout=1800 --max-jobs=100 --max-time=3600
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
numprocs=1
|
||||
directory=/var/www/api
|
||||
|
||||
@@ -8,7 +8,7 @@ command=/usr/local/sbin/php-fpm
|
||||
command=nginx -g "daemon off;"
|
||||
|
||||
[program:queue-worker]
|
||||
command=php /var/www/mng/artisan queue:work database --sleep=3 --tries=1 --timeout=1800 --max-jobs=10 --max-time=3600
|
||||
command=php /var/www/mng/artisan queue:work database --queue=mng,default --sleep=3 --tries=1 --timeout=1800 --max-jobs=10 --max-time=3600
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
numprocs=2
|
||||
directory=/var/www/mng
|
||||
|
||||
Reference in New Issue
Block a user