Skip to main content

Command Palette

Search for a command to run...

Ralph Loop (랄프 루프) 후기

Published
Ralph Loop (랄프 루프) 후기

랄프 루프에 대한 설명은 https://wikidocs.net/blog/@jaehong/6728/ <- 포스트를 참고. 내 포스트에서는 랄프 루프를 실제로 세팅한 방법과 후기를 간단하게 소개한다.

내가 선택한 구현체: 랄프 루프는 여러 구현체가 있다. claude 공식 마켓 플레이스에도 존재하지만, 나는 https://github.com/snarktank/ralph 이 구현체를 선택했는데, 마켓 플레이스 랄프 구현은 구체적인 실행 이전 핑퐁이 약간 느슨한 느낌이고, 이 외에 다른 github 구현체는 조건이 너무 덕지덕지 붙은 느낌이었다. 내가 선택한 snarktank의 구현체는 구조가 단순하기 때문에 닉값(ralph)을 잘 하는 느낌이라 골랐다. 이하 이 글에서 지칭하는 랄프 루프는 모두 snarktank의 구현체를 가리킨다.

-

git commit? git ignore?: 랄프 루프는 뭐 갑자기 클로드가 천지 개벽해서 완전히 다른 무언가가 되는 것이 아니라, 어쨌든 스킬을 추가하는 것이고, git repo directory 어딘가에, git ignore된 ralph 관련 폴더와 ralph 셸 스크립트를 넣어주면 끝이다. 그렇다. ralph 관련된 파일은 git ignore하는게 좋다.

내 생각에 랄프 루프는 에디터와 비슷하다. 랄프 루프와 비슷한 역할을 하는 에이전트 실행 프레임워크는 생각보다 많고, 자신이 속한 개발팀이 모두 랄프 루프를 쓰자고 통일하는 것은, 모두가 동일한 에디터를 써야한다고 주장하는 것과 같다. 누구는 IntelliJ를 쓰는 것이고, 누구는 neovim을 쓰는 정도의 물건이라는 것이다. (내가 여태까지 다닌 직장에서는) 그런 에디터적인 제약이 없었으니, 랄프 루프도 개인의 취향이라고 본다. 따라서 잘 세팅하고, 랄프 루프가 commit되지 않도록 하자.

-

실제 사용 워크 플로우는?: 터미널을 반 쪼개서 왼쪽에서 클로드 코드(이하 클코)를 실행한다 claude --dangerously-skip-permissions . (이걸 도대체 왜 쓰냐는 질문이 나올 것 같아서 아래 별도 섹션에서 서술). 실행된 클코의 bypass permissions on 모드에서 /prd 를 언급하며, 기능을 하나 만들자 / 버그 수정을 하자며 클코와 질답을 한다. 클코는 1. 박청호의 아들 이름으로 적절한 것은? A. 박은호 B. 바그너 C. 기타 와 같이 질문하고, 나는 1A로 대답하면 되는 식이다.

그렇게 적절한 핑퐁 뒤에는, /prd 스킬의 결과로 prd-cheongho-son.markdown과 같은 파일이 생성된다. 이 prd 문서를 내가 읽고, 각 user story & functional requirements 등에 대한 피드백, 그리고 마지막에 있는 open question 섹션에 대해 질답하고 싶은 정도로 질답하고, /ralph 스킬을 언급하며 해당 prd 문서를 prd.json으로 변환한다.

이후에는, 반으로 쪼개진 터미널 반대편에서 (i.e. 오른편에서), 랄프 루프를 실행한다. 최근 클코의 패치로 클로드 코드에서 클로드 코드를 호출하는 것이 허용되어서, 터미널 왼편의 클코 세션에서도 ralph.sh 를 실행하라고 하면 bg job으로 실행되긴 하지만, 나는 아직 관성적으로 오른편 터미널에서 랄프 루프 셸 스크립트를 실행한다.

이후, 셸 스크립트가 전부 실행됐으면, 다시 왼쪽의 클코 세션에서 /simplify 스킬을 돌리고, claude in chrome 스킬 또는 내가 직접 써보면서 prd에 명시된 변경이 이루어졌는지 검증한다. 이후, pr을 올리고 머지하면 끝.

-

플랜 모드보다 좋은 점?: 이 섹션의 제목을 다시 구성해보자면, 그래서 이걸 도대체 왜 씀?, 플랜 모드에서 핑퐁하고 실행하는 것과 도대체 무슨 차이임?

  • 내가 기억하는 플랜 모드의 역사와 의도: 일단 플랜 모드는 클로드가 좀 더 멍청할 때 부터 있던 기능이다. 아직 질답이 끝나지 않았는데, 혼자서 충분히 구현할 수 있겠다고 판단을 했는지, 유저의 허락없이 와장창 진행해버리는 것을 막기 위해 "일시 정지" 아이콘이 붙어있는 특수한 상태 모드로써 제안된 기능이다. 물론 그 뒤에 플랜을 제시하고 accept하면 세션 콘텍스트를 비우고 시작하느니 뭐니 기능이 붙긴 했지만, 초기 기획은 어쨌든 유저가 명시적으로 클코에게 CUD 동작하지 말라는 것을 명시하는 기능이었다.

