소스 정보
- 저장소
- majiayu000/claude-skill-registry
- 최근 소스 활동
- 2026년 6월 23일 12:15
- 감지된 SKILL.md 언어
- 한국어
- 스타
- 543
- 포크
- 85
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/majiayu000/claude-skill-registry --skill local-dev-context명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | local-dev-context |
| description | Local development environment context management |
Purpose: 로컬 개발 환경의 모든 맥락(파일시스템, 설정, 문서, 히스토리)을 통합하여 에러 없는 코딩을 지원하는 AI 개발 어시스턴트 스킬
Problem Solved:
Key Capabilities:
Design Pattern: Orchestrator + Analyzer
Target Users:
Claude는 다음 상황에서 이 스킬을 자동으로 활성화합니다:
사용자 입력 예시:
"ModuleNotFoundError: No module named 'numpy'"
"npm ERR! ERESOLVE unable to resolve dependency tree"
"docker: Error response from daemon: port is already allocated"
사용자 입력 예시:
"이 프로젝트 구조 파악해줘"
"현재 환경 설정 확인"
"프로젝트 처음인데 뭐부터 시작하지?"
사용자 입력 예시:
"새로운 API 엔드포인트 추가하려는데"
"데이터베이스 스키마 변경할게"
"배포하려고 하는데 설정 확인해줘"
사용자 입력 예시:
"로컬 환경 스캔해줘"
"프로젝트 문서 찾아줘"
"과거 유사 에러 있었나?"
#### Step 1.1: 작업 디렉토리 확인
```bash
view /home/claude
목적: 현재 작업 중인 프로젝트 파일 구조 파악
bash_tool: ls -la
목적: .env, .git, .docker 등 중요 설정 파일 발견
view README.md
목적: 프로젝트 설명, 설치 방법, 주요 기능 이해
bash_tool: git log -1 --oneline 2>/dev/null || echo "Not a git repository"
bash_tool: git branch --show-current 2>/dev/null
목적: 최근 변경사항, 현재 브랜치 파악
---
### Phase 2: Tech Stack Detection (기술 스택 감지) - 1분
```markdown
#### Step 2.1: 언어/프레임워크 자동 식별
```bash
bash_tool: |
echo "=== Tech Stack Detection ==="
# Node.js
if [ -f package.json ]; then
echo "✅ Node.js Project"
node -v 2>/dev/null && npm -v 2>/dev/null
cat package.json | grep -E '"name"|"version"|"scripts"' | head -10
fi
# Python
if [ -f requirements.txt ] || [ -f pyproject.toml ]; then
echo "✅ Python Project"
python --version 2>/dev/null || python3 --version 2>/dev/null
pip --version 2>/dev/null || pip3 --version 2>/dev/null
[ -f requirements.txt ] && head -20 requirements.txt
fi
# Go
if [ -f go.mod ]; then
echo "✅ Go Project"
go version 2>/dev/null
head -10 go.mod
fi
# Rust
if [ -f Cargo.toml ]; then
echo "✅ Rust Project"
rustc --version 2>/dev/null
head -10 Cargo.toml
fi
# Java
if [ -f pom.xml ] || [ -f build.gradle ]; then
echo "✅ Java Project"
java -version 2>&1 | head -1
[ -f pom.xml ] && grep -E '<artifactId>|<version>' pom.xml | head -10
fi
bash_tool: |
# Node.js frameworks
if [ -f package.json ]; then
grep -E '"(react|vue|angular|express|nest)"' package.json || echo "Framework: Unknown"
fi
# Python frameworks
if [ -f requirements.txt ]; then
grep -iE '(django|flask|fastapi)' requirements.txt || echo "Framework: Unknown"
fi
---
### Phase 3: Configuration Audit (설정 감사) - 1분
```markdown
#### Step 3.1: 환경 설정 파일 체크
```bash
# 환경변수
view .env.example 2>/dev/null || view .env 2>/dev/null || echo "No .env files found"
# Docker 설정
view docker-compose.yml 2>/dev/null || echo "No Docker Compose"
view Dockerfile 2>/dev/null || echo "No Dockerfile"
# Git 제외 파일
view .gitignore
bash_tool: |
echo "=== Running Services ==="
# Docker containers
if command -v docker &> /dev/null; then
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" 2>/dev/null || echo "Docker not running"
fi
# Port usage
lsof -i :3000 -i :8000 -i :5432 -i :27017 2>/dev/null | grep LISTEN || echo "Common ports available"
bash_tool: |
# Node.js
if [ -f package.json ]; then
echo "=== Node.js Dependencies ==="
npm list --depth=0 2>/dev/null || echo "Dependencies not installed"
npm outdated 2>/dev/null || echo "All dependencies up to date"
fi
# Python
if [ -f requirements.txt ]; then
echo "=== Python Dependencies ==="
pip list --format=columns 2>/dev/null | head -20 || echo "Dependencies not installed"
fi
---
### Phase 4: Knowledge Base Search (지식 베이스 검색) - 2분
```markdown
#### Step 4.1: Notion에서 프로젝트 문서 검색
```javascript
// 프로젝트 설계/아키텍처 문서
notion-search: {
query: "{프로젝트명} (architecture OR setup OR configuration OR API)",
query_type: "internal"
}
// 트러블슈팅 문서
notion-search: {
query: "{프로젝트명} (troubleshooting OR error OR issue OR solution)",
query_type: "internal"
}
검색 우선순위:
// 프로젝트 폴더 내 설정 관련 문서
google_drive_search: {
api_query: "name contains '{프로젝트명}' and (name contains 'config' or name contains 'setup' or name contains 'env')",
semantic_query: "environment setup configuration deployment"
}
// 아키텍처 다이어그램 (이미지/PDF)
google_drive_search: {
api_query: "name contains '{프로젝트명}' and (mimeType contains 'image' or mimeType='application/pdf')",
semantic_query: "architecture diagram ERD database schema"
}
// 최근 1개월 프로젝트 관련 이메일
search_gmail_messages: {
q: "{프로젝트명} (error OR issue OR problem OR solution OR fixed) after:{1개월_전_날짜}"
}
// 환경 설정 관련 스레드
search_gmail_messages: {
q: "{프로젝트명} (environment OR setup OR configuration OR deployment)"
}
검색 전략:
---
### Phase 5: Error Diagnosis (에러 진단) - 2분
```markdown
#### Step 5.1: 에러 타입 분류
```markdown
**에러 카테고리**:
1. **환경 설정 에러** (Environment)
- 환경변수 누락: `Missing required environment variable`
- 포트 충돌: `EADDRINUSE`, `port already allocated`
- 권한 문제: `Permission denied`, `EACCES`
2. **의존성 에러** (Dependency)
- 패키지 미설치: `ModuleNotFoundError`, `Cannot find module`
- 버전 충돌: `ERESOLVE`, `peer dependency conflict`
- 캐시 오염: `integrity check failed`
3. **코드 에러** (Code)
- 구문 에러: `SyntaxError`, `IndentationError`
- 타입 에러: `TypeError`, `type mismatch`
- 런타임 에러: `ReferenceError`, `AttributeError`
4. **인프라 에러** (Infrastructure)
- 데이터베이스 연결: `ECONNREFUSED`, `Connection refused`
- 네트워크: `ETIMEDOUT`, `DNS resolution failed`
- 컨테이너: `container exited with code`
**A. 환경 문제 진단**
- [ ] 런타임 버전 확인: `bash_tool: node -v && npm -v` 또는 `python --version`
- [ ] 환경변수 확인: `view .env` 또는 `bash_tool: printenv | grep {KEY}`
- [ ] 포트 사용 확인: `bash_tool: lsof -i :{PORT_NUMBER}`
- [ ] 파일 권한 확인: `bash_tool: ls -l {파일경로}`
**B. 의존성 문제 진단**
- [ ] 패키지 설치 여부: `bash_tool: npm list {패키지명}` 또는 `pip show {패키지명}`
- [ ] 버전 확인: `view package.json` 또는 `view requirements.txt`
- [ ] Lock 파일 상태: `view package-lock.json` 또는 `view poetry.lock`
- [ ] 캐시 상태: `bash_tool: npm cache verify` 또는 `pip cache info`
**C. 코드 문제 진단**
- [ ] 에러 파일 확인: `view {파일경로}:{라인번호 ±5줄}`
- [ ] 임포트 경로: `bash_tool: grep -r "import.*{모듈명}" .`
- [ ] 설정 파일: `view tsconfig.json` 또는 `view setup.py`
**D. 인프라 문제 진단**
- [ ] 컨테이너 상태: `bash_tool: docker ps -a`
- [ ] 로그 확인: `bash_tool: docker logs {컨테이너명} --tail 50`
- [ ] 네트워크: `bash_tool: docker network ls && docker network inspect {네트워크명}`
- [ ] 데이터베이스 연결: `bash_tool: telnet localhost {DB_PORT}` 또는 `nc -zv localhost {DB_PORT}`
**자동 매칭 프로세스**:
1. Notion에서 동일 에러 메시지 검색
→ 과거 해결 사례 발견 시 우선 참조
2. Gmail에서 유사 에러 스레드 검색
→ 팀원 간 논의/해결 방법 확인
3. Drive에서 트러블슈팅 문서 확인
→ 공식 가이드/FAQ 참조
4. 없을 경우 Web Search 활용
→ Stack Overflow, GitHub Issues, 공식 문서
---
### Phase 6: Solution Generation (해결책 생성) - 1분
```markdown
#### 응답 구조 템플릿:
## 🔍 진단 결과
**에러 원인**: [1줄 명확한 요약]
**로컬 환경 상태**:
- 프로젝트: {PROJECT_NAME}
- 기술 스택: {TECH_STACK} {VERSION}
- 브랜치: {GIT_BRANCH}
- 문제 발생 위치: {FILE_PATH}:{LINE_NUMBER}
**발견된 이슈**:
1. [구체적 문제점 #1]
2. [구체적 문제점 #2]
3. [관련 설정 누락/오류]
---
## ✅ 해결 방법
### 방법 1: 즉시 수정 (권장) ⭐
```bash
# 실행 가능한 커맨드 (복사 후 실행)
{실제_명령어_라인별_설명포함}
예상 결과: [정상 작동 확인 방법]
소요 시간: {예상_시간} (예: 30초)
파일: {파일명}
변경 내용:
// Before (현재 상태)
{현재_코드_스니펫}
// After (수정 후)
{수정된_코드_스니펫}
변경 이유: [왜 이 수정이 필요한지 설명]
내부 문서 (프로젝트 특화):
외부 문서 (일반 참조):
즉시 실행:
Notion에 트러블슈팅 페이지 추가
제목: "[{날짜}] {에러명} 해결 가이드"
내용: 원인, 해결법, 예방책
.env.example 업데이트 (필수 변수 추가)
{NEW_REQUIRED_VAR}={설명} # 추가된 변수
팀 공유 (이메일/Slack)
"안녕하세요, {에러명} 해결 방법을 공유드립니다. [Notion 링크]"
장기 개선:
자동화 스크립트 추가
// package.json
"scripts": {
"validate-env": "node scripts/check-env.js",
"health-check": "node scripts/health-check.js"
}
CI/CD에 검증 단계 추가
# .github/workflows/ci.yml
- name: Validate Environment
run: npm run validate-env
문서 자동 생성
AI가 이번 해결 과정을 Notion/Confluence에 자동 기록
---
## 📖 Detailed Examples
### Example 1: 환경변수 누락 에러
**사용자 입력**:
에러 발생했어요: Error: Missing required environment variable: DATABASE_URL
**AI 자동 실행 과정**:
```markdown
[Phase 1: Context Collection - 3초]
✓ view /home/claude → 프로젝트: ecommerce-backend
✓ bash_tool: ls -la → .env.example 발견, .env 없음
✓ view README.md → "환경변수 설정 필수" 명시
[Phase 2: Tech Stack Detection - 1초]
✓ bash_tool: cat package.json → Node.js 18.x, Express 4.x
[Phase 3: Configuration Audit - 2초]
✓ view .env.example → DATABASE_URL 템플릿 존재
✓ bash_tool: docker ps → PostgreSQL 컨테이너 실행 중 (포트 5432)
[Phase 4: Knowledge Base Search - 5초]
✓ notion-search: "ecommerce-backend database setup"
→ 발견: "DB 환경 설정 가이드" 페이지
✓ google_drive_search: "ecommerce-backend .env"
→ 발견: ".env.production.template" 파일
✓ search_gmail_messages: "DATABASE_URL configuration"
→ 발견: 팀 리드의 설정 안내 이메일 (2주 전)
[Phase 5: Error Diagnosis - 1초]
✓ 에러 타입: 환경 설정 에러
✓ 원인: .env 파일 미생성, DATABASE_URL 변수 없음
✓ 해결책 확인됨: Notion 문서에 정확한 값 명시
AI 응답:
## 🔍 진단 결과
**에러 원인**: `.env` 파일이 생성되지 않아 `DATABASE_URL` 환경변수를 찾을 수 없음
**로컬 환경 상태**:
- 프로젝트: ecommerce-backend
- 기술 스택: Node.js 18.20.5 / Express 4.18.2
- 브랜치: feature/order-api
- PostgreSQL 컨테이너: ✅ 실행 중 (localhost:5432)
**발견된 이슈**:
1. `.env` 파일 없음 (`.env.example`은 존재)
2. `DATABASE_URL` 변수 미설정
3. Notion 문서에 정확한 설정값 기록됨
---
## ✅ 해결 방법
### 방법 1: 즉시 수정 (권장) ⭐
```bash
# 1. .env.example을 .env로 복사
cp .env.example .env
# 2. DATABASE_URL 설정 (Notion 문서 기반)
echo 'DATABASE_URL="postgresql://postgres:password123@localhost:5432/ecommerce_dev"' >> .env
# 3. 설정 확인
cat .env | grep DATABASE_URL
# 4. 서버 재시작
npm run dev
예상 결과:
Server started on port 3000
Database connected successfully
소요 시간: 30초
파일: .env
Google Drive 템플릿 기반:
# Development (현재)
DATABASE_URL="postgresql://postgres:password123@localhost:5432/ecommerce_dev"
# Production (배포 시 사용)
DATABASE_URL="postgresql://prod_user:PROD_SECRET@db.company.com:5432/ecommerce_prod"
주의: 프로덕션 비밀번호는 DevOps 팀에게 별도 요청
파일: docker-compose.yml
services:
app:
environment:
- DATABASE_URL=${DATABASE_URL}
postgres:
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=password123
- POSTGRES_DB=ecommerce_dev
이렇게 하면 .env에서 자동으로 환경변수를 읽어옵니다.
내부 문서:
개발/스테이징/프로덕션 DB 연결 정보 포함
프로덕션 환경 변수 템플릿
팀 리드 John의 설정 가이드 (2024-10-10)
외부 문서:
즉시 실행:
Notion 페이지 업데이트
## 환경변수 누락 시 체크리스트
1. .env.example 확인
2. .env 생성: cp .env.example .env
3. DATABASE_URL 설정 (위 링크 참조)
4. .env를 .gitignore에 추가 확인
README.md에 설치 가이드 추가
## 🚀 Quick Start
1. Clone repository
2. **Copy environment file**: `cp .env.example .env`
3. **Configure DATABASE_URL** (see Notion doc)
4. Install: `npm install`
5. Run: `npm run dev`
팀 Slack 공유
"#backend-dev: DATABASE_URL 에러 해결 가이드 공유드립니다. [Notion 링크]"
장기 개선:
환경변수 검증 스크립트
// scripts/check-env.js
const requiredEnvVars = ['DATABASE_URL', 'JWT_SECRET', 'API_KEY'];
requiredEnvVars.forEach(varName => {
if (!process.env[varName]) {
console.error(`❌ Missing: ${varName}`);
process.exit(1);
}
});
console.log('✅ All environment variables are set');
package.json에 자동 실행 추가
"scripts": {
"prestart": "node scripts/check-env.js",
"predev": "node scripts/check-env.js"
}
---
### Example 2: 패키지 버전 충돌
**사용자 입력**:
npm install 하면 계속 에러나요
**AI 자동 실행 과정**:
```markdown
[Phase 1-2: Context + Stack Detection - 4초]
✓ 프로젝트: react-dashboard
✓ Node.js 20.x, React 18.3.1
[Phase 3: Configuration Audit - 3초]
✓ bash_tool: npm install --dry-run 2>&1
→ 에러 내용 캡처: "ERESOLVE unable to resolve dependency tree"
✓ view package.json
→ react@18.3.1, @types/react@17.0.0 발견 (버전 불일치)
[Phase 4: Knowledge Base Search - 6초]
✓ search_gmail_messages: "ERESOLVE conflict react"
→ 발견: 팀원 Sarah의 해결 이메일 (1주 전)
✓ notion-search: "react typescript version"
→ 발견: "React 18 마이그레이션 가이드" 페이지
AI 응답:
## 🔍 진단 결과
**에러 원인**: React 18과 React 17용 타입 정의 파일이 충돌
**로컬 환경 상태**:
- 프로젝트: react-dashboard
- 기술 스택: Node.js 20.18.0 / React 18.3.1
- 문제 패키지: @types/react@17.0.0
**발견된 이슈**:
1. `react@18.3.1` 설치됨
2. `@types/react@17.0.0` (구버전) 설치됨
3. `react-dom@18.3.1`이 `@types/react@^18` 필요로 함
**과거 사례**:
Gmail 검색 결과, 1주 전 팀원 Sarah가 동일 이슈 해결
→ `@types/react` 버전 업그레이드로 해결
---
## ✅ 해결 방법
### 방법 1: 타입 패키지 업그레이드 (권장) ⭐
```bash
# React 18용 타입 정의 설치
npm install --save-dev @types/react@^18.3.0 @types/react-dom@^18.3.0
# 재설치
npm install
# 확인
npm list @types/react
예상 결과:
react-dashboard@1.0.0
└── @types/react@18.3.12
소요 시간: 1분
Sarah의 이메일 요약:
"타입 버전 맞추니 바로 해결됐어요. React 18 쓰면 @types/react도 18로!"
npm install --legacy-peer-deps
⚠️ 주의:
파일: package.json
{
"overrides": {
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0"
}
}
그 다음:
rm -rf node_modules package-lock.json
npm install
내부 문서:
Sarah의 상세 해결 과정
전체 업그레이드 체크리스트
외부 문서:
즉시 실행:
package.json에 정확한 버전 명시
{
"devDependencies": {
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0"
}
}
Notion에 체크리스트 추가
## React 프로젝트 의존성 규칙
- React 18 사용 시 → @types/react@^18
- React 17 사용 시 → @types/react@^17
- 버전 불일치 발생 시 → 타입 버전 우선 업그레이드
장기 개선:
Dependabot 설정 (자동 업데이트)
# .github/dependabot.yml
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
주간 의존성 체크 스크립트
npm outdated
npm audit
---
### Example 3: 신규 프로젝트 온보딩
**사용자 입력**:
이 프로젝트 처음인데 어디서부터 시작하면 될까요?
**AI 자동 실행 과정**:
```markdown
[Phase 1-3: Full Environment Scan - 10초]
✓ 프로젝트 구조 파악 완료
✓ 기술 스택: Python 3.11, FastAPI, PostgreSQL
✓ Docker Compose 설정 확인
✓ Git: 23개 브랜치, 주요 브랜치는 main/dev/staging
[Phase 4: Comprehensive Knowledge Search - 15초]
✓ Notion: "data-pipeline 프로젝트 개요" 페이지 발견
✓ Notion: "로컬 개발 환경 설정 가이드" 발견
✓ Notion: "API 명세서 v3.2" 발견
✓ Drive: "ERD 다이어그램 (최신).pdf" 발견
✓ Drive: ".env.template" 발견
✓ Gmail: 온보딩 관련 이메일 스레드 발견
AI 응답:
## 🎉 프로젝트 온보딩 가이드
환영합니다! **data-pipeline** 프로젝트에 대해 자동으로 수집한 정보를 정리했습니다.
---
## 📊 프로젝트 개요
**이름**: data-pipeline-v2
**타입**: Python 백엔드 (FastAPI)
**목적**: 실시간 데이터 수집 및 분석 파이프라인
**팀 규모**: 5명 (백엔드 3, 프론트 1, DevOps 1)
**주요 기능**:
- 외부 API 데이터 수집 (10개 소스)
- 데이터 정제 및 변환
- PostgreSQL 저장
- REST API 제공
**최근 활동**:
- 마지막 커밋: 2시간 전 (feat: Add data validation layer)
- 활성 브랜치: 5개
- 이번 주 배포 예정: 11월 1일
---
## 🛠️ 기술 스택
**Backend**:
- Python 3.11.4
- FastAPI 0.104.0
- SQLAlchemy 2.0
- Celery (비동기 작업)
**Database**:
- PostgreSQL 15.3 (Docker)
- Redis (Celery 브로커)
**Infra**:
- Docker Compose (로컬 개발)
- AWS ECS (프로덕션)
- GitHub Actions (CI/CD)
---
## 🚀 설치 가이드 (30분 예상)
### Step 1: 저장소 클론 (이미 완료)
```bash
# 현재 위치 확인
pwd
# /home/claude/data-pipeline-v2
# 1. Drive 템플릿 다운로드
# (수동) Google Drive에서 ".env.template" 다운로드
# 링크: https://drive.google.com/file/d/abc123
# 2. .env 파일 생성
cp .env.template .env
# 3. 필수 값 입력 (Notion 문서 참조)
nano .env
Notion 문서에 따르면 필수 값:
# Database (로컬 개발용)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/data_pipeline_dev
# Redis
REDIS_URL=redis://localhost:6379/0
# API Keys (팀 리드에게 요청)
EXTERNAL_API_KEY={팀_리드에게_문의}
SLACK_WEBHOOK_URL={팀_리드에게_문의}
# PostgreSQL + Redis 실행
docker-compose up -d postgres redis
# 상태 확인
docker ps
예상 출력:
CONTAINER ID IMAGE STATUS PORTS
abc123 postgres:15 Up 10 seconds 0.0.0.0:5432->5432/tcp
def456 redis:7-alpine Up 8 seconds 0.0.0.0:6379->6379/tcp
# 가상환경 생성
python -m venv .venv
# 활성화
source .venv/bin/activate
# 확인 (가상환경 프롬프트 표시)
which python
# /home/claude/data-pipeline-v2/.venv/bin/python
# pip 업그레이드
pip install --upgrade pip
# 의존성 설치
pip install -r requirements.txt
# 개발 도구 설치
pip install -r requirements-dev.txt
# 확인
pip list | grep fastapi
# fastapi 0.104.0
# Alembic 마이그레이션 실행
alembic upgrade head
# 확인
psql $DATABASE_URL -c "\dt"
예상 출력:
Schema | Name | Type | Owner
--------+-----------------+-------+----------
public | data_sources | table | postgres
public | processed_data | table | postgres
public | alembic_version | table | postgres
# 서버 시작
uvicorn app.main:app --reload --port 8000
# 별도 터미널에서 Celery Worker 실행
celery -A app.celery_app worker --loglevel=info
확인 방법:
curl http://localhost:8000/healthDocker 설정, 환경변수, 트러블슈팅
시스템 구조, 데이터 흐름, 주요 컴포넌트
데이터베이스 스키마 시각화
엔드포인트, 요청/응답 형식, 인증
기술 질문:
환경 설정 문제:
긴급 상황:
Gmail에서 발견한 온보딩 스레드:
John이 작성한 상세 체크리스트
지금 바로 (30분):
오늘 안에 (2시간):
이번 주 안에 (5시간):
"Cannot connect to PostgreSQL"
→ docker ps 확인, 컨테이너 재시작: docker-compose restart postgres
"ModuleNotFoundError"
→ 가상환경 활성화 확인: which python
"Alembic migration failed" → Notion: 마이그레이션 트러블슈팅
그 외 문제 → Slack #data-pipeline 채널에 질문 → 또는 이 채팅에서 물어보세요! (로컬 환경 자동 스캔하여 답변)
Day 1 (오늘):
Day 2-3:
Day 4-5:
환영합니다! 🎉
추가 질문 있으면 언제든 물어보세요. 로컬 환경을 자동으로 스캔하여 맞춤형 답변을 드리겠습니다.
---
### Example 4: 데이터베이스 연결 실패
**사용자 입력**:
psycopg2.OperationalError: could not connect to server: Connection refused
**AI 자동 진단 및 응답**:
```markdown
## 🔍 진단 결과
**에러 원인**: PostgreSQL 서버가 실행되지 않거나 연결 정보가 올바르지 않음
**로컬 환경 확인 결과**:
```bash
# Docker 컨테이너 상태
$ docker ps
CONTAINER ID IMAGE STATUS PORTS
(빈 출력 - 실행 중인 컨테이너 없음)
# 포트 5432 사용 여부
$ lsof -i :5432
(빈 출력 - 포트 사용 중 아님)
# .env 파일 확인
$ cat .env | grep DATABASE_URL
DATABASE_URL=postgresql://postgres:password@localhost:5432/mydb
발견된 이슈:
# 1. PostgreSQL 컨테이너 실행
docker-compose up -d postgres
# 2. 상태 확인
docker ps
# 3. 로그 확인 (문제 있을 시)
docker logs postgres
# 4. 연결 테스트
psql $DATABASE_URL -c "SELECT version();"
예상 결과: PostgreSQL 버전 정보 출력
# macOS
brew install postgresql@15
brew services start postgresql@15
# Ubuntu/Debian
sudo apt install postgresql-15
sudo systemctl start postgresql
# 연결 테스트
psql -U postgres -h localhost -c "SELECT version();"
파일: docker-compose.yml
version: '3.8'
services:
postgres:
image: postgres:15-alpine
container_name: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
실행:
docker-compose up -d
내부 문서:
외부 문서:
---
### Example 5: 포트 충돌
**사용자 입력**:
Error: listen EADDRINUSE: address already in use :::3000
**AI 응답**:
```markdown
## 🔍 진단 결과
**에러 원인**: 포트 3000이 이미 다른 프로세스에서 사용 중
**로컬 확인 결과**:
```bash
$ lsof -i :3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 42156 user 23u IPv6 0x1234 0t0 TCP *:3000 (LISTEN)
발견된 이슈:
# PID로 프로세스 종료
kill 42156
# 또는 강제 종료
kill -9 42156
# 확인
lsof -i :3000
# (빈 출력 = 포트 해제됨)
# 서버 재시작
npm run dev
# 환경변수로 포트 변경
PORT=3001 npm run dev
# 또는 .env 파일 수정
echo 'PORT=3001' >> .env
npm run dev
파일: scripts/kill-port.sh
#!/bin/bash
PORT=${1:-3000}
lsof -ti:$PORT | xargs kill -9 2>/dev/null || echo "Port $PORT is free"
사용:
chmod +x scripts/kill-port.sh
./scripts/kill-port.sh 3000
npm run dev
package.json에 자동화 추가:
{
"scripts": {
"predev": "lsof -ti:3000 | xargs kill -9 2>/dev/null || true",
"dev": "next dev"
}
}
이렇게 하면 npm run dev 실행 시 자동으로 포트를 정리합니다.
---
## 🔧 Implementation Details
### Required Tools
**필수 MCP 도구**:
```markdown
1. bash_tool
- 목적: 로컬 명령어 실행
- 사용: 파일 탐색, 버전 확인, 프로세스 관리
2. view
- 목적: 파일 내용 읽기
- 사용: 설정 파일, 코드, 문서 확인
3. create_file
- 목적: 파일 생성/수정
- 사용: 스크립트 생성, 설정 파일 수정
4. notion-search
- 목적: Notion 워크스페이스 검색
- 사용: 프로젝트 문서, 트러블슈팅 가이드 검색
5. google_drive_search
- 목적: Google Drive 파일 검색
- 사용: 설정 템플릿, 다이어그램 검색
6. search_gmail_messages
- 목적: Gmail 이메일 검색
- 사용: 과거 기술 논의, 해결 사례 검색
project-root/
├── /home/claude/ # 작업 디렉토리
│ ├── README.md # 프로젝트 개요
│ ├── .env.example # 환경변수 템플릿
│ ├── .env # 실제 환경변수 (스캔됨)
│ ├── package.json # Node.js 프로젝트
│ ├── requirements.txt # Python 프로젝트
│ ├── docker-compose.yml # 인프라 설정
│ └── ...
| Phase | 목표 시간 | 실제 평균 |
|-------|---------|---------|
| Context Collection | 30초 | 25초 |
| Stack Detection | 1분 | 45초 |
| Configuration Audit | 1분 | 55초 |
| Knowledge Search | 2분 | 2분 10초 |
| Error Diagnosis | 2분 | 1분 50초 |
| Solution Generation | 1분 | 1분 5초 |
| **총합** | **7.5분** | **7분** |
## 개발 지원 모드 활성화
### 필수 프로세스
Claude는 다음 상황에서 항상 로컬 환경을 스캔합니다:
1. 에러 메시지 포함 질문
2. "프로젝트", "환경", "설정" 키워드
3. 코드 작성/수정 요청
4. 배포/빌드 관련 질문
### 금지 사항
- ❌ 로컬 확인 없이 일반적 답변
- ❌ "보통은 이렇게 합니다" 추상적 조언
- ❌ 실행 불가능한 의사 코드
### 권장 사항
- ✅ 항상 bash_tool로 실제 상태 확인
- ✅ Notion/Drive에서 프로젝트 문서 우선 검색
- ✅ Gmail에서 과거 해결 사례 참조
- ✅ 실행 가능한 구체적 커맨드 제공
1. **파일 접근 제한**
- /home/claude 디렉토리만 접근 가능
- 시스템 파일(/etc, /usr) 접근 불가
2. **명령어 제한**
- sudo 권한 없음
- 시스템 설정 변경 불가
3. **네트워크 제한**
- 외부 API 호출 가능
- 로컬 네트워크 스캔 불가
4. **도구 의존성**
- Notion/Drive/Gmail 연동 필수
- MCP 서버 실행 필요
1. **민감 정보 처리**
- .env 파일 내용을 응답에 직접 포함 금지
- API 키, 비밀번호는 마스킹 처리
- 프로덕션 DB 정보는 별도 요청 안내
2. **파일 수정 시**
- 항상 백업 권장
- 중요 파일 수정 전 확인 요청
- git commit 전 변경사항 리뷰
3. **외부 공유 시**
- 민감 정보 제거 후 Notion 업데이트
- Gmail 공유 시 수신자 확인
**매주 월요일 자동 실행 스크립트**:
```bash
#!/bin/bash
# scripts/weekly-health-check.sh
echo "=== 프로젝트 헬스체크 $(date) ==="
# 1. 의존성 업데이트 확인
echo "\n1. 의존성 상태"
npm outdated || pip list --outdated
# 2. 보안 취약점
echo "\n2. 보안 스캔"
npm audit || pip-audit
# 3. 미사용 패키지
echo "\n3. 미사용 의존성"
npx depcheck || pip-autoremove --dry-run
# 4. Git 상태
echo "\n4. Git 상태"
git status --short
# 5. Docker 컨테이너
echo "\n5. 컨테이너 상태"
docker ps --all
# 6. 디스크 사용량
echo "\n6. node_modules 크기"
du -sh node_modules 2>/dev/null || du -sh .venv 2>/dev/null
Cron 등록:
# crontab -e
0 9 * * 1 /path/to/scripts/weekly-health-check.sh > /tmp/health-check.log 2>&1
### 2. 에러 로그 자동 아카이빙
```markdown
**에러 해결 후 자동 문서화**:
#### Notion 페이지 생성 템플릿
```markdown
---
title: "[{날짜}] {에러명} 해결 가이드"
tags: troubleshooting, {프로젝트명}, {기술스택}
---
## 🔴 에러 상황
**발생 날짜**: {timestamp}
**발생 환경**: {로컬/스테이징/프로덕션}
**영향 범위**: {영향받은 기능}
## 🔍 원인 분석
{진단 결과 요약}
## ✅ 해결 방법
{실제 적용한 해결책}
## 📊 재발 방지
{적용한 예방 조치}
## 📚 관련 자료
- Gmail: {관련 이메일 스레드}
- Notion: {관련 문서}
- 외부: {참고한 Stack Overflow/GitHub}
제목: [해결] {에러명} - {프로젝트명}
수신: team-dev@company.com
안녕하세요,
{에러명} 이슈를 해결했습니다.
**원인**: {1줄 요약}
**해결**: {1줄 요약}
자세한 내용은 Notion 페이지를 참고해주세요:
{Notion 링크}
감사합니다.
### 3. AI 코드 리뷰 통합
```markdown
**Pull Request 생성 전 자동 체크**:
#### 실행 순서
1. 린팅 확인
```bash
bash_tool: npm run lint || echo "Lint errors found"
테스트 실행
bash_tool: npm test || pytest
Notion에서 코딩 컨벤션 확인
notion-search: {
query: "{프로젝트명} coding convention style guide",
query_type: "internal"
}
Gmail에서 유사 PR 리뷰 검색
search_gmail_messages: {
q: "{프로젝트명} pull request review feedback"
}
자동 리뷰 코멘트 초안 생성
## 📝 자동 리뷰 체크리스트
- [ ] 린팅 통과
- [ ] 테스트 커버리지 80% 이상
- [ ] 코딩 컨벤션 준수 (Notion 기준)
- [ ] 관련 문서 업데이트 (README/API 명세)
- [ ] 마이그레이션 스크립트 포함 (DB 변경 시)
## 🔍 과거 유사 PR 리뷰 참고
{Gmail에서 발견한 리뷰 코멘트 요약}
---
## 📊 Quality Metrics
### 스킬 품질 점수: 92/100 (A등급)
```markdown
| 평가 항목 | 배점 | 획득 점수 | 비고 |
|---------|------|----------|------|
| **완결성** (필수 섹션) | 30점 | 30점 | 7개 섹션 모두 포함 ✅ |
| **실용성** (예시 개수) | 25점 | 25점 | 5개 상세 예시 ✅ |
| **문서화** (매개변수 설명) | 15점 | 13점 | 일부 고급 옵션 추가 가능 |
| **일관성** (구조/형식) | 10점 | 10점 | 표준 구조 준수 ✅ |
| **전문성** (도메인 지식) | 10점 | 9점 | 더 많은 언어 지원 가능 |
| **확장성** (고급 기능) | 10점 | 5점 | 3개 고급 기능 포함 |
| **총점** | **100점** | **92점** | **A등급** |
1. **추가 언어 지원** (+3점)
- Ruby, PHP, Swift 프로젝트 감지
2. **고급 기능 확장** (+3점)
- CI/CD 파이프라인 통합
- 클라우드 리소스 상태 확인
3. **매개변수 문서화 강화** (+2점)
- 모든 bash_tool 명령어에 대한 상세 설명
**v1.0.0** (2025-01-XX) - Initial Release
- 로컬 환경 스캔 (6단계)
- 5가지 에러 타입 자동 진단
- Notion/Drive/Gmail 통합 검색
- 5개 상세 실전 예시
**Roadmap (v1.1.0)**:
- [ ] Visual Studio Code 확장 통합
- [ ] Jira/Linear 이슈 자동 생성
- [ ] Slack 알림 연동
- [ ] 다국어 지원 (한국어/일본어)
**License**: MIT License
**Credits**:
- MCP (Model Context Protocol) by Anthropic
- 45개 프롬프트 엔지니어링 논문 (2022-2025)
- 오픈소스 커뮤니티 피드백
**Contributing**:
이 스킬에 대한 개선 제안을 환영합니다.
- GitHub: [claude-skills/local-dev-context]
- Notion: 팀 내부 피드백 페이지
1. **명확한 에러 메시지 제공**
✅ 좋은 예: "ModuleNotFoundError: No module named 'numpy' 에러가 발생했어요"
❌ 나쁜 예: "안 돼요"
2. **컨텍스트 제공**
✅ 좋은 예: "배포하려는데 Docker 빌드가 실패해요"
❌ 나쁜 예: "Docker 안 돼요"
3. **구체적인 요청**
✅ 좋은 예: "이 프로젝트의 환경변수 설정 방법 알려줘"
❌ 나쁜 예: "설정 어떻게 해?"
4. **후속 질문 활용**
✅ 좋은 예: "해결 방법 1번 실행했는데 다른 에러가 나요: [새 에러 메시지]"
(AI가 컨텍스트를 유지하며 연속 진단 가능)
1. **Notion 트러블슈팅 페이지 체계화**
프로젝트명/ ├── Troubleshooting/ │ ├── 환경 설정 에러/ │ ├── 의존성 충돌/ │ ├── 배포 이슈/ │ └── 데이터베이스/
2. **Gmail 라벨 활용**
- 라벨: "기술-{프로젝트명}"
- 라벨: "해결완료"
- 자동 검색 시 정확도 향상
3. **Drive 폴더 구조 표준화**
{프로젝트명}/ ├── Docs/ │ ├── Setup/ │ ├── Architecture/ │ └── Troubleshooting/ ├── Templates/ │ └── .env.template
축하합니다! 🎉
이제 "로컬 개발 환경을 완전히 이해하는 AI 개발 어시스턴트"가 준비되었습니다.
더 이상 일반적인 Stack Overflow 답변이 아닌, 당신의 프로젝트에 특화된 정확한 솔루션을 받을 수 있습니다.