기술

Ralph Loop, 클로드코드를 밤새도록 돌리는 방법

2026.03.306분 읽기

"다 했습니다" — 이 말이 제일 문제였다

AI 코딩 도구를 쓰다 보면 꼭 마주치는 순간이 있습니다. 복잡한 작업을 시켰는데 AI가 중간쯤에서 "완료했습니다"라고 멈춰버리는 거죠.

코드 절반만 짜놓고 끝났다고 하거나, 테스트도 안 돌려보고 "이제 확인해보세요"라고 넘기거나. 이건 Claude Code 같은 코딩 도구만의 문제가 아닙니다.

ChatGPT든 Claude든, 대화가 길어지면 앞에서 한 얘기를 슬쩍 빠뜨리거나 품질이 떨어지는 건 누구나 겪는 현상이거든요.

"아까 말한 조건 왜 빠졌어?" 하고 다시 짚어줘야 하는 그 순간요.

호주 개발자 Geoffrey Huntley는 이 문제를 정면으로 뚫는 방법을 만들었습니다. 이름은 Ralph Loop. 심슨 가족의 Ralph Wiggum에서 따왔더라고요.

철학이 재미있습니다 — "멍청하고, 사랑스럽고, 절대 포기하지 않는다."

1.jpeg


놀랍도록 단순한 구조

Ralph Loop의 실체는 bash 한 줄입니다.

while :; do cat PROMPT.md | claude-code ; done

같은 프롬프트 파일을 Claude Code에 무한 반복으로 먹이는 거죠.
이게 전부냐고요? 네, 이게 전부입니다.

다만 이 단순한 루프가 작동하는 이유를 뜯어보면, AI를 다루는 데 꽤 중요한 원리가 숨어 있습니다.


대화는 리셋하고, 결과물은 남긴다

LLM은 대화가 길어질수록 성능이 떨어집니다. 컨텍스트 윈도우라는 "작업 메모리"에 이전 대화가 쌓이면서, 정작 중요한 정보에 집중하지 못하게 되거든요.

Huntley에 따르면 Claude 기준으로 광고상 200K 토큰이지만, 실제로 품질이 유지되는 건 147~152K 부근이라고 합니다.

그 이상 넘어가면 앞쪽 맥락을 흘리기 시작하는 거죠.

Ralph Loop은 이 문제를 아주 직관적으로 해결합니다.
매 루프마다 대화를 완전히 리셋합니다. 이전 시행착오, 실패 로그 같은 게 컨텍스트에 쌓이지 않거든요.

그런데 코드, 파일, git 커밋은 그대로 남아 있습니다.
새 루프가 시작되면 AI는 변경된 코드베이스를 읽고, "여기까지 됐으니 다음 걸 하자"고 판단해서 이어 작업합니다.

비유하자면 이런 겁니다.
매번 새 사람이 와서 일을 하는데, 이전 사람과 대화한 기억은 없습니다.
대신 책상 위에 놓인 작업 결과물은 그대로 보이거든요.
새 사람은 그 결과물을 보고 자연스럽게 다음 작업을 이어갑니다.

기억을 대화가 아니라 산출물에 저장하는 구조인 셈이죠.

여기에 Claude Code의 Stop Hook이라는 기능이 더해집니다. AI가 "끝났습니다" 하고 멈추려 하면, Hook이 종료를 차단하고 같은 프롬프트를 다시 주입합니다. 진짜 완료 조건을 충족할 때까지 이 과정이 반복되는 거죠.

2.jpeg


프롬프트 설계가 전부다

Ralph Loop을 효과적으로 쓰려면 몇 가지 운영 원칙이 있습니다.

한 루프에 한 가지만 시킨다.
프롬프트에 "가장 중요한 걸 골라서 하나만 해라"라고 명시하는 겁니다.
컨텍스트 윈도우를 최대한 아껴야 품질이 유지되거든요.
여러 작업을 한꺼번에 시키면 컨텍스트가 빠르게 차서 성능이 떨어집니다.

스택을 매 루프마다 동일하게 할당한다.
매번 같은 스펙 파일과 작업 계획서를 프롬프트에 포함시킵니다.
AI가 루프를 돌 때마다 "지금 뭘 해야 하는지" 같은 출발점에서 시작하도록 만드는 거죠.

놀이터를 먼저 만들고, 실패할 때마다 표지판을 세운다.
Huntley의 비유가 인상적이더라고요.

처음엔 가드레일 없이 돌립니다. AI가 미끄럼틀에서 뛰어내리면(= 잘못된 방향으로 가면), "미끄러져 내려와, 뛰지 마"라는 지시를 프롬프트에 추가합니다.

기타 튜닝하듯 프롬프트를 점진적으로 정교하게 다듬어가는 방식입니다.
완벽한 프롬프트를 처음부터 만들려는 게 아니라, 실패를 관찰하고 하나씩 보완하는 거죠.

3.jpeg


이것만은 조심해야 한다

Ralph Loop이 만능은 아닙니다. 몇 가지 주의할 점이 있거든요.

무한 루프이므로 안전장치가 필수입니다.
max-iterations(최대 반복 횟수), rate limiting(API 호출 제한), circuit breaker(이상 감지 시 자동 중단) 같은 장치 없이 돌리면 API 비용이 끝없이 나갈 수 있습니다.

프롬프트를 그대로 복사해도 같은 결과가 나오지 않습니다.
Huntley 본인도 "내 프롬프트를 가져가도 같은 결과를 못 낸다"고 말합니다.
프롬프트는 프로젝트별로 실패를 관찰하면서 튜닝한 결과물이기 때문이죠.

멀티 에이전트는 아직 이른 단계입니다.
여러 AI를 동시에 돌리는 건 매력적으로 들리지만, Huntley는 "비결정적인 마이크로서비스를 상상해보라"고 경고합니다.


단일 프로세스, 단일 저장소에서 한 가지씩 처리하는 게 현재로선 가장 안정적이더라고요.


코딩 너머의 교훈

Ralph Loop으로 실제 어떤 결과가 나왔는지 보면 놀랍습니다. YC 해커톤에서 밤새 6개 저장소를 완성했고, API 비용은 총 $297이었습니다.


Huntley 본인은 3개월간 Ralph를 돌려 CURSED라는 새 프로그래밍 언어를 만들었는데, 이 언어는 LLM 학습 데이터에 없었는데도 Ralph가 이 언어로 프로그래밍까지 해냈다고 합니다.

현재는 Anthropic 공식 Claude Code 플러그인으로 등록되어 있습니다.

하지만 이 기법에서 가장 인상적인 건 코딩 결과가 아니라 원리 쪽이었습니다.

"대화를 짧게 끊고, 결과물을 누적하라."

이건 코딩 에이전트만의 이야기가 아니거든요.

AI에게 긴 보고서를 한 번에 시키는 것보다 섹션별로 끊어서 시키는 게 낫고, 이전 결과물을 다음 프롬프트에 넘겨주는 게 낫다는 건 같은 원리입니다.

컨텍스트 윈도우를 가볍게 유지하면서 산출물로 맥락을 이어가는 것.
AI를 잘 쓰는 사람과 그렇지 않은 사람의 차이가 결국 이 한 가지에서 갈리는 것 같습니다.

#RalphLoop#ClaudeCode#AI코딩#컨텍스트윈도우#프롬프트엔지니어링#AI자동화#AI전환기