그래서 클코는 플랜 모드에서 파일을 생성/수정하거나 수정/삭제를 하는 tool을 호출할 수 없다. 그리고 이게 날 점점 귀찮게 만든다. 플랜을 짜면서 이런 저런 핑퐁을 하며, tool 호출도 하는 것이 자연스러운데, 플랜 모드에서는 읽기만 할 수 있다는 제약이, 클로드 모델 체급이 이 정도로 높아진 상황에서 오히려 족쇄로 작용한다.

플랜이 한 번 생성되고, 그것에 대해서 핑퐁하는 것도 유저 경험이 좋지 않다. 특히 클코가 생성한 플랜의 길이가 매우 길어 스크롤이 되는 경우가 절망적이다. 클코가 제시한 플랜에 4번을 선택하고, 나의 피드백을 넣으면, 해당 피드백이 적용된 플랜이 처음부터 끝까지 다시 한 번 출력된다. 어디가 바뀌었는지 알기도 어렵고, 스크롤 하는 것도 고역이다.

이에 반해 랄프 루프의 /prd 스킬은 별도의 markdown 파일로 분리해냈기 때문에, 마크다운 뷰어를 띄워서 별도 창에서 볼 수 있으며, 1A, 2B로 답변한 내 입력에 대해 마크다운 파일의 diff view도 같이 보여주기 때문에, 전체 prd를 다 읽어보지 않고도 어떤 문장이 어떻게 바뀌었는지가 한 눈에 들어온다.

또한, 아스키 아트가 아무리 좋아도, mermaid로 그린 ERD, Flowchart 등이 훨씬 깔끔해서 그런 수식과 도표가 많이 들어간 prd일 수록 당연히 markdown이 우위이며, 이후 랄프 루프의 재실행시 생성된 prd 마크다운 파일들은 아카이브 되기 때문에 나중에 prd를 찾아보기도 수훨한 면이 있다.

-

/prd가 좋다는 것은 알겠는데, 그건 랄프 루프 이전의 얘기잖아. 랄프 루프는 왜 써야하는 거?: 실제로 /prd 로 만들어진 명세서가 간단하면 랄프 루프를 돌리지 않는 것이 좋다. prd의 핑퐁에서 대부분의 고민들이 해결돼서 간단한 변경만으로도 목적을 달성할 수 있으면 돌릴 필요가 없다는 말이다.

랄프 루프의 장점이자 단점은, "유저의 피드백 없이" "장시간 혼자 돌아간다"는 것이다. 따라서 1. 간단해서 짧은 시간 돌아갈 수 있거나, 2. 유저의 피드백이 세세하게 필요한 경우에는 랄프 루프가 적합하지 않다. 그렇기 때문에 다음과 같은 구체적인 상황에서 랄프 루프가 빛을 발하는데:

1/ 자기 전에 왕창 돌아가야 할 때

잠들기 전에 랄프 루프를 통해 이런 저런 작업들을 하나의 prd에 짬통해서 넣는게 생각보다 효율이 좋다. prd 스킬에서 너무 다른 종류의 태스크를 하나의 prd에 넣지 말라고 써있는지 클코가 종종 불평하지만, 취침 전에 작업이라며 진행하면 설득 가능하다.

2/ 나도 잘 모르겠어서, 일단 돌아가는 걸 눈으로 봐야겠을 때 (a.k.a 실험)

말 그대로다. 실행이 값싸졌으니 랄프 루프 30-40분 돌려서 실제로 써본 다음에 의사결정을 할 수 있다. 막상 드래그 앤 드롭을 넣어봤더니 조작감이 별론데 다른 UI/UX를 써야하나? 아니면 다른 드래그 앤 드롭 라이브러리를 써야하나? 등등

3/ 토큰을 많이 잡아먹는 긴 작업

3만줄 짜리 csv 파일 4개를 가지고 이런 저런 통계 실험을 돌리다보면 awk, sed 등의 명령어로 클코가 세션 리밋을 엄청난 속도로 채워버린다. 랄프 루프 없이 직접 클코에서 작업하는 경우 세션을 자주 초기화 해야하지만, 랄프 루프 실행 중 현재 iteration에서 세션 리밋이 위험한 경우, 다음 iteration을 새로운 세션을 열어서 진행하기 때문에 정.말. 편하다. 특히 통계에서 각 feature별로 그루핑을 다르게 해서 해보고, 청기 백기 식으로 실험을 많이 돌릴 때, 또는 비슷한 크기의 실험을 변수를 다르게 해서 수 십번씩 돌리는 경우에 정말 좋다.

-

