[00:00]
우리는 이전에 이 채널에서 에이전트 코딩에 대해 이야기했었는데
[00:01]
다시 한 번 다뤄야 할 것 같아요
[00:03]
이것에 대해 다시 한 번 설명해보고 싶어요
[00:05]
왜냐하면 이건 정말 마법 같거든요
[00:07]
만약 여러분이 이것을 배우고
[00:09]
제가 이 영상에서 보여드리려는 것을
[00:11]
익힌다면, 보장하건대
[00:13]
코딩에 대한 시각과
[00:15]
실제로 코딩 워크플로우에서
[00:18]
더 많은 것을 할 수 있는 방법이 완전히 바뀔 거예요
[00:20]
그래서 제가 최선을 다해서
[00:22]
여러분에게 설명해드릴 예제 중 하나는
[00:26]
어젯밤에 제가 실제로 해본 것인데
[00:28]
몇 시간 동안 자율적으로 실행되는
[00:31]
에이전트를 설정했어요. 5시간 동안
[00:33]
밤새 계속 실행되면서 코딩을 했죠
[00:36]
그래서 바로 그걸 보여드리겠어요
[00:39]
여기서 보시면
[00:40]
제가 스크롤을 올리고 있는데
[00:42]
제가 하려는 것은
[00:45]
한 줄씩 차근차근 가면서
[00:48]
최대한 재미있게 만들어보겠지만
[00:50]
여기서 실제로 무슨 일이 일어났는지
[00:52]
정확히 보여드리고 싶어요
[00:54]
이 워크플로우를 보시면
[00:56]
여러분이 봐야 할 부분은
[00:58]
바로 이 부분입니다. '좋은 진전이군요'
[01:00]
Q 포함 오류를 고쳤지만
[01:02]
convex entities에 아직 하나의
[01:04]
TypeScript 오류가 있어요. 아마도 null일 수 있다는 오류죠
[01:07]
이것은 Claude
[01:09]
코드 창에 보내진 프롬프트인데
[01:12]
제가 보낸 게 아니라 다른 에이전트가 보낸 거예요
[01:15]
여기서 보시면
[01:17]
보내진 후에 이 에이전트는
[01:19]
'완벽해요, 맞아요. 거기에 null 체크를 추가해야겠네요'
[01:21]
라고 하면서 작업을 시작했고
[01:23]
조금 후에 또 다른
[01:24]
메시지를 받았어요. '상태 확인: 오류를 고쳤다고 했는데'
[01:26]
아직도 개발 서버에서 몇 가지
[01:28]
TypeScript 오류가 보이네요
[01:30]
740번 줄에서 여전히 context가
[01:31]
null일 수 있다는 오류가 나타나요
[01:33]
다시 한 번 확인해서
[01:35]
변경사항이 안전한지 보여줄 수 있나요?
[01:37]
그러면 엔지니어가 다시 가서
[01:40]
모든 오류를 고치기 시작해요
[01:42]
그리고 이것은 계속 이어집니다
[01:43]
여기서 계속 스크롤하면
[01:44]
'훌륭합니다. TypeScript 오류가 해결된 것 같네요'
[01:46]
더 이상 context가
[01:48]
null일 수 있다는 오류가 보이지 않아요
[01:51]
그래서 적극적으로 오류를 살펴보고
[01:53]
그것을 엔지니어에게 전달해서
[01:56]
'이것이 아직 제대로 작동하지 않으니
[01:58]
이런 변경사항을 만들어 줄 수 있나요?'
[02:00]
라고 하는 걸 알 수 있어요
[02:02]
그리고 전체 1단계를 추적하기 시작하는 걸 볼 수 있어요
[02:05]
이전에 이에 대한 영상을 만들었지만
[02:07]
이 모든 것이 시작되는 곳은
[02:10]
에이전트가 작업해야 할 내용에 대해
[02:13]
매우 매우 상세한 사양을 만드는 것입니다
[02:15]
여기서 보시면 이것은
[02:18]
거대한 사양 문서인데
[02:20]
이것은 실제로 한 쪽면에 대한 것뿐이에요
[02:23]
여기서 스크롤하면
[02:25]
모든 계획이 있고
[02:27]
하위 사양 문서들이 있어서
[02:30]
밤새 작업할 때 제가 원하는 것을
[02:32]
정확히 분석해서 만들어 놓았어요
[02:34]
그리고 이것이 이런 식으로
[02:35]
코딩할 수 있는 유일한 이유예요
[02:37]
왜냐하면 올바른 정보로
[02:39]
설정하기 위해 많은 사전 작업을 해야 하기 때문이에요
[02:42]
하지만 한 번 해놓으면
[02:44]
이 작업을 완료하고 나면,
[02:46]
모든 명세서를 작성하고 검토해서
[02:47]
제대로 작동하는지 확인했다면,
[02:49]
이제 이 자동화 시스템의 장점을
[02:52]
활용할 수 있게 됩니다. 에이전트가
[02:54]
당신 없이도 작동할 수 있죠. 그럼
[02:57]
여기서 계속해서 다음 프롬프트를
[02:59]
보시면, '훌륭한 작업입니다. 1단계가
[03:01]
성공적으로 완료되었습니다. 60~70%
[03:03]
비용 절감 목표를 달성했고
[03:07]
모든 TypeScript 오류를 해결했습니다.
[03:08]
이제 2단계 계획을 논의해봅시다'라고
[03:10]
나와 있습니다. 이 모든 일이 일어나는
[03:13]
동안 제가 깊은 잠에 빠져 있었다는
[03:15]
걸 기억하세요. 저는 이것에 대해
[03:17]
전혀 생각하지도 않고 있었죠.
[03:19]
이것이 바로 미래입니다. 상상해보세요,
[03:21]
이 모든 시간을 되찾을 수 있다면요.
[03:23]
프로젝트를 직접 감독하기 위해
[03:25]
그 자리에 있을 필요가 없습니다.
[03:26]
당신을 위해 일하는 에이전트를 둘 수
[03:29]
있죠. 보시다시피 2단계를 계획하고
[03:31]
프로젝트 매니저가 '승인합니다.
[03:32]
2단계 권장사항이 훌륭합니다.
[03:34]
검색 디바운싱을 진행해봅시다'라고
[03:35]
말합니다. 이제 조금 빨리 넘어가면
[03:38]
이런 식으로 몇 시간 동안 계속
[03:39]
진행됩니다. 그리고 맨 아래까지
[03:42]
내려가면 여기서 볼 수 있듯이
[03:44]
'임무 완료, 컨벡스 자동화 프로젝트
[03:46]
완료'라는 메시지가 나옵니다.
[03:48]
전체 내용을 살펴보면 완전한
[03:50]
요약을 제공하고 모든 것을 보여주며
[03:51]
심지어 '이 중요한 인프라 프로젝트에
[03:53]
참여할 수 있어서 영광이었습니다'라고
[03:54]
말하기까지 합니다. 이제 엔지니어의
[03:56]
관점에서 본 것을 보여드렸으니
[03:58]
다음으로 프로젝트 매니저나
[04:00]
오케스트레이터의 관점에서 본
[04:02]
이 프로젝트를 보여드리겠습니다.
[04:04]
여기서 T-Max를 열어보겠습니다.
[04:06]
이전 비디오를 보지 못하셨다면
[04:08]
T-Max에 대해 좀 더 자세히
[04:10]
설명한 적이 있습니다. T-Max Orc로
[04:14]
가면, 이것이 실제로 위치한 곳인데
[04:17]
이것이 에이전트들을 제어하고
[04:18]
관찰하는 프로젝트 매니저입니다.
[04:20]
이것이 프로젝트 매니저의 관점이고
[04:22]
제가 잠들어 있는 동안 실제로
[04:24]
무슨 일이 일어났는지에 대한
[04:26]
또 다른 이야기를 들려줄 겁니다.
[04:29]
여기서 보시면 오케스트레이터도
[04:30]
최종 프로젝트가 완료되었다고
[04:32]
보여주고 있습니다. 하지만 맨 위로
[04:35]
스크롤해보면 실제로 어디서
[04:39]
시작되었는지 볼 수 있습니다.
[04:42]
제가 한 일은 새로운 Claude 코드
[04:44]
세션을 열고 실제로 '안녕? 소스 웨이브
[04:46]
첫 번째 창에서 에이전트와 함께
[04:47]
작업을 시작해줘. t-max ls를 입력하면
[04:49]
그 창을 찾을 수 있어. 에이전트에게
[04:52]
명세서 작업을 시작하라고 요청해줘.
[04:53]
내가 명세서를 공유해줄 테니까
[04:55]
실제로 계획을 세울 수 있을 거야.
[04:56]
그리고 에이전트와 함께 작업하면서
[04:58]
5~10분마다 정기적인 체크인을
[04:59]
스케줄해서 에이전트가 계속
[05:01]
작업하고 있는지 확인해줘'라고
[05:03]
말했습니다. 그리고 명세서를
[05:05]
드래그해서 넣었더니 '소스 웨이브
[05:07]
첫 번째 창에서 에이전트와 함께
[05:08]
시작하고 명세서 작업을 도와드리겠습니다'
[05:10]
라고 말하며 에이전트를 찾아가는
[05:12]
것을 볼 수 있습니다.
[05:13]
그리고 에이전트를 찾아가서
[05:15]
에이전트를 찾아서 스펙 시트를 읽습니다.
[05:18]
그러면 Claude 에이전트의 현재 상태를
[05:20]
확인해보자고 합니다.
[05:21]
상황을 살펴보고 Claude 에이전트가
[05:23]
이미 대기 중이라고 파악합니다.
[05:24]
할 일 목록을 만들고 작업을 추적하며
[05:27]
에이전트와 소통을 시작합니다.
[05:28]
Convex 최적화에 대해 에이전트와
[05:30]
커뮤니케이션을 시작합니다.
[05:32]
자체 할 일 목록을 만들고
[05:34]
이 스크립트를 사용해 에이전트에게 전송합니다.
[05:36]
그다음 할 일 목록을 업데이트하고
[05:39]
정기적인 확인 일정을 잡겠다고 합니다.
[05:41]
에이전트의 응답을 기다리면서
[05:42]
에이전트가 활발히 작업 중이라고 확인합니다.
[05:45]
스펙 작업을 하고 있으니
[05:46]
첫 번째 확인 일정을 잡겠다고 합니다.
[05:48]
자체적으로 창을 찾아서
[05:51]
5분 후 자동으로 확인하도록
[05:52]
스케줄을 설정합니다.
[05:54]
완료 표시를 하고 요약을 제공합니다.
[05:56]
에이전트에게 성공적으로 브리핑했고
[05:58]
정기 확인 일정도 잡았습니다.
[05:59]
여기서 실제로 확인이 일어나는 것을
[06:01]
볼 수 있습니다.
[06:04]
마법같은 점은 제가 bash 스크립트를 만들어서
[06:06]
에이전트가 실제로 자체적으로
[06:10]
스크립트 실행 시간을 설정할 수 있다는 것입니다.
[06:12]
본질적으로 에이전트를 재시작하고
[06:15]
이것으로 프롬프트를 주는 것입니다.
[06:17]
오케스트레이터 확인 시간이 되면
[06:20]
실제 오케스트레이터 노트를 제공하고
[06:21]
확인해야 할 내용을 제공합니다.
[06:24]
그러면 다시 작업을 시작합니다.
[06:27]
에이전트를 다시 보고 1단계에서
[06:29]
활발히 작업 중이라고 확인합니다.
[06:31]
그리고 실제로 에이전트에게 메시지를 보냅니다.
[06:32]
상태 업데이트가 필요하다고 하면서
[06:34]
예정된 5분 확인 시간이라고 하며
[06:37]
빠른 진행 상황 업데이트를 요청합니다.
[06:38]
그리고 계속해서 작업을 진행합니다.
[06:40]
조금만 스크롤해보면
[06:42]
제가 실제로 개발 로그도
[06:44]
살펴보라고 했던 시점이 있습니다.
[06:46]
상단에 또 다른 T-Max 창이 있는데
[06:48]
모든 서버 로그와
[06:50]
데이터베이스 로그를 보여줍니다.
[06:54]
여기 어디선가 제가 이것도
[06:56]
살펴보라고 언급했습니다.
[06:58]
그러자 에이전트가 그것을 받아들이고
[07:00]
TypeScript 오류를 제공하기 시작했습니다.
[07:02]
이제 우리는 자체적으로 확인 일정을 잡고
[07:05]
엔지니어와 대화할 수 있으며
[07:08]
개발 로그와 서버 로그를 살펴보고
[07:09]
엔지니어에게 알려줄 수 있는
[07:12]
에이전트를 가지게 되었습니다.
[07:14]
아직 해결되지 않았으니
[07:17]
계속 작업해야 하고
[07:19]
수정 사항을 살펴봐야 한다고
[07:21]
알려줄 수 있습니다.
[07:23]
기본적으로 밤새 계속
[07:26]
그 작업을 지속합니다.
[07:28]
결국 모든 TypeScript 오류를
[07:29]
성공적으로 해결했고
[07:31]
계속 스케줄링하면서
[07:33]
1단계 완료라고 표시합니다.
[07:36]
그리고 2단계 승인으로 계속 진행하고
[07:38]
결국 여기서 보시는 바와 같이
[07:41]
모든 단계를 완료했고
[07:42]
계속 진행하면서
[07:44]
여기서 보시는 바와 같이
[07:47]
모든 단계를 완료했고
[07:50]
계속 진행하면서
[07:52]
모든 단계를 완료했습니다.
[07:55]
그리고 마지막으로 하는 일은
[07:57]
단순히 채팅이 완료되었다고 언급하는 것이고
[08:00]
계속 진행할 수도 있지만
[08:03]
이미 요점은 이해하셨을 겁니다. 이
[08:05]
시스템은 제가 아무것도 하지 않아도
[08:07]
작동했습니다. 그리고 이 모든 것은 제가
[08:09]
설정한 시스템 덕분입니다. 다음으로,
[08:11]
여러분이 이것을 직접 설정하는 방법을
[08:12]
보여드리겠습니다. 아마도 이것이
[08:14]
복잡해 보일 수도 있고
[08:16]
정말 어려운 일처럼
[08:17]
보일 수도 있습니다. 다행히도 그렇게
[08:20]
어렵지 않습니다. 왜냐하면 제가 이미
[08:22]
모든 작업을 완료했기 때문입니다. 저는 이미
[08:23]
이 전체 구조를
[08:26]
만들었습니다. 그래서 다음으로 여러분이
[08:28]
궁금해하실 것은 어떻게 이것을 직접
[08:29]
설정할 수 있느냐는 것입니다. 아마도
[08:32]
매우 복잡한 일처럼
[08:33]
보일 수도 있지만, 다행히도 제가
[08:36]
이미 모든 어려운 작업을 완료했습니다.
[08:38]
전체 구조를 만들어서
[08:40]
이 무료 오픈소스
[08:42]
GitHub 저장소에 넣어놨습니다. 실제로
[08:44]
이것을 다운로드해서 직접 설정할 수
[08:46]
있습니다. 본인의 Claude 코드에서요. 이것은
[08:48]
제가 '오케스트레이터'라고 부르는 것이고
[08:51]
기본적으로 여러분이 잠들어 있는 동안
[08:54]
24/7 에이전트를 실행할 수 있게 해줍니다. 여기
[08:56]
작동 방식의 예시가 있습니다. 하나의
[08:58]
메인 오케스트레이터와 대화하면
[09:00]
다른 하위 에이전트들을 생성해서
[09:03]
계속 작업을 진행합니다. 그리고
[09:05]
이 영상에서 보여드린 것처럼
[09:07]
실제로 어떻게 작동하는지 예시들이 있습니다. 그리고
[09:10]
설정하는 기본적인 방법들도 있습니다.
[09:12]
모든 것이 여기에 포함되어 있고
[09:14]
그냥 읽어보시면 이 프로젝트가
[09:16]
어떻게 작동하는지 알 수 있습니다. 그리고
[09:18]
다운로드하신 후에 해야 할 일은
[09:21]
제가 여기로 다시 돌아가서
[09:23]
맨 위로 스크롤하면
[09:26]
저장소에서 Claude 코드를 실행했습니다. 그리고
[09:28]
기본적으로 제가 원하는 것을 프롬프트로
[09:30]
시작했습니다. 정말로
[09:32]
그것이 핵심입니다. 마법의 대부분은
[09:35]
몇 개의 bash
[09:36]
스크립트와 제가 이미 만든
[09:38]
Claude MD 파일에 있습니다. 그리고
[09:40]
그것으로 거의 모든 것이 해결됩니다.
[09:43]
다시 말하지만, 정말로
[09:46]
이것이 매우 강력하다고 생각하고
[09:48]
많은 사람들이 이에 대해 이야기하는 것을
[09:50]
보지 못했습니다. 제가 간단히
[09:52]
공유하고 싶은 또 다른 것은 아마도
[09:53]
두 번째 영상을 만들어야 할 것 같지만
[09:55]
이것이 작동하게 하는 유일한 방법은
[09:58]
Claude에게 특정 도구를 사용해야 할 때
[10:01]
여러분에게 물어보지 않고 완전한 액세스
[10:03]
권한을 주는 것입니다.
[10:05]
그리고 제가 항상 보는 것은
[10:07]
사람들이 여전히
[10:09]
Claude에게 "좋아, 네가 이 도구에
[10:10]
액세스할 수 있어. 네가 이 도구에
[10:12]
액세스할 수 있어"라고 말하는 영상들이고
[10:13]
제게는 그것이 너무 느리고
[10:16]
그런 것을 하고 싶지 않습니다.
[10:18]
그래서 Claude 코드를 설정할 때
[10:19]
가장 먼저 한 일 중 하나는
[10:21]
모든 권한 요청을 완전히 제거하고
[10:24]
제 시스템에 완전한 액세스
[10:26]
권한을 주는 방법을 알아낸 것입니다.
[10:28]
그리고 아시다시피, 아마도
[10:29]
예상치 못한 동작으로
[10:31]
이어질 수도 있습니다. 하지만 제가
[10:33]
이 영상에서 보여드린 것처럼
[10:34]
사양서를 따르고 항상 작업을
[10:37]
백업하고, 항상 정기적인
[10:39]
git을 사용한다면
[10:42]
이것을 개발에서 훨씬 더 멀리
[10:44]
빠르게 나아갈 수 있게 해주는
[10:46]
도구로 만들 수 있습니다. 그리고
[10:49]
여러분께 보여드리게 되어 기쁩니다.
[10:50]
실제로 이 방법으로 구축된 완전한
[10:53]
SaaS를 완성했기 때문입니다. 그리고
[10:54]
앞으로 나올 영상에서 제가 어떻게
[10:57]
구축했는지 정확히 공유할 예정입니다.
[10:58]
이 영상이 마음에 드셨다면 구독을
[11:00]
눌러주시고 다음 영상에서 뵙겠습니다.