plugin 의 ralph 사용법을 구체적으로 알려줘. "메모장앱" 을 만드는 과정을 예제로 해서 만들어줘.

plugin 의 ralph 사용법을 구체적으로 알려줘. "메모장앱" 을 만드는 과정을 예제로 해서 만들어줘.

목록

https://github.com/dingcodingco/dingco-ralph-wiggum

Ralph Loop 플러그인 완전 가이드 — 메모장 앱 예제


🧠 Ralph Loop란?

"Ralph is a Bash Loop" — Geoffrey Huntley의 말처럼, Claude가 작업을 완료할 때까지 같은 프롬프트를 반복해서 자기 자신에게 먹이는 자율 개발 루프입니다.

핵심 원리는 Stop Hook으로 Claude의 종료 시도를 가로채서, 동일한 프롬프트를 다시 주입하는 방식입니다. 매 반복마다 Claude는 이전에 자신이 수정한 파일들을 보면서 점진적으로 개선합니다.

[사용자가 /ralph-loop 실행]
        
[Claude가 작업]
        
[Claude가 종료 시도]
        
[Stop Hook이 차단]
        
[같은 프롬프트 다시 주입] ←─────────┐
        ↓                            │
[Claude가 파일 변경 내용 보며 개선] ─┘
        
[완료 조건 충족 → 종료]

📋 기본 명령어 구조

/ralph-loop "프롬프트" --max-iterations N --completion-promise "완료텍스트"
옵션 설명 예시
"프롬프트" 작업 지시문 "메모장 앱 만들어줘"
--max-iterations 최대 반복 횟수 (필수!) --max-iterations 20
--completion-promise 완료 신호 텍스트 --completion-promise "DONE"
/cancel-ralph 루프 강제 중단

주의: --completion-promise정확한 문자열 매칭을 사용하므로, 여러 완료 조건에는 사용 불가합니다. 항상 --max-iterations를 주요 안전장치로 사용하세요.


🛠️ 실전 예제: Django 메모장 앱 만들기

Step 1. 프로젝트 초기화

mkdir memo-app && cd memo-app
git init          # ← 반드시 git 초기화! Ralph는 git 히스토리를 활용
claude            # Claude Code 실행

Step 2. 단계별 Ralph Loop 실행

복잡한 앱은 단계를 나눠서 실행하는 것이 효과적입니다.

🔵 Phase 1 — Django 프로젝트 기본 구조

/ralph-loop "
## 목표: Django 메모장 앱 Phase 1 - 프로젝트 기본 구조

### 요구사항:
- Django 5.x + PostgreSQL 프로젝트 생성
- 앱 이름: memos
- 모델: Memo (title, content, created_at, updated_at, is_pinned)
- requirements.txt 작성 (django, psycopg2-binary, python-decouple)
- .env.example 파일 작성
- settings.py PostgreSQL 연결 설정 (python-decouple 사용)

### 완료 조건:
- manage.py 존재
- memos/models.py 완성
- migrations 파일 생성됨
- 완료 시 반드시 출력: PHASE1_DONE
" --max-iterations 15 --completion-promise "PHASE1_DONE"

🔵 Phase 2 — CRUD 뷰 & URL

/ralph-loop "
## 목표: Django 메모장 앱 Phase 2 - CRUD 기능

### 요구사항:
- views.py: 목록(ListView), 상세(DetailView), 생성(CreateView), 수정(UpdateView), 삭제(DeleteView)
- urls.py 설정
- forms.py: MemoForm 작성
- 각 뷰에 로그인 필요 없음 (로그인 없는 버전)
- 핀 고정 토글 기능 (pin/unpin URL 추가)

### 완료 조건:
- 모든 URL 패턴 동작 확인
- 완료 시 반드시 출력: PHASE2_DONE
" --max-iterations 15 --completion-promise "PHASE2_DONE"

🔵 Phase 3 — 템플릿 & TailwindCSS UI

/ralph-loop "
## 목표: Django 메모장 앱 Phase 3 - UI 템플릿

### 요구사항:
- base.html: TailwindCSS CDN 포함, 반응형 레이아웃
- memos/list.html: 카드형 목록, 핀 고정 메모 상단 표시, 검색창
- memos/detail.html: 메모 내용 표시, 수정/삭제 버튼
- memos/form.html: 생성/수정 공용 폼
- 삭제 확인 모달 포함
- 빈 상태(메모 없을 때) UI 처리

### 완료 조건:
- templates/ 디렉토리에 모든 파일 존재
- 완료 시 반드시 출력: PHASE3_DONE
" --max-iterations 20 --completion-promise "PHASE3_DONE"

🔵 Phase 4 — 검색 & 테스트

/ralph-loop "
## 목표: Django 메모장 앱 Phase 4 - 검색 기능 & 테스트

### 요구사항:
- 제목/내용 검색 기능 구현 (Q 객체 사용)
- tests.py: 모델 테스트, 뷰 테스트 작성
- 테스트 커버리지 70% 이상
- python manage.py test 통과
- README.md 작성 (설치법, 실행법 포함)

### 완료 조건:
- python manage.py test 실행 시 모든 테스트 통과
- 완료 시 반드시 출력: ALL_DONE
" --max-iterations 20 --completion-promise "ALL_DONE"

✍️ 좋은 프롬프트 작성 핵심 원칙

Ralph Loop의 성공은 프롬프트 품질에 달려 있습니다. 명확하지 않은 지시는 무한 루프나 조기 종료를 유발합니다. 이진법 성공 기준명시적 완료 신호가 필요합니다.

❌ 나쁜 프롬프트:
"메모장 앱 만들어줘"

✅ 좋은 프롬프트:
"## 목표: 메모 CRUD 기능
### 요구사항:
- [구체적 항목 1]
- [구체적 항목 2]
### 완료 조건:
- [검증 가능한 조건]
- 완료 시 출력: DONE"

⚠️ 안전 수칙

  1. 항상 git 초기화 후 실행 — 롤백 가능한 히스토리 확보
  2. 샌드박스 환경 권장 — AFK 작업 시 Docker/VM 사용
  3. 코드 반드시 리뷰 — Ralph 출력물은 PR처럼 취급, 미검토 배포 금지
  4. 모니터링 설정 — tmux나 screen으로 장시간 세션 모니터링
# 긴급 중단
/cancel-ralph
# 또는
Ctrl + C

📊 언제 쓰고, 언제 쓰지 말아야 하나

✅ Ralph 적합 ❌ Ralph 부적합
명확한 스펙이 있는 기능 개발 판단이 필요한 설계 결정
대규모 리팩토링 짧은 단순 질문
테스트 커버리지 향상 실시간 피드백이 필요한 작업
반복적인 문서화 작업 보안에 민감한 작업
야간 자율 개발 (AFK) 첫 아키텍처 설계

💡 요약

1. git init (필수)
2. 단계별 프롬프트 작성 (구체적 요구사항 + 완료 신호)
3. /ralph-loop "..." --max-iterations 20 --completion-promise "DONE"
4. Claude가 자율 반복 작업
5. 완료  코드 리뷰
전체 메뉴
로그인이 필요합니다

SANGKI.COM의 모든 기능을 이용하시려면 로그인해주세요.