--dangerously-skip-permissions 는 너무 위험하지 않아?: 랄프 루프도 이 플래그로 돌아가는 마당에, 랄프를 세팅하는 세션에서 굳이 까다로울 필요는 없다고 본다. 랄프 루프를 쓰기로 마음 먹은 순간, --dangerously-skip-permissions 부분적으로나마 쓰겠다는 것에 동의한 것이니, bypass permssion 모드로 쓰다가 "자신이 적절히 판단해서" 모드를 바꿔 클로드를 통제하면 된다. 슬랙 메세지, production db 작업 등이 껴있으면 꺼두고 제어하자.

-

그 외 짜잘한 사용 팁:

1/ 클코에서 /prd 에 의해 생성된 질문에 꼭 모두 대답하지 않아도 된다. 가장 중요한 질문만 성실하게 답변하면 다른 질문은 필요없을 때도 있다.

2/ prd markdown이 모두 생성된 뒤에, /simplify 스킬을 마지막에 돌려달라고 하면 좋다. 어차피 하게 되더라고. 내 경우 /ralph-prep 이라는 스킬을 따로 만들어서 simplify 스텝 등을 명시해뒀고, prd -> ralph -> ralph-prep으로 json을 만들고, 랄프 루프를 돌린다.

3/ 플랜 모드를 설명하며 대충 언급됐으니 알겠지만, 클코 세션에서 bg job으로 랄프 셸 스크립트를 호출하기 시작하면, 가끔 내가 원하지 않는 타이밍에 클코가 셸 스크립트를 돌려버릴 때가 있다. 그래서 클코의 bg job이 아니라 별도의 터미널 창에서 랄프 셸 스크립트를 실행하는 것을 추천한다. 셸 스크립트 마지막에 자신이 쓰는 터미널 & OS 에 맞게 notification을 설정하면 랄프 루프가 끝났을 때 알 수 있으니 참고.

-

2026.03.24 추가: superpowers를 써보기 시작...

More from this blog

Auto-Switch iTerm Profiles on SSH Connection

미국에 있는 서버와 한국에 있는 서버는 핑 차이가 크다. 미국서버에 배포하던 서비스를 최근에 한국으로 옮기니, 로컬 개발 터미널인지 라이브인지 구분이 힘들어졌다. 좋은 방법이 없을까 고민하던 차에 내가 발견한 방법을 공유한다. 1/ 프로필을 생성한다. 나는 평소에 밝은 테마(light theme)를 사용하기 때문에 이 프로필은 어두운 테마(dark theme)로 설정했다. 2/ 라이브 환경으로 접속하는 커맨드(e.g. ssh)에 대해 다음과 ...

Nov 23, 2025
Auto-Switch iTerm Profiles on SSH Connection

warp directory `wd`

터미널에서 특히 자주 찾게되는 폴더들이 있다. nvim 설정 디렉토리, 회사 git repo 디렉토리, 개인 git repo 디렉토리 등등. 이런 디렉토리들을 즐겨찾기처럼 등록하고, 즐겨찾기 목록을 볼 수 있고, 즐겨찾기에 등록된 곳을 바로 이동할 수 있게 만들어주는 스크립트가 https://github.com/mfaerevaag/wd 다. 해당 페이지에 있는 Setup 섹션을 참고해서 설치하자. oh-my-zsh의 경우 plugins에 wd...

Oct 18, 2025
warp directory `wd`

macOS에서 키보드로 출력 오디오 장치 바꾸기

최근에 헤드폰을 하나 샀다. 하지만 헤드폰으로 듣다가 밥을 먹을 때는 맥북 스피커로 바꾸고 싶다. 그렇게 출력 장치를 바꿀 때마다 상단의 제어센터 버튼을 눌러서, 오디오 버튼을 누르고, 위 스크린샷에서 원하는 장치를 고르는 것은 매우 귀찮더라. 키보드 “딸깍”으로 오디오 출력 장치를 바꿀 수 있는지 찾아봤고, 그 결과를 공유한다. https://github.com/deweller/switchaudio-osx 를 활용한다. SwitchAudioS...

Sep 12, 2025
macOS에서 키보드로 출력 오디오 장치 바꾸기

토막글 다섯 개 (5)

1. PR Approve에는 장미를 한 송이 🌹 팀원의 풀 리퀘스트를 Approve 할 때, LGTM와 같은 인삿말도 좋지만 나는 장미를 쓴다. 낭만 있고, 메신저에서 PR Approve 구걸을 할 때 장미를 부탁한다고 하거나, 팀원의 Approve 부탁 메세지에 장미 이모지로 답변하기 참 좋아서 애용하고 있다. PR Approve와는 전혀 상관없는 개념이지만 업무에서 자주 쓰이지 않는 심볼이라면 어느 거라도 적당히 재미있어 추천한다. 2. ...

Aug 19, 2025
토막글 다섯 개 (5)

olaf.kr

50 posts

그 날 기분에 따라 반말과 존댓말을 섞어씁니다.