# GitHub 설정 가이드
워크샵에서는 **GitHub Templates**를 사용하여 자신의 레포지토리를 만듭니다. Codespace에서 작업하면 GitHub 연결이 자동으로 설정되고, 매일 작업을 저장할 수 있습니다.
---
## 1주차: "Use this template" 흐름 (워크샵 시작)
### 1단계: Template 저장소에서 내 레포 만들기
1. **메인 템플릿 페이지로 이동**
- https://github.com/xulfereht/clinic-os-workshop
2. **초록색 "Use this template" 버튼 클릭**
- "Create a new repository" 선택
3. **레포지토리 설정**
- **Repository name**: `clinic-os-{한의원이름}` (예: `clinic-os-seoul`)
- **Visibility**: **Private** (비공개) — 환자 데이터 보호
- **Include all branches**: 체크 (권장)
- **Create repository** 클릭
4. **내 GitHub 레포 생성 완료**
- URL: `https://github.com/{내username}/clinic-os-{한의원이름}`
---
### 2단계: Codespace에서 작업 시작
1. **내 레포 접속 → "Code" 버튼**
- **Codespaces** 탭 선택
- **Create codespace on main** 클릭
- 브라우저에서 VS Code 환경 자동 로드
2. **Terminal에서 Claude 실행**
```
claude
```
3. **에이전트가 자동으로 환경 감지**
- `clinic.json` 없음 → 설치 모드 진입
- "설치해줘" 또는 "npm run setup:agent" 실행 가능
---
### 3단계: 매일 끝에 작업 저장
Codespace를 종료하기 전에 **반드시 커밋**하세요. (Codespace 삭제 시 데이터 손실 방지)
**에이전트에게 요청**:
```
작업 내용 저장해줘
```
또는 수동으로:
```bash
git add .
git commit -m "오늘 작업 저장 — 온보딩 진행중"
git push
```
---
## 대안: 로컬 개발 환경에서 작업 (경험자용)
### 이미 GitHub 계정이 있다면
1. **Template 같은 방법으로 내 레포 생성**
2. **로컬에 복제**
```bash
git clone https://github.com/{내username}/clinic-os-{한의원이름}.git
cd clinic-os-{한의원이름}
```
3. **Claude 실행**
```bash
npm install
claude
```
4. **매일 작업 끝에 저장**
```bash
git add .
git commit -m "오늘 작업 저장 — [작업요약]"
git push
```
---
## GitHub 없이 작업할 경우 (비권장)
GitHub 없이도 작업은 가능하지만, 다음 위험이 있습니다:
- **데이터 손실**: 컴퓨터 고장이나 Codespace 삭제 시 모든 코드 손실
- **이동 불가**: 다른 컴퓨터에서 작업을 이어갈 수 없음
- **복구 불가**: 실수로 파일을 지워도 되돌릴 수 없음
- **DB 백업 불안정**: 데이터베이스 스냅샷의 원격 저장이 안됨
에이전트는 3세션마다 GitHub 연결을 다시 안내합니다.
---
## 문제 해결
| 상황 | 해결 |
|------|------|
| **Codespace에 로그인이 안 됨** | GitHub 계정으로 다시 로그인 또는 Codespace 다시 생성 |
| **git push가 안 됨** | Codespace 첫 실행 시 GitHub 인증 자동 진행 (브라우저 팝업 확인) |
| **Codespace가 메모리 부족** | 실행 중인 `npm run dev` 중지 후 다시 시도 |
| **"permission denied" 오류** | "에이전트에게 GitHub 다시 연결해줘" 요청 |
---
## 관련 문서
- **[백업 가이드](/guide#backup-guide)** — DB 데이터 백업 방법
- **[배포 가이드](/guide#deployment-workflow)** — 프로덕션 배포 절차