Ralph 플러그인의 기본 개념을 소개합니다. 심슨의 랄프 캐릭터에서 영감을 받아, 동일한 프롬프트를 AI에게 반복 실행하게 해 미완료 작업을 강제 수정하도록 설계되었습니다.
[00:00]
심슨 가족의 멍청한 캐릭터 랄프 위검에서 영감을 받은 클로드 코드 플러그인을 소개합니다. 이 플러그인은 작업이 완료될 때까지 같은 프롬프트를 반복 실행하는 끈질긴 특성을 가지고 있어, 너무 일찍 포기하는 게으른 모델들에게 완벽합니다.
Goat farmer라는 별칭의 Jeffrey Huntley가 제안한 무한 Bash while 루프 기법을 설명합니다. 에이전트에게 같은 프롬프트를 계속 되돌려줘 완전한 결과를 얻어내는 아이디어가 시작점입니다.
[00:33]
랄프의 아이디어는 염소 농부 제프리 헌틀리가 고안한 무한 bash while 루프 기술에서 시작되었습니다. 프롬프트를 받아 에이전트에게 주고, 응답을 받은 후 똑같은 프롬프트를 다시 반복하는 간단하지만 강력한 방식입니다. 명확한 완료 기준과 신호를 주면 밤새 실행해두고 아침에 완료된 작업을 확인할 수 있습니다.
MVP를 $300 미만으로 구현한 사례, YC 해커톤에서 여섯 개의 리포지토리를 밤새 배포한 경험, 자체 프로그래밍 언어를 3개월 만에 개발한 기록 등 실제 활용 성과를 나열합니다.
[01:15]
제프가 강연에서 소개한 후, 한 엔지니어가 이 기술로 300달러 미만으로 MVP를 완성했는데 외부업체 고용 시 5만 달러가 들었을 작업이었습니다. YC 해커톤에서는 repo mirror 팀이 하룻밤에 6개 레포지토리를 출시했고, 그 중에는 browser use를 Python에서 TypeScript로 완전히 다시 작성한 것도 포함되었습니다. 또한 3개월 안에 새 프로그래밍 언어를 처음부터 만드는 데도 활용되었습니다.
Anthropic팀이 단순 스크립트를 플러그인으로 통합한 과정을 다룹니다. /ralph 명령어, 상태 파일 생성, stop hook 연동 방식 등을 통해 Claude Code 환경에 정교하게 녹아든 구조를 설명합니다.
데모용 Python 오디오 지연 스크립트를 TypeScript로 변환하는 과정을 시연합니다. 프롬프트와 완료 약속, MD 파일에 passing tests 지시를 설정한 뒤, 자동 반복 개선 과정을 보여줍니다.
[01:56]
Anthropic 팀은 단순한 bash 스크립트가 아닌 클로드 코드에 제대로 통합된 시스템을 구축했습니다. 랄프 슬래시 명령어를 입력하고 완료 기준과 최대 반복 횟수를 설정하면 상태 파일이 생성됩니다. bash 루프 대신 클로드 스톱 훅을 사용해서 작업 완료 시점을 체크하고, 완료 약속을 찾을 수 없으면 같은 프롬프트를 다시 실행하도록 트리거합니다.
[02:39]
Python에서 TypeScript로 스크립트를 변환하는 Ralph 플러그인의 실제 데모를 시작합니다. 마이크 오디오 지연 스크립트를 예시로 사용하며, 완료 조건을 'done'으로 설정하여 실행합니다.
데모 결과를 확인해봅니다. 변환된 TypeScript 코드가 오디오 장치를 정확히 감지하고, Bun 테스트 모듈을 활용해 작성된 테스트가 모두 통과되는 과정을 설명합니다.
[02:41]
클로드는 돌아가서 자신이 생성한 코드를 검토하고 놓친 부분이 있다면 프롬프트를 바탕으로 개선합니다.
[02:55]
기존 코딩 에이전트와 달리 Ralph는 생성된 코드의 일부가 작동하지 않을 때 자동으로 테스트를 작성하고 실행하여 통과할 때까지 반복 개선합니다. 실제로 TypeScript로 변환된 스크립트가 오디오 장치를 정상적으로 탐지하고 bun 테스트까지 생성하는 것을 확인할 수 있습니다.
비용 효율을 고려한 max iterations 옵션 사용법을 소개합니다. 무한 반복으로 인한 과도한 API 요금 발생을 방지하기 위해 최대 반복 횟수를 설정하는 방법을 보여줍니다.
[03:25]
Ralph 사용 시 비용 관리의 중요성을 강조합니다. 비싼 Claude 플랜이나 API 사용 시 최대 반복 플래그로 무한 루프를 방지하고 반복 횟수를 제한하여 예상치 못한 높은 청구서를 피할 수 있습니다.
[03:51]
Ralph 플러그인 사용 시 고려사항들을 설명합니다. 명확한 완료 기준 설정, 복잡한 작업의 점진적 분해, 인간 판단이 필요한 작업 제외 등이 중요합니다. beads와 같은 도구와 함께 사용하면 더 효과적일 것이라고 제안합니다.
효과적인 사용을 위한 팁과 주의사항을 제시합니다. 명확한 완료 기준 설정, 복잡 작업 분할, 인간 판단이 필요한 작업 회피, beads와 같은 단계별 관리 도구와의 조합을 추천합니다.
[04:13]
구독자 10만 명 달성이 임박했음을 알리며 시청자들에게 구독을 요청하는 마무리 멘트를 합니다.
영상 마무리로 구독 안내를 전합니다. 100K 구독 목표를 언급하며, 채널 구독을 부탁합니다.
[00:00]
이 캐릭터는 랄프 위검으로, 심슨 가족에서
[00:02]
가장 멍청한 캐릭터로 여겨지지만
[00:04]
똑똑한 클로드 코드 플러그인의 영감이 되었습니다.
[00:06]
이 플러그인은 클로드가 작업을 완료할 때까지
[00:08]
똑같은 프롬프트를 계속해서 반복 실행하도록 설계되었습니다.
[00:10]
실패해도 계속 시도하죠.
[00:12]
순진하지만 끈질긴 지속성이 특징입니다.
[00:15]
너무 일찍 포기하고 작업을 완료하지 않는
[00:17]
게으른 모델들에게 완벽합니다.
[00:19]
그런데 Anthropic은 왜 이걸 만들었을까요?
[00:22]
그리고 같은 프롬프트를 계속 실행하면
[00:24]
돈이 많이 들지 않을까요?
[00:26]
알아보겠습니다.
[00:28]
그 전에 구독 버튼 눌러주세요.
[00:30]
[00:32]
클로드 코드에서 랄프를 사용하기 전에
[00:34]
이 아이디어가 어디서 나왔는지 이해해야 합니다.
[00:36]
꽤 이상한 이야기거든요.
[00:39]
염소 농부 제프리 헌틀리가
[00:41]
실제 염소 농부는 아닌 것 같지만요,
[00:43]
어쨌든 그건 중요하지 않고
[00:45]
올해 초에 랄프라는 기술을 고안했습니다.
[00:47]
본질적으로는 무한 bash while 루프로
[00:49]
프롬프트를 받아 에이전트에게 주고
[00:52]
응답을 기다린 후
[00:54]
에이전트에게 똑같은 프롬프트를
[00:56]
다시 줍니다.
[00:58]
AMP로 프롬프트를 실행하는 것은 이런 모습이고
[01:00]
클로드 코드로 사용하는 것은 이런 모습입니다.
[01:02]
간단하지만 매우 강력합니다.
[01:04]
에이전트에게 명확한 완료 기준과
[01:06]
완료 신호를 주면
[01:08]
기본적으로 밤새 실행시켜 두고
[01:10]
아침에 일어나면 작업이
[01:12]
완료되어 있을 수 있습니다.
[01:14]
제프가 강연에서 이 기술에 대해 말했고
[01:16]
한 엔지니어가 많은 에이전트와 함께 이 기술을 사용해
[01:19]
300달러 미만으로 MVP를 전달, 검토, 테스트했습니다.
[01:21]
외부 업체에 맡겼다면 5만 달러가 들었을 일이죠.
[01:24]
YC 해커톤에서는 repo mirror 팀이
[01:27]
이걸 사용해 하룻밤에 6개의 다른 레포지토리를 출시했습니다.
[01:29]
그중 하나는 browser use를
[01:31]
Python에서 TypeScript로 완전히 다시 작성한 것이었고
[01:33]
창립자를 웃게 만들었습니다.
[01:35]
또한 3개월 안에 새로운 프로그래밍 언어를
[01:38]
처음부터 만드는 데도 사용되었습니다.
[01:41]
제가 언제든지 사용할 계획이 있는
[01:43]
언어는 아니라고 해두겠습니다.
[01:45]
하지만 Anthropic 팀이 한 줄짜리 bash 스크립트를 작성해서
[01:47]
그걸 플러그인으로 바꿨다고 생각한다면
[01:49]
큰 오산입니다. 팀은 이걸 클로드 코드에
[01:51]
제대로 통합하기 위해 많은 작업을 했거든요.
[01:53]
작동 방식은 랄프 슬래시 명령어를 입력하고
[01:55]
완료 기준과 함께 프롬프트를 주는 것입니다.
[01:57]
완료나 완료됨으로 설정할 수 있고
[01:59]
최대 반복 횟수도 추가할 수 있습니다.
[02:00]
나중에 더 자세히 다루겠습니다.
[02:02]
이 정보를 사용해 실행을 시작할 때
[02:04]
상태 파일을 만듭니다.
[02:07]
bash 루프에 의존하는 대신
[02:08]
클로드 스톱 훅을 사용합니다.
[02:10]
이 비디오에서 모든 것을 배울 수 있습니다.
[02:12]
기본적으로 스톱 훅은 보통
[02:14]
클로드 코드가 작업을 완료했을 때 실행되고
[02:16]
이 경우에는 상태 파일을 전달해서
[02:18]
활성 루프를 확인합니다.
[02:20]
최신 출력을 읽고 완료 약속을 찾을 수 없으면
[02:23]
클로드가 같은 프롬프트를
[02:25]
다시 실행하도록 트리거합니다.
[02:27]
그래서 클로드는 돌아가서 자신이 생성한 코드를 보고
[02:29]
놓친 부분이 있다면 프롬프트를 바탕으로
[02:31]
개선합니다.
[02:33]
[02:35]
[02:37]
[02:39]
간단한 데모를 보여드리겠습니다. 이것은
[02:41]
제가 녹음할 때 마이크 오디오를 지연시키는데
[02:43]
사용하는 Python 스크립트입니다. 만약 제가
[02:45]
이 Python 스크립트를 TypeScript로
[02:47]
변환하고 싶다면, Ralph를 사용해서
[02:49]
프롬프트와 파일을 입력하고
[02:51]
완료 조건을 'done'으로 설정할 수 있습니다.
[02:53]
엔터를 눌러서 실행시켜보겠습니다. 보통
[02:55]
Ralph 없이 코딩 에이전트에서 이걸 실행하면
[02:57]
에이전트가 작업을 완료하고
[02:59]
코드를 생성해주지만
[03:01]
코드의 일부분이 작동하지 않을 것입니다. 하지만
[03:04]
다행히 제 프롬프트 MD 파일에
[03:06]
통과하는 테스트를 작성하라고 지시했습니다. 그래서
[03:08]
테스트를 작성하고 실행해서
[03:10]
스크립트가 통과할 때까지
[03:12]
반복할 것입니다. 이 과정을 빨리 돌려보겠습니다.
[03:14]
이제 스크립트를 실행해보면
[03:16]
제대로 작동하면서 제
[03:17]
오디오 장치들을 탐지하고 있습니다. 그리고 모든 것이
[03:19]
제가 요청한 대로 TypeScript로 작성되었습니다.
[03:21]
심지어 bun 테스트 모듈을 사용한
[03:24]
테스트도 생성했습니다. 이것은 여러분이
[03:25]
매우 비싼 Claude 플랜을 사용하거나
[03:27]
API 기반 가격에서 충분한 예산이 있다면 좋습니다.
[03:30]
하지만 Opus 같은
[03:31]
비싼 모델을 사용하면서
[03:33]
아침에 일어나서 엄청난 청구서를 보고 싶지 않다면
[03:36]
여기서 최대 반복 플래그가
[03:38]
유용해집니다. 이것은 여러분이 설정한
[03:40]
숫자에서 반복을 중단시켜
[03:42]
무한 루프를 방지합니다. 정지 훅이 트리거되어
[03:44]
Claude가 프롬프트를 재실행할 때마다
[03:46]
최대 반복 횟수를 증가시키고
[03:48]
지정된 숫자에 도달하면
[03:49]
중단됩니다. 하지만 이것만이
[03:51]
Ralph 플러그인을 사용할 때
[03:53]
고려해야 할 유일한 것은 아닙니다.
[03:54]
명확한 완료 기준과 함께 사용해야 합니다.
[03:56]
그러니까 '좋게 만들어' 또는 '예쁘게 만들어'라고 하지 마세요.
[03:58]
복잡한 작업이 있다면
[04:00]
점진적인 단계로 나누고
[04:02]
인간의 판단이 필요한
[04:04]
작업에는 사용하지 마세요. 개인적으로
[04:06]
Ralph를 beads 같은 것과 함께 사용하면
[04:08]
점진적인 단계를 제공하고
[04:10]
올바른 경로를 유지하도록 해주어서 좋을 것 같습니다.
[04:12]
그런데 여러분도 눈치챘겠지만 우리가
[04:13]
구독자 10만 명 달성까지 1만 명도 채 남지 않았습니다.
[04:16]
정말 놀라운 일입니다. 그러니
[04:18]
아직 하지 않으셨다면
[04:21]
구독 버튼을 눌러주세요.
[04:23]