[00:00]
오늘은 Ralph Wiggins에 대한 가장 명확한
[00:02]
설명을 들려드리겠습니다. 심슨 가족의
[00:04]
캐릭터가 아니라요. 지금 모든 사람들이
[00:07]
열광하고 있는 AI 코딩 루프입니다.
[00:09]
Ralph는 간단한 아이디어지만
[00:12]
엄청난 파급력을 가지고 있습니다. 에이전트에게
[00:16]
작은 작업들의 목록을 주면, 계속해서 하나씩
[00:18]
선택해서 구현하고, 테스트하고,
[00:20]
코드를 커밋합니다. 기본적으로
[00:22]
AI 에이전트가 여러분의 비즈니스를
[00:25]
구축하고, 제품을
[00:27]
밤새 개발할 수 있는 방법입니다. 너무나
[00:30]
좋아서 믿기 어렵겠지만, 정말 작동합니다. 그리고
[00:32]
Claude Opus 4.5를 사용해서 이를 실행합니다.
[00:36]
이번 에피소드에서는 초보자들이
[00:38]
Ralph를 어떻게 사용할 수 있는지에 대한
[00:41]
가장 명확한 설명을 들려드립니다. 기술적인
[00:44]
지식이 없어도 이해할 수 있습니다.
[00:46]
이 에피소드를 끝까지 보시면
[00:49]
Ralph를 구현할 수 있게 되어
[00:51]
여러분도 잠에서 깨어났을 때 완전히 완성된 기능들을
[00:55]
여러분이 구상한 스타트업 아이디어에 맞게
[00:58]
구현된 것을 보실 수 있을 겁니다. 에피소드를 즐겨보세요.
[01:08]
드디어 Ryan Carson을 팟캐스트에 모셨습니다.
[01:11]
혹시 모르실 수도 있지만, 저는
[01:13]
Treehouse 수강생이었습니다.
[01:16]
몇 년 전에 코딩을 배웠는데, 아마
[01:19]
12년 전쯤이었을 거예요.
[01:20]
그리고 그는 AI와 코딩 학습에 있어서
[01:25]
가장 뛰어난 소통 전문가 중 한 명입니다.
[01:28]
그래서 Ralph Wiggins이 도대체
[01:31]
뭔지 알아보기 위해 모셨습니다.
[01:33]
뭐가 일어나고 있는 거죠?
[01:36]
Greg, 여기 와서 정말 좋네요.
[01:38]
저는 정말로 당신 쇼를 봅니다.
[01:39]
그냥 본다고 말만 하는 사람이 아니라
[01:40]
정말 봅니다. 지식으로 가득 차서
[01:43]
초대받아서 재미있어요.
[01:45]
그리고 당신이 Treehouse 학생이었다니 놀랍네요.
[01:47]
저는 컴퓨터 과학 학위를 받으며
[01:49]
코딩을 배웠는데, 지금 생각해보면
[01:51]
우스꽝스럽네요. 그리고 사람들이
[01:52]
컴퓨터 과학 학위가 필요하지 않다고
[01:55]
생각해서
[01:56]
Treehouse를 런칭해서 백만 명에게 코딩을 가르쳤고
[01:58]
이제 정말로 사람들은
[01:59]
컴퓨터 과학 학위가 필요하지 않습니다.
[02:01]
맞습니다.
[02:02]
그래서
[02:04]
이번 에피소드에서 사람들이 배울 내용은 무엇이고,
[02:07]
끝까지 본다면
[02:08]
어떤 사람이 될까요?
[02:11]
제가 모든 분들에게 가르쳐드릴 것은
[02:12]
잠자는 동안 앱의 전체 기능을
[02:15]
구축하는 방법입니다. 끝까지 보시면
[02:19]
하드코어 개발자가 아니어도
[02:21]
모든 기술적 지식을
[02:23]
얻게 될 것입니다. 사실
[02:25]
하드코어 개발자가 아니라면
[02:27]
이것이 완벽할 거라고 말씀드리고 싶네요.
[02:29]
모든 지식, 모든 코드를
[02:31]
얻게 됩니다. 저는 실제로
[02:32]
다운로드할 수 있는 저장소를
[02:34]
가지고 있습니다. 끝까지 보시면
[02:36]
핵심 내용을
[02:38]
얻게 될 겁니다.
[02:40]
좋습니다, 시작해보죠.
[02:41]
네, Jeff Huntley라는 제 친구가
[02:42]
Ralph라는 아이디어를
[02:45]
생각해냈습니다. Jeff는 정말 창의적이고
[02:48]
얼마 전에 이것을 런칭했는데
[02:51]
아이디어는 정말 간단합니다. 하지만
[02:55]
그래서 좋은 거죠.
[02:58]
어제 저는 생각했습니다. 이것에 대해
[03:00]
포스팅하고 사람들에게
[03:02]
이것이 무엇인지, 어떻게 작동하는지
[03:04]
분석해서 알려드리자고 말이죠.
[03:06]
어떻게 동작하는지, 그리고 언제 알고리즘이
[03:10]
제대로 작동할지 알 수 없잖아요.
[03:13]
때로는 되고, 때로는 안 되죠.
[03:14]
그런데 이번엔 완전히 폭발했어요.
[03:18]
70만 뷰가 넘었거든요.
[03:19]
그리고 이걸 리트윗한 것들이
[03:21]
각각 10만 뷰씩 받았어요.
[03:25]
정말 폭발적이었죠.
[03:26]
그럼 이게 뭔지 설명해드릴게요.
[03:28]
Greg이 쇼노트에 모든 링크를
[03:31]
공유해줄 거라 확신하니까
[03:32]
클릭해서 읽어보실 수 있을 거예요.
[03:34]
하지만 제가 직접 Ralph가 뭔지,
[03:37]
어떻게 작동하는지 워크플로우를 보여드릴게요.
[03:39]
시작해봅시다.
[03:41]
좋습니다.
[03:43]
앱을 구축한다고 해봅시다.
[03:45]
새로운 기능을 추가하고 싶다고요.
[03:47]
이럴 때 보통 제품 요구사항 문서라고 하는
[03:51]
PRD를 작성합니다.
[03:52]
아이디어는 이런 거죠. 뭔가를 구축하고 싶다,
[03:56]
예를 들어, 'XYZ 기능을 하는
[03:59]
새로운 기능을 추가하고 싶다'고 말이죠.
[04:02]
구축하고 싶지만 꽤 복잡해요.
[04:04]
이건 단순한 랜딩 페이지
[04:06]
만들어달라는 원샷이 아니에요.
[04:08]
앱에 추가하려는 꽤 복잡한 거죠.
[04:10]
그럼 어떻게 해야 할까요?
[04:12]
PRD 작성부터 시작합니다.
[04:14]
다행히 PRD는 에이전트가
[04:17]
정말 잘하는 일이에요.
[04:19]
방법은 이렇습니다.
[04:22]
실제로 AMP나 Claude Code나
[04:25]
여러분이 선택한 에이전트에게
[04:28]
그 일을 시키는 거예요.
[04:31]
어떻게 하는지 보여드릴게요.
[04:34]
이걸 보여드리겠습니다.
[04:37]
PRD 생성기라고 불리는 거예요.
[04:39]
제가 하는 방법은 AMP를 실행하고
[04:43]
기본적으로 말을 시작하는 거예요.
[04:45]
Whisper Flow를 사용하는데, 정말 좋아해요.
[04:48]
그리고 기본적으로 이렇게 말해요.
[04:49]
'이 기능을 구축하고 싶고,
[04:51]
이런 모든 일들을 해야 한다'고 말이죠.
[04:54]
보통 2-3분 정도 얘기하죠.
[04:57]
그리고 이 파일에 태그를 달아요.
[04:59]
이건 간단한 마크다운 파일이에요.
[05:02]
PRD 생성기라는 스킬이죠.
[05:05]
이건 로켓 과학이 아니에요.
[05:07]
AMP나 여러분의 에이전트가
[05:09]
해야 할 작업이 들어있어요.
[05:11]
사용자로부터 기능 설명을 받아서
[05:13]
명확히 하기 위해 3-5개의
[05:15]
핵심 질문을 할 거예요.
[05:18]
기본적인 질문들에 대한
[05:20]
답변을 요청할 거고요.
[05:23]
이건 꽤 표준적인 프롬프트예요.
[05:26]
다시 상기시켜드리면 플로우로 돌아가서
[05:28]
AMP를 열고 Whisper Flow를 클릭하고
[05:31]
말을 시작했어요.
[05:33]
그리고 이 파일이나 스킬에 태그를 달고
[05:36]
제 PRD 스킬을 사용해서 이걸 PRD로
[05:40]
바꿔달라고 말해요.
[05:43]
실제로 제가 이걸 하는 실제 예시를
[05:47]
보실 수 있어요.
[05:49]
그리고 PRD가 되는 파일도 있고요.
[05:52]
다시 돌아가 보겠습니다.
[05:54]
제품 요구사항 문서인 마크다운 파일이 있네요.
[05:58]
다시 말해서, 일반인 언어로 표현하면
[06:01]
구축하고 싶은 것에 대한 설명이에요.
[06:04]
그리고 보통 사용자 스토리라는
[06:06]
것들이 들어있는데, 이는 사용자가
[06:08]
이 기능에서 할 수 있기를 원하는
[06:11]
기능입니다. 이제 마크다운 파일이 생겼네요.
[06:13]
좋습니다. 그럼 이걸로 뭘 해야 할까요?
[06:15]
음, 다음 단계는 Ralph에 특화된 과정인데요,
[06:19]
이걸 JSON 파일로 변환해야 합니다.
[06:22]
제가 JSON 파일의 예시를 보여드렸는데,
[06:25]
JSON이 뭔지 모르신다면,
[06:27]
이건 기본적으로 컴퓨터가
[06:29]
좋아하는 특정 형식입니다.
[06:32]
그리고 여기서 보시는 것은 사용자 스토리입니다.
[06:35]
음, 제목은 '데이터베이스에 우선순위 필드 추가'이고,
[06:39]
그 다음이 수락 기준입니다.
[06:40]
이게 가장 중요한 부분이에요.
[06:43]
그래서,
[06:44]
어떻게 해야 할까요?
[06:46]
Claude나 당신의 에이전트가
[06:49]
이 작업을 완료했는지 어떻게 알 수 있을까요?
[06:52]
명확한, 우리가 부르는
[06:54]
수락 기준을 제공해야 합니다.
[06:56]
이것들은 기본적으로 테스트라서 에이전트가 혼자서
[06:59]
이것을 구축하고 완료되었는지 알 수 있습니다
[07:01]
당신에게 묻지 않고도 말이죠. 음, Ralph의 핵심은
[07:04]
당신이 자는 동안
[07:06]
전체 기능을 구축한다는 것입니다. 하지만
[07:09]
당신이 매번
[07:11]
'좋다' 또는
[07:12]
'나쁘다' 또는 '이건 고쳐야 한다'고 말하지 않고
[07:14]
어떻게 그걸 할 수 있을까요?
[07:16]
수락 기준을 통과했는지
[07:18]
알아야 합니다. 맞죠? 이게 Ralph나
[07:21]
이런 종류의 플로우의
[07:23]
큰 혁신 중 하나입니다. 에이전트에게
[07:26]
피드백 메커니즘이 있어야
[07:29]
자신이 하고 있는 일이 올바른지 알 수 있습니다.
[07:32]
그러니까 대안은 당신이 Ralph가 되어야 한다는 거죠, 맞나요?
[07:34]
당신이 그 사람이 되어서 '네, 아니오,
[07:36]
아마도'라고 해야 하는 거죠.
[07:36]
네. 모든 테스트를 해야 하죠,
[07:38]
그렇죠? 음, 그건 정말 고통스럽습니다. 그리고
[07:43]
에이전트들이 이제 충분히 똑똑해졌어요. Opus 4.5는
[07:45]
이제 충분히 똑똑해서
[07:46]
좋은 수락 기준을 제공하면 할 수 있습니다.
[07:49]
좋습니다. 그래서, 우리는 PRD,
[07:52]
제품 요구사항 문서를 가지고 있습니다.
[07:55]
음, 우리는 이 기술을 사용했습니다. 이걸 가져가 보겠습니다
[08:00]
여기로요
[08:01]
좋습니다. 이제 이것을 Ralph PRD 변환기라고 부르고
[08:04]
PRD를 PRD.json JSON 파일로 변환한다고 되어 있네요
[08:07]
Ralph 자율 에이전트 시스템용으로요. 그리고 기본적으로
[08:11]
마크다운 형식의 PRD를 가져와서
[08:13]
이런 식으로 출력하라고 되어 있어요. 맞죠? 그래서
[08:16]
이것은 에이전트에게 정확히 어떤
[08:20]
PRD로 변환해야 하는지 알려주고
[08:21]
여기에 몇 가지 정말 중요한 것들이 있습니다
[08:25]
스토리 크기처럼 말이죠.
[08:26]
1번 규칙: 각 스토리는
[08:28]
하나의 Ralph 반복으로 완료 가능해야 합니다. 그래서
[08:32]
이것이 에이전트와 작업하는 데 있어서
[08:35]
또 다른 큰 혁신입니다
[08:37]
에이전트들에게는 컨텍스트 제한이 있기 때문이죠,
[08:38]
맞죠? 그래서, 음, Opus의 경우
[08:40]
약 168,000 토큰 정도입니다.
[08:43]
그 컨텍스트 윈도우 내에서
[08:46]
완전히 완료될 수 있는
[08:48]
작업 덩어리를 선택해야 합니다. 그리고 이것이
[08:51]
Ralph가 그렇게 잘 작동하는 이유입니다
[08:54]
작은, 음, 독립적인 스레드들을 실행하기 때문에
[08:56]
하나의 사용자 스토리를 완료합니다
[09:00]
그리 크지 않기 때문이죠. 그래서 아주 작은
[09:03]
사용자 스토리들이 많이 있습니다. 음, 스토리
[09:06]
순서 지정에서는 먼저 해야 할 것들을
[09:09]
맨 위에 둡니다. 음, 그리고
[09:11]
수락 기준이라고 합니다. 검증 가능해야 합니다.
[09:14]
맞죠? 이것이 정말
[09:15]
핵심입니다. 좋은 기준들은 예를 들어
[09:18]
작업 테이블에 상태 컬럼을 추가하는 것 같은
[09:21]
것들입니다.
[09:23]
기본값은 pending입니다.
[09:26]
드롭다운에는 전체, 활성, 완료 옵션이 있습니다.
[09:28]
다시 말하지만, 이것들은
[09:30]
Amp가 저를 위해 작성한 것들이고 제가 검증했습니다.
[09:33]
하지만 거기에 포함되는 것이 중요합니다.
[09:35]
그럼 돌아가보죠. 좋습니다.
[09:38]
우리는 제품 요구사항 문서를 작성했습니다.
[09:39]
훌륭합니다. 그리고 Ralph 스킬을 사용해서
[09:43]
JSON 파일로 변환했습니다.
[09:46]
좋습니다. 이제
[09:49]
스크립트를 실행합니다. 이건 조금 다릅니다.
[09:52]
Amp나 Claude Code 같은
[09:54]
에이전트를 사용해본 분들은
[09:56]
보통 그 프로그램을 여는 것에 익숙하실 겁니다.
[09:59]
Cursor나 Amp를 열어서
[10:02]
대화를 시작하죠.
[10:05]
하지만 이것은 실제로 bash 스크립트입니다.
[10:07]
실제 로컬 컴퓨터가 실행하는 파일이죠.
[10:10]
실제로 어떻게 생겼는지 보여드리겠습니다.
[10:13]
잠깐만요.
[10:16]
정말 빠르게 보여드리겠습니다.
[10:17]
bash가 뭔지 모르는 분들을 위해 설명하면
[10:19]
그냥 하나의 방법입니다
[10:21]
터미널을 열 때, 즉 텍스트 입력 상자를
[10:24]
열면 말이죠
[10:27]
터미널은 기본적으로
[10:29]
컴퓨터용 텍스트 입력 상자입니다.
[10:32]
거기에 명령어를 입력할 수 있고
[10:35]
스크립트도 실행할 수 있습니다.
[10:37]
바로 그것이 bash 스크립트입니다.
[10:39]
컴퓨터가 명령줄에서 실행할 수 있는
[10:42]
파일 형식입니다.
[10:43]
어떻게 생겼는지 보여드리겠습니다.
[10:46]
다시 말하지만, 이것은 모두 오픈소스이고
[10:47]
이 모든 링크들을 노트에 적어둘 겁니다.
[10:48]
그래서 제가 가진 이 Ralph
[10:50]
공개 저장소를 그대로 가져다가
[10:52]
다운로드해서 사용할 수 있습니다.
[10:55]
실제로 어떻게 생겼는지 보죠.
[10:57]
지금 이것이 좀 무서워 보이지만
[10:58]
실제로 무엇을 하는지 보겠습니다.
[11:01]
이 스크립트가 몇 번 실행될 수 있는지
[11:02]
묻고 있습니다.
[11:05]
기본값은 10입니다.
[11:08]
스크립트 디렉토리가 있고
[11:11]
PRD 파일이 있습니다. 맞죠?
[11:14]
이것에 대해 이야기했듯이
[11:15]
prd.json이라고 합니다.
[11:18]
progress 파일도 있는데
[11:19]
이것에 대해서도 이야기하겠습니다.
[11:22]
아이디어는 완료되면
[11:24]
스크립트를 아카이브한다는 것입니다.
[11:27]
기본적으로 루프를 돕니다.
[11:30]
그 루프가 어떻게 작동하는지
[11:32]
시각적으로 설명하겠습니다
[11:34]
bash보다 보기 좋거든요. 하지만 이것이
[11:37]
실제로 실행되는 파일입니다.
[11:39]
다시 한 번 빠르게 요약해보겠습니다.
[11:42]
우리가 작성한 PRD가 있고, 그것을
[11:45]
prd.json으로 변환했습니다. 이것은 단순히
[11:47]
사용자 스토리 목록입니다.
[11:49]
모든 사용자 스토리는 매우 작고
[11:52]
매우 명확한 수락 기준을 가지고 있습니다.
[11:56]
그런 다음 명령줄로 가서
[11:59]
Ralph 스크립트를 실행합니다.
[12:02]
몇 글자 타이핑하고 엔터를 치면 됩니다.
[12:04]
이제 무엇이 일어나고 왜 이것이 그렇게
[12:07]
흥미진진한 걸까요?
[12:09]
그러면 에이전트가, 저는 Amp를 사용하는데
[12:11]
스토리 중 하나를 선택합니다.
[12:14]
보통 첫 번째 것을 선택하고
[12:18]
passes가 false인 사용자 스토리를 찾습니다.
[12:20]
여기에서 볼 수 있듯이 이 사용자 스토리가
[12:24]
통과했는지 안 했는지 묻고 있죠?
[12:25]
이것은 통과하지 않았습니다.
[12:27]
그러니까 이것을 선택하겠습니다.
[12:29]
이것이 Ralph의 또 다른 정말 멋진 부분입니다. 수십 년 동안
[12:33]
수십 년 동안 엔지니어 팀들이
[12:35]
이런 방식으로 일해왔습니다. 보통
[12:38]
포스트잇이나 요즘에는 칸반
[12:41]
보드 목록이 있잖아요? 그리고 사용자
[12:44]
스토리를 하나 가져와서 "이걸 할게요"라고
[12:45]
말하고 책상으로 가서
[12:48]
코딩을 시작하죠. 그리고
[12:50]
완료하면 커밋하고
[12:51]
머지하죠. 그리고 다시
[12:53]
보드로 돌아와서 또 다른 포스트잇을
[12:54]
가져오는 거예요. 인간들이
[12:57]
영원히 코딩해온 방식이죠. 그리고 그 이유는
[12:58]
이 방법이 효과적이기 때문이에요. 이해할 수 있고
[13:00]
테스트할 수 있고 독립적으로 완료할 수 있는
[13:03]
작업 단위가 있는 거죠
[13:05]
맞죠? 그리고 이게 바로 Ralph가
[13:07]
하는 일이에요. 스토리를 선택해서
[13:09]
보드에서 가져와서
[13:11]
해결하는 거예요. 그러면
[13:12]
실행을 시작하고 작업을 시작하죠
[13:15]
맞죠? 그리고 이건 우리 모두가 익숙한 것이에요
[13:17]
Claude Code나
[13:18]
Amp나 Cursor를 사용한다면
[13:20]
"이걸 만들어줘"라고 말하면
[13:22]
작업하는 모습을 보게 되죠
[13:26]
실제로 제가 보여드릴 건데
[13:29]
오늘 제가 올린 게시물에서 "좋아
[13:32]
이건 진짜야"라고 했어요. 실제로
[13:34]
Ralph로 완전한 기능을 만들었고
[13:36]
제가 취한 단계들이에요. PRD를
[13:38]
만들었고, 사용자
[13:41]
스토리들을 만들고, 그다음 Ralph를 시작했어요.
[13:43]
그리고 실제로 어떤 모습인지
[13:44]
예시를 보여드릴게요.
[13:47]
이게 Amp의 스레드예요.
[13:50]
기본적으로 보통 보면서
[13:52]
입력하는 것들이죠. 그리고 이것들은
[13:55]
Ralph가 받는 시스템 프롬프트예요.
[13:57]
맞죠. 당신은
[14:00]
내 프로젝트에서 작업하는 자율적인
[14:02]
코딩 에이전트라고 되어 있어요. 당신의 작업은 PRD를 읽고
[14:06]
진행 로그를 읽고 여러 작업을
[14:09]
수행하는 것이고, 그다음 기본적으로
[14:11]
작업을 시작하는 거예요.
[14:15]
아주 간단해요. 그리고 여기서 보면
[14:16]
실제로 작업하는 모습을 볼 수 있어요.
[14:18]
맞죠. 이런 종류의 것들을
[14:20]
보는 데 익숙하죠. 여기서
[14:21]
코드를 쓰기 시작해요. 이 모든 일이
[14:24]
일어나는 동안 저는 잠을 자고 있어요
[14:27]
맞죠?
[14:28]
아니면 멋진 아내와
[14:30]
저녁을 먹거나 아이들에게
[14:32]
신경을 쓰고 있죠. 하지만
[14:35]
Ralph Amp는 첫 번째 사용자
[14:38]
스토리를 계속 처리하고 있어요. 제가 보거나
[14:40]
피드백을 주거나 어떤 것도
[14:42]
하지 않아도 되죠. 필요한 모든 것을 갖고 있으니까요.
[14:44]
맥락, 수락
[14:47]
기준, 모든 것을 말이에요.
[14:49]
>> 토큰은 어떤가요? 제 토큰을
[14:52]
태우고 있나요?
[14:54]
>> 아니요, 이게 바로 멋진 점이에요.
[14:56]
실제로 몇 가지를 살펴봤거든요.
[14:58]
정말 빨리 봅시다.
[15:00]
네. 보세요. 이건 3달러였어요.
[15:02]
$3, 라떼보다도 싸네요.
[15:06]
>> 완전히요.
[15:07]
>> 그래서 질문은 당신의 시간이
[15:08]
얼마나 가치 있는가예요. 제 생각에
[15:10]
어떤 사람들에게는 $3도
[15:13]
너무 많을 수 있어요. 예를 들어
[15:15]
일반적인 Ralph 사이클은 아마
[15:17]
10번의 반복이에요. 그래서
[15:20]
약 30달러 정도 보시면 될 것 같아요.
[15:21]
하지만 얼마나
[15:25]
비용이 얼마나 들고 개발자의 시간으로는
[15:27]
얼마나 어려웠을지 생각해보세요.
[15:30]
정말 대단한 일이 되는 거죠.
[15:32]
하나 홍보를 하자면
[15:35]
AMP에서 곧 일일 무료 토큰
[15:37]
할당량을 런칭할 예정입니다.
[15:41]
하루에 10달러 정도 받을 수 있어서
[15:44]
무료로 사용할 수 있습니다.
[15:47]
사람들이 걱정하는 건
[15:48]
에이전트가 혼자 실행되면
[15:50]
이상한 일을 할까 봐 하는 건데
[15:53]
답은 '아니다'입니다.
[15:54]
명확한 수용 기준이 포함된
[15:56]
명확한 사용자 스토리를 제공했으니까요.
[15:59]
실제로는 꽤 작은 단위로 작업할 것입니다.
[16:01]
맞죠, 기준이 이상해야 이상한 일을 하는 거죠.
[16:04]
기준이 이상해야 이상한 일을 하는 거죠.
[16:06]
맞죠?
[16:07]
네.
[16:07]
바로 이게 핵심입니다.
[16:09]
매우 작고 원자적인 사용자
[16:12]
스토리들을 갖고 있는 거죠.
[16:15]
AMP가 실제로 기능을 완성합니다.
[16:17]
사용자 스토리를 말이죠. 그리고 변경사항을 커밋합니다.
[16:20]
모든 일을 완료했다는 뜻이죠.
[16:22]
이건 정말 중요합니다.
[16:23]
Ralph 시스템 지침에
[16:24]
완료하면 커밋하라고 되어 있습니다.
[16:27]
롤백이 필요할 수도 있으니까요.
[16:29]
되돌아가서 수정해야 할 수도 있고요.
[16:31]
에이전트가 필요할 때
[16:33]
그런 일을 할 수 있게 해줍니다.
[16:35]
에이전트로서는 꽤 표준적인 작업이죠.
[16:38]
그 다음에 하는 일은
[16:40]
prd.json을 업데이트하는 겁니다.
[16:43]
여기를 보시면
[16:45]
passes false를 passes true로 바꿉니다.
[16:48]
갑자기 그 사람이
[16:50]
보드로 돌아가서
[16:51]
스티커 메모를 다시 붙이고
[16:53]
체크 표시를 하는 것 같죠.
[16:57]
가장 중요한 것 중 하나는
[17:00]
진행 상황을 로그에 기록한다는 겁니다.
[17:03]
이 부분이 정말 중요합니다.
[17:05]
이 반복이 끝나면
[17:08]
뭔가를 학습하게 됩니다.
[17:09]
코드베이스에 대해
[17:11]
뭔가를 학습하게 됩니다. 벽에 부딪히면
[17:13]
돌아가야 할 수도 있어요.
[17:16]
매번 그런 걸 학습하게 하고
[17:17]
싶지는 않잖아요.
[17:20]
아주 간단한 프롬프트를 사용합니다.
[17:22]
편집한 파일 중 어떤 것이든
[17:25]
해당 폴더에 agents.md 파일이 있고
[17:28]
중요한 걸 학습했다면
[17:30]
그 파일을 업데이트하라고 합니다.
[17:32]
단순히 그게 다가 아니라
[17:34]
Kieran과 every 팀이
[17:37]
compound engineering 컨셉으로
[17:39]
완전히 해낸 것은 에이전트가
[17:41]
실수할 때마다
[17:43]
더 똑똑해져야 한다는 겁니다.
[17:46]
agents.md를 업데이트함으로써
[17:48]
장기적인 이익을 얻게 됩니다.
[17:50]
이번 반복에서만이 아니라
[17:52]
앞으로 AMP나 Claude Code를
[17:54]
사용할 때마다 혜택을 받게 됩니다.
[17:56]
agents.md가 무엇인지
[17:57]
왜 중요한지 모르는 사람들을 위해
[18:00]
간단히 설명해 주실 수 있나요?
[18:02]
물론이죠. 아주 간단한 파일입니다.
[18:05]
말 그대로 마크다운 파일이에요.
[18:07]
코드를 한 번도 본 적 없는
[18:10]
신입 개발자에게 줄 메모라고
[18:12]
생각하시면 됩니다. 멋진 점은
[18:14]
각 폴더마다 agents.md 파일을
[18:17]
전체 레포지토리의 모든 폴더에 두실 수 있습니다.
[18:20]
그럼 AMP가 어떻게 동작하냐면
[18:23]
AMP가 특정 폴더의 파일을 살펴보다가
[18:25]
그 폴더에 agent.md 파일을 발견하면
[18:28]
먼저 그걸 읽습니다.
[18:31]
정말 멋진 기능이죠. 마치
[18:33]
곳곳에 붙여놓은 메모지 같거든요.
[18:36]
만약 여러분이 코드베이스의
[18:37]
특정 부분에 대한 지식이 있고
[18:38]
개발자가 정말 알아야 할 내용이 있다면
[18:40]
"야, 건드리기 전에 이거부터 읽어봐"
[18:42]
라고 할 수 있죠. 그게 바로 agents.md의 역할입니다.
[18:45]
폴더 최상위에 두면
[18:46]
에이전트가 작업할 때마다 읽히고
[18:50]
아니면 하위 폴더 깊숙이 두면
[18:52]
그 파일을 편집할 때만 읽힙니다.
[18:55]
정말 중요한 기능이에요.
[18:57]
이걸 안 하시면 계속 고생하게 됩니다.
[19:00]
그 다음에 하는 일은
[19:02]
progress.txt 파일을 업데이트하는 거예요.
[19:04]
이건 단기 기억 같은 거라고 보시면 됩니다.
[19:07]
Ralph가 하는 10번의 반복 과정에서
[19:09]
"야, 이번에 뭘 배웠지?"
[19:12]
"뭘 하고 있지?"
[19:14]
"이게 어떻게 돌아가는 거지?"
[19:17]
라고 기록하는 거죠.
[19:19]
실제로 보여드리려고 했는데
[19:20]
텍스트가 너무 많아서 생략하겠습니다.
[19:23]
핵심은 매 반복마다
[19:26]
"자, 우리가 사용한 AMP 스레드는 이거야"
[19:27]
라고 기록하는 거예요.
[19:29]
그러면 에이전트가 나중에
[19:31]
돌아가서 읽을 수 있거든요.
[19:34]
예를 들어 2번째 반복에서
[19:36]
"1번째 반복에서 뭘 했지?"
[19:37]
궁금하면 그 스레드를 읽고
[19:39]
파악할 수 있어요.
[19:41]
거기에 몇 가지 노트도 추가하죠.
[19:43]
"아, 앞으로는 저렇게 하면 안 되겠다"
[19:45]
"이런 걸 고려해야겠다" 같은 거요.
[19:48]
이건 단기 기억이고
[19:50]
agents.md는 장기 기억이에요.
[19:51]
정말 기억해야 할 중요한 것들 말이죠.
[19:54]
이게 바로 progress.txt에
[19:56]
로그를 남기는 과정입니다.
[19:59]
여기까지 혹시 이해 안 되는 부분 있나요?
[20:02]
>> 완전히 명확해요. 좋습니다.
[20:05]
>> 네.
[20:07]
>> 좋아요.
[20:07]
그럼 다음에 뭐가 일어나느냐?
[20:12]
Ralph가 "더 할 일이 있나?"라고 묻죠.
[20:14]
다시 보드로 올라가서
[20:15]
메모지를 더 찾아보는 거예요.
[20:16]
그리고 "아, 더 할 일이 있네"라고 합니다.
[20:19]
그럼 또 같은 과정을 반복하죠.
[20:22]
일감을 선택하는데, 보통
[20:24]
JSON 파일의 다음 항목을 선택합니다.
[20:26]
근데 좋은 점은 사람처럼
[20:29]
"이 일을 할 수도 있고 저 일을 할 수도 있는데
[20:30]
이쪽이 더 현명한 선택이겠다"
[20:32]
라고 판단할 수 있어요.
[20:34]
그래서 일감을 선택하고, 구현하고
[20:37]
변경사항을 커밋하고
[20:39]
prd.json 파일을 업데이트하고
[20:43]
agents 파일과 함께 진행상황을 기록하고
[20:46]
이걸 계속 반복해서
[20:47]
완료될 때까지 진행합니다.
[20:52]
다시 한번 보여드리죠. 이건 제가
[20:55]
오늘 실제로 Ralph를 사용한 예시입니다.
[20:58]
오늘 아침에 제 앱에 큰 기능을 하나 만들었거든요.
[21:03]
PRD를 만들고 사용자 스토리를 작성한 다음
[21:06]
열심히 작업을 진행했습니다.
[21:11]
그리고 우리는 이걸 시작했어요. 이번 Ralph
[21:14]
반복작업은 14번의 반복이 필요했습니다.
[21:17]
이 중 하나를 자세히 살펴보면,
[21:20]
실제로 어떤 모습일까요?
[21:21]
다시 말하지만, 같은 시스템 프롬프트입니다.
[21:24]
그리고 이제 핵심은 사람들이 이해하지 못하는 것 같아요.
[21:27]
왜 이게 그냥 AMP나
[21:28]
클로드 코드를 컴퓨터에서 사용하는 것과
[21:30]
다른지 말이죠. 여기서 일어나는 것은
[21:33]
매번 새로운
[21:36]
반복을 얻는 겁니다.
[21:38]
매번 새로운 스레드나
[21:40]
새로운 클로드 코드 인스턴스를 얻게 됩니다.
[21:42]
매번 새로운 컨텍스트 창으로
[21:44]
완전히 처음부터 시작하는 거죠.
[21:47]
처음부터 시작합니다. 이것들이
[21:49]
우리가 하는 일에 대한 지침입니다.
[21:52]
PRD를 읽고, 작업을 수행합니다.
[21:53]
진행 보고서 형식으로 추가하는 거죠.
[21:58]
추가하는 방법은 이렇습니다. 진행 파일에
[22:01]
넣는 것들은 다시 읽을 수 있도록
[22:04]
AMP 스레드입니다. 구현된 내용,
[22:05]
변경된 파일들, 향후 반복을 위한
[22:08]
학습사항들, 발견한 패턴,
[22:10]
주의사항, 유용한
[22:12]
컨텍스트 등입니다.
[22:14]
그리고 여기서 작업을 시작하고
[22:16]
여기에서
[22:17]
작업을 처리합니다.
[22:20]
그리고 여기서 시작하죠.
[22:23]
기본적으로 이게 전부입니다.
[22:25]
정말 정말 간단합니다.
[22:29]
이것으로 잠들어 있는 동안
[22:31]
대규모 기능을 출시할 수 있어요. 여러분,
[22:34]
저는 26년 전에
[22:35]
컴퓨터과학 학위를 받았습니다.
[22:38]
수백만 명에게 코딩을 가르쳤고,
[22:40]
거대한 엔지니어링 팀과 함께
[22:43]
회사들을 시작해왔습니다. 이 반복은
[22:46]
기본적으로 잠들어 있는 동안의
[22:50]
전체 엔지니어링 팀과 같습니다. 믿기 어려워요.
[22:54]
이건 Opus 4.5 이전에는
[22:55]
불가능했던 일입니다. Opus 4.5로
[22:57]
이것은 완전히 현실이 되었어요.
[23:01]
그리고 OP 5가 나올 때까지 기다려보세요.
[23:04]
지금 살아있다는 것이 너무 흥미진진합니다.
[23:07]
네. 그리고 단순히 엔지니어링 팀이 아니라
[23:10]
모범사례로 운영되는
[23:12]
고품질 엔지니어링 팀이죠.
[23:15]
30달러에 말입니다.
[23:16]
30달러에요.
[23:18]
정말 미친 일이에요. 완벽한 현실이 아니어서
[23:21]
실제 세상은 이 스레드를 다시 보면
[23:24]
네.
[23:27]
아래쪽에서 제가 말했죠. 완료 후
[23:28]
테스트를 해보니 몇 가지 엣지 버그를
[23:29]
발견했다고 말입니다. 이것은 정상이에요.
[23:30]
제대로 작동하지 않거나
[23:32]
완벽하지 않은 몇 가지를
[23:36]
마주치게 될 가능성이 있지만,
[23:37]
AMP와 저는 그것에 대해 작업하고
[23:39]
정말 빠르게 수정했습니다.
[23:41]
그리고 이 기능은
[23:43]
오늘 아침에 출시되었습니다.
[23:46]
이것이 Ralph에 대한 모든 관심의 이유입니다.
[23:50]
다시 말하지만, 너무 간단해서 흥미진진해요.
[23:53]
이것은 반복이고, 사용자 스토리를 가져와서
[23:56]
실행하는 것입니다. 명확한 수용 기준을 갖고
[23:58]
있고, 같은 실수를 하지 않도록
[24:01]
배운 것을 기록하는 것입니다.
[24:03]
마지막으로 정말 정말 정말
[24:06]
중요한 것을 말씀드리겠습니다.
[24:08]
확대해보면 이 두 단계, PRD 작성과
[24:11]
사용자 스토리로 변환하는 것입니다.
[24:15]
이것이 여러분이 많은 시간을
[24:19]
투자해야 하는 부분입니다.
[24:23]
이것이 여러분이 많은 시간을 투자해야 하는 부분입니다
[24:25]
많은 시간을 투자해야 합니다. 이 작업에 한 시간 정도는
[24:27]
투자해야 해요, 그렇죠? PRD를 제대로 작성하는 것은
[24:31]
정말 정말 정말 중요하고, 사용자 스토리가
[24:34]
작고 원자적이어야 하며,
[24:36]
명확한 허용 기준을 가져야 해요.
[24:37]
왜냐하면 이 부분에 시간을 투자하지 않으면
[24:40]
Ralph가 10번 반복 작업하게 되고
[24:42]
결국 별로 좋지 않은 결과물을
[24:44]
얻게 될 거예요.
[24:45]
그리고 한 가지 팁을 말씀드리자면,
[24:48]
작업하면서 정말 유용한 것은
[24:51]
에이전트를 브라우저에
[24:53]
연결하는 방법을 알아내는 것입니다.
[24:57]
저는 특별한 스킬을 가지고 있는데,
[25:00]
실제로 GitHub에서 보여드릴게요.
[25:04]
스나크 탱크로 가보겠습니다.
[25:07]
[25:10]
[25:14]
그리고 AMP 스킬이라는
[25:16]
저장소를 보여드리겠습니다.
[25:18]
이 모든 것들을 다운로드할 수 있어요.
[25:21]
이것들은 오픈 소스입니다. 오픈 소스는 아니지만
[25:25]
제가 사용할 것은
[25:27]
데브 브라우저입니다.
[25:33]
데브 브라우저를 사용하세요.
[25:36]
이것이 하는 일은 AMP나
[25:38]
클라우드 코드가 실제로 여러분의
[25:42]
브라우저를 사용하고 테스트할 수 있게
[25:45]
해주며, 프론트엔드 코드와 관련된
[25:49]
사용자 스토리를 처리할 수 있게 해줍니다.
[25:51]
에이전트가 테스트할 수 있어야 한다는 걸
[25:54]
기억하세요. 하지만 브라우저 테스트는
[25:56]
에이전트에게 어려운 일입니다.
[25:58]
그래서 데브 브라우저 같은
[26:00]
특별한 스킬을 제공해야 합니다.
[26:03]
이건 제 친구가 만든 무료 스킬이에요.
[26:04]
정말 좋습니다. 작은 팁이었습니다.
[26:08]
멋지네요. 쇼 노트에
[26:10]
포함하겠습니다. 사람들이 오늘
[26:11]
시작하고 싶다면, Ralph를 어떻게
[26:14]
시작하나요? 아마 이 저장소로 가시면 됩니다.
[26:19]
github.com/snark/ralph로 가세요.
[26:22]
완전 무료입니다. 코드를 보시고
[26:24]
에이전트에게 이 코드를
[26:26]
보라고 하세요. 에이전트에게
[26:28]
설정하라고 하세요.
[26:29]
AMP를 사용한다면, 좋습니다.
[26:31]
모든 설정을 완료하고
[26:33]
"첫 번째 기능을 출시하고 싶은데
[26:36]
어떻게 하나요?"라고 말하면
[26:37]
과정을 안내해줄 거예요.
[26:39]
기술적 지식이 없어도
[26:41]
[26:43]
할 수 있다고 믿으시나요?
[26:44]
네, 호기심이 필요하다고 생각해요.
[26:48]
주도성도 필요하고요. 하지만
[26:51]
이 두 가지만 있으면,
[26:52]
아마 이 쇼를 보고 있다면
[26:53]
가지고 있을 텐데, 할 수 있어요.
[26:56]
기술적 지식이 있으면 도움이 되죠.
[26:58]
몇 가지 유용한 것들이 있지만,
[27:00]
[27:01]
하지만 지금 우리는
[27:02]
그런 기술이 필요하다면
[27:04]
아주 빠르게 습득할 수 있는
[27:06]
세상에 살고 있어요. 그리고
[27:08]
격려하고 싶은 말은
[27:10]
나가서 직접 해보라는 것입니다.
[27:12]
가장 중요한 것은 실제로
[27:14]
사용해보는 것이에요.
[27:16]
어떻게 작동하는지 알아보고,
[27:18]
이해가 안 되면 AMP에게 물어보거나
[27:21]
클라우드 코드에게 물어보세요.
[27:23]
초인적인 튜터가 도와줄 거예요.
[27:26]
Ryan, 출연해주셔서 정말 감사합니다.
[27:28]
제가 원했던 대로 정확하게
[27:31]
설명해주셨어요. 정말 명확하고
[27:34]
놀라웠습니다. Ryan이 다시
[27:35]
팟캐스트에 나와주신다면 정말 좋겠어요.
[27:39]
다시 나오실 건가요?
[27:40]
당연히 해요. 기꺼이 하겠습니다.
[27:42]
가능한 한 많은 지식을
[27:43]
공유합시다. 그리고 Ryan을 위해
[27:45]
YouTube 댓글창이 활발해지길 원해요.
[27:49]
지금은 쉬워 보일 수도 있어요.
[27:52]
"아, Ralph를 이해했어.
[27:53]
정말 쉬웠어"라고 생각할 수도 있지만
[27:55]
Ryan이 간단하게 설명해서 그런 것이고
[27:57]
그게 Ryan의 장점이라고 생각해요.
[27:59]
정말 감사합니다. 시작할 수 있는
[28:02]
모든 링크를 포함하겠습니다.
[28:04]
X에서 Ryan을 팔로우할 수 있는 링크,
[28:08]
AMP 링크, 클라우드 코드 링크를요.
[28:11]
Ryan, 다른 언급하고 싶은
[28:13]
것이 있나요?
[28:13]
Greg, 당신의 콘텐츠에 감사해요.
[28:15]
정말 큰 도움이 됩니다.
[28:17]
사람들이 이런 것들을 배우고 싶다면
[28:19]
할 수 있다고 생각해요.
[28:21]
당신의 콘텐츠가 그 중 큰 부분을 차지해요.
[28:23]
두 번째로 말하고 싶은 것은
[28:25]
컴퓨터 과학 학위가 필요하지 않다는 거예요.
[28:28]
여러분도 이런 것들을 할 수 있어요.
[28:31]
호기심 있고 열심히 일한다면
[28:34]
이제 무엇이든 할 수 있어요.
[28:36]
지금이 여러분의 순간이에요.
[28:38]
아이디어가 있다면 만들고, 만들고, 만드세요.
[28:40]
맞아요. 지금 당장 우리 보는 걸 그만두세요.
[28:42]
여기서 나가세요. 가서 만드세요.
[28:43]
좋아요. 다음에 또 봐요. Ryan, 다시 한번 감사합니다.