From 6fb6e4fdbea3565cfff48eab736c68f446a46154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sat, 21 Feb 2026 16:52:13 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[=EC=84=9C=EB=B2=84=EC=A0=95=EC=B1=85]?= =?UTF-8?q?=20=EC=84=9C=EB=B2=84=20=EC=A7=81=EC=A0=91=20=EC=A0=91=EA=B7=BC?= =?UTF-8?q?=20=EA=B8=88=EC=A7=80=20=EA=B7=9C=EC=B9=99=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SSH 접속, 파일 수정, 명령 실행 전면 금지 - Claude는 코드 작성/커밋까지만, 배포는 사용자/팀장 역할 - 2026-02-21 502 사고 재발 방지 --- CLAUDE.md | 100 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 32 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 778f582..7094420 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -122,6 +122,66 @@ fix: [auth] 로그인 시 세션 만료 오류 수정 --- +## 서버 직접 접근 금지 (최우선 필수 규칙) + +> **경고: 운영/개발 서버에 SSH로 직접 접속하여 파일을 수정하거나 명령을 실행하지 마세요!** +> **2026-02-21 사고**: Claude가 서버에 SSH로 직접 접속하여 설정을 변경한 결과 502 Bad Gateway 발생. 개발팀장이 복구함. + +### 핵심 원칙 + +서버는 **개발팀장이 관리**한다. Claude는 서버에 절대 직접 접근하지 않는다. + +### 금지 사항 + +``` +❌ ssh pro@114.203.209.83 ... 로 서버 접속 금지 +❌ ssh hskwon@114.203.209.83 ... 로 서버 접속 금지 +❌ 서버에서 파일 수정, 프로세스 종료/시작, 설정 변경 금지 +❌ 서버에서 npm run build, npm start, node server.js 등 실행 금지 +❌ 서버에서 git pull, composer install, php artisan 등 실행 금지 +❌ scp, rsync로 서버에 파일 직접 전송 금지 +``` + +### 허용 사항 + +``` +✅ 로컬에서 코드 작성 및 수정 +✅ 로컬에서 git add → git commit +✅ 사용자에게 git push 안내 (사용자가 수동으로 실행) +✅ 사용자에게 서버 배포 절차 안내 (사용자가 수동으로 실행) +``` + +### 배포 흐름 + +``` +Claude 역할 사용자/팀장 역할 +┌─────────────────┐ ┌─────────────────┐ +│ 코드 작성/수정 │ │ │ +│ git add │ │ │ +│ git commit │──push──→ │ git pull │ +│ │ │ 서버 배포 │ +│ │ │ 서비스 재시작 │ +└─────────────────┘ └─────────────────┘ +``` + +### 서버 작업이 필요한 경우 + +사용자에게 명령어를 안내만 한다: + +``` +서버에서 다음 명령을 실행해주세요: +cd /home/webservice/api && git pull && composer install && php artisan migrate +``` + +### 체크리스트 (모든 작업 시) + +- [ ] SSH 명령 사용하지 않음 +- [ ] 서버 파일 직접 수정하지 않음 +- [ ] 배포가 필요하면 사용자에게 안내만 제공 +- [ ] git push까지만 Claude 역할 + +--- + ## React 빌드/배포 정책 (필수 규칙) > **경고: React(Next.js) 빌드는 반드시 로컬에서 실행합니다. 서버에서 빌드 절대 금지!** @@ -142,47 +202,23 @@ fix: [auth] 로그인 시 세션 만료 오류 수정 ### 빌드/배포 방법 ``` -로컬 (WSL) 서버 (114.203.209.83) -┌─────────────────┐ ┌─────────────────┐ -│ npm run build │ ── rsync ──→ │ node server.js │ -│ (standalone) │ │ (포트 3001) │ -└─────────────────┘ └─────────────────┘ +Claude 역할 사용자/팀장 역할 +┌─────────────────┐ ┌─────────────────┐ +│ 코드 작성/수정 │ │ │ +│ git commit │──push──→ │ git pull │ +│ │ │ npm run build │ +│ │ │ 서비스 재시작 │ +└─────────────────┘ └─────────────────┘ ``` -**배포 스크립트**: `/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 +React 코드가 변경되었습니다. git push 후 서버에서 배포해주세요. ``` -### 서버 정보 - -| 항목 | 값 | -|------|-----| -| 서버 주소 | `114.203.209.83` | -| SSH 유저 | `hskwon` | -| 프로젝트 경로 | `/home/webservice/react` | -| 실행 포트 | `3001` | -| 도메인 | `dev.codebridge-x.com` | -| 로그 | `/tmp/sam-react.log` | - --- ## 데이터베이스 아키텍처 (필수 규칙)