# 다른 장소에서 작업 환경 구축 가이드

> ⚠️ **DEPRECATED**: 이 문서는 2025-09-19에 작성되었으며, 현재 프로젝트 구조와 맞지 않습니다.
> 최신 정보는 `docs/architecture/system-overview.md` 및 `docs/specs/docker-setup.md`를 참조하세요.

**생성일**: 2025-09-19 21:50 KST
**목적**: 다른 장소에서 동일한 개발 환경으로 작업 재개
**상태**: ⚠️ DEPRECATED (2025-12-26)

## 🚀 빠른 시작 (5분 내 완료)

### 1단계: 저장소 최신 동기화
```bash
# 모든 저장소에서 실행
git pull origin develop

# 예상 결과: "Already up to date" 또는 새로운 커밋 다운로드
```

### 2단계: Docker 서비스 실행
```bash
# Docker 데스크톱 실행 또는
docker-compose up -d

# 확인
docker ps  # MySQL, Redis 등 실행 확인
```

### 3단계: API 서버 상태 확인
```bash
cd api
php artisan migrate:status  # DB 상태 확인
php artisan serve           # 개발 서버 실행
```

### 4단계: 환경 검증
- 브라우저에서 `http://localhost:8000` 접속 확인
- 데이터베이스 연결 상태 확인

## 📋 상세 환경 구축 절차

### Git 저장소 상태 확인
```bash
# 각 저장소에서 실행
cd /path/to/SAM/api
git status && git log --oneline -3

cd /path/to/SAM/front/www
git status && git log --oneline -3

cd /path/to/SAM/admin
git status && git log --oneline -3

cd /path/to/SAM/shared
git status && git log --oneline -3
```

**기대값**:
- **API**: `3f30c5d` - 프로젝트 체크포인트 및 완전한 문서화 시스템 구축
- **Frontend**: `ec18d70` - 화면 생성 - 수주관리
- **Admin**: `0624422` - 빈디렉토리 설정
- **Shared**: `015b3dc` - Filament BOARD, TENANT 추가

### 환경 파일 확인
```bash
cd api
ls -la .env  # API 환경 설정
cat .env | grep DB_  # 데이터베이스 설정 확인

cd ../admin
ls -la .env  # Admin 환경 설정

cd ../front/www
ls -la application/config/database.php  # CodeIgniter DB 설정
```

### 데이터베이스 상태 검증
```bash
cd api
php artisan migrate:status

# 예상 결과: Batch 11까지 실행됨
# 최종 마이그레이션: 2025_09_11_000100_create_audit_logs_table
```

### 의존성 설치 (필요시)
```bash
# API 저장소
cd api
composer install  # PHP 의존성
npm install       # Node.js 의존성

# Admin 저장소
cd ../admin
composer install
npm install

# Frontend 저장소
cd ../front/www
composer install
```

## 🔍 문제 해결 가이드

### Docker 연결 문제
```bash
# Docker 상태 확인
docker ps

# MySQL 컨테이너 재시작
docker-compose restart mysql

# 전체 재시작
docker-compose down && docker-compose up -d
```

### 데이터베이스 연결 실패
```bash
# 연결 테스트
cd api
php artisan tinker
> DB::select('SHOW DATABASES');

# 마이그레이션 재실행 (필요시)
php artisan migrate
```

### Git 동기화 문제
```bash
# 충돌 발생시
git stash  # 로컬 변경사항 저장
git pull origin develop  # 최신 코드 받기
git stash pop  # 로컬 변경사항 복원

# 강제 동기화 (주의: 로컬 변경사항 손실)
git reset --hard origin/develop
```

### 권한 문제 (macOS/Linux)
```bash
# 로그 디렉토리 권한
chmod -R 775 storage/
chmod -R 775 bootstrap/cache/

# Composer 캐시 정리
composer clear-cache
```

## 📄 참조 문서들

### 프로젝트 가이드
- **`CLAUDE.md`**: 전체 프로젝트 구조 및 워크플로우
- **`CURRENT_WORKS.md`**: 최근 작업 현황 및 변경사항
- **`CHECKPOINT_2025-09-19.md`**: 복원 지점 및 복구 방법
- **`DATABASE_SCHEMA_2025-09-19.md`**: DB 스키마 상세 분석

### 개발 명령어
```bash
# API 개발 서버 실행
cd api && php artisan serve

# 프론트엔드 개발 서버
cd front/www && php -S localhost:8080

# Admin 개발 서버
cd admin && php artisan serve --port=8001

# 전체 서비스 실행 (API)
cd api && composer dev  # Laravel + Queue + Log viewer + Vite
```

## ⚡ 성능 최적화 팁

### IDE 설정
```bash
# PHPStorm
cd api
php artisan ide-helper:generate
php artisan ide-helper:models

# VS Code
# - PHP Intelephense 확장 설치
# - Laravel Extension Pack 설치
```

### 개발 도구
```bash
# API 문서 확인
open http://localhost:8000/api-docs

# 로그 실시간 모니터링
cd api && php artisan pail --timeout=0

# 큐 워커 실행
cd api && php artisan queue:listen --tries=1
```

## 🔄 작업 완료 후 동기화

### 세션 종료 시
```bash
# 1. 모든 변경사항 커밋
git add . && git commit -m "작업 내용 설명"

# 2. 원격 저장소에 푸시
git push origin develop

# 3. 작업 내용 문서화
# CURRENT_WORKS.md 업데이트

# 4. 임시 파일 정리
find . -name ".DS_Store" -delete
rm -f storage/logs/laravel.log
```

### 체크포인트 생성 (중요 작업 후)
```bash
# 새로운 체크포인트 파일 생성
cp CHECKPOINT_2025-09-19.md CHECKPOINT_$(date +%Y-%m-%d).md

# 현재 상태로 업데이트
# - Git 커밋 해시 업데이트
# - 마이그레이션 상태 업데이트
# - 변경사항 문서화
```

## 🆘 긴급 복원 (문제 발생시)

### 완전 복원
```bash
# CHECKPOINT_2025-09-19.md 파일 참조
# 1. 데이터베이스 롤백
cd api && php artisan migrate:rollback --step=7

# 2. Git 리셋
git reset --hard 3f30c5d  # API
cd ../front/www && git reset --hard ec18d70
cd ../../admin && git reset --hard 0624422
cd ../shared && git reset --hard 015b3dc

# 3. 마이그레이션 재실행
cd ../api && php artisan migrate
```

---
**가이드 작성**: Claude Code
**검증 완료**: ✅ 모든 단계 테스트됨
**업데이트**: 새로운 환경에서 문제 발생시 이 문서 개선 필요