[00:00]
에이전트가 여러분을 대신해서
[00:02]
많은 가치 있는 일들을 수행하기 원한다면,
[00:05]
에이전트는 자신의 작업을 검증할 수 있어야 합니다.
[00:08]
검증이 왜 그렇게 중요할까요?
[00:10]
검증은 에이전트에 대한 신뢰를 높이고,
[00:13]
신뢰는 가장 귀중한 엔지니어링 리소스인 시간을 절약합니다.
[00:16]
Claude Code 팀은 최근 많은 기능을 출시했지만,
[00:19]
그 중에서도 특히 눈에 띄는 기능이 있습니다.
[00:22]
이제 스킬, 서브 에이전트,
[00:24]
그리고 커스텀 슬래시 명령어 내에서
[00:27]
훅을 실행할 수 있습니다.
[00:30]
이것은 대부분의 엔지니어들이 놓친 중요한 릴리즈인데,
[00:34]
왜냐하면 이제 특화된
[00:36]
자기 검증 에이전트를
[00:38]
이 코드베이스 안에서 구축할 수 있다는 뜻이기 때문입니다.
[00:46]
새로운 Claude Code 인스턴스를 시작해서
[00:47]
'/review finances February' 명령어를 실행해 보겠습니다.
[00:49]
그리고 특정 2월 CSV 파일을 찾아보겠습니다.
[00:52]
월별 재정 관리를 한다고 상상해보세요.
[00:54]
이것은 제가 재정 처리를 자동화하기 위해 구축하고 있는 시스템입니다.
[00:57]
이 파일의 상대 경로를 복사해서
[00:59]
여기에 붙여넣어 보겠습니다.
[01:01]
이것은 재정을 검토하고,
[01:03]
다양한 형식을 맞추고,
[01:05]
여러 그래프를 생성하고,
[01:07]
이달 재정에 대한 통찰을 제공하는
[01:10]
끝에서 끝까지의 에이전트 파이프라인을 시작할 것입니다.
[01:12]
여기서 중요한 것은
[01:14]
실제 도구 자체가 아닙니다.
[01:17]
새로운 가치 있는 기능이 있을 때마다
[01:19]
저는 그것을 활용해서 구축하고
[01:21]
그 가치 제안을 진정으로 이해하기를 좋아합니다.
[01:23]
그래서 여기서 그것을 할 것입니다.
[01:26]
이 전체 멀티 에이전트 파이프라인은
[01:27]
매 단계마다
[01:30]
특화된 자기 검증을 실행할 것입니다.
[01:31]
기본 에이전트가 작업을 시작하는 것을 볼 수 있습니다.
[01:34]
이것을 백그라운드에서 실행시키고
[01:36]
나중에 다시 돌아와 보겠습니다.
[01:38]
제가 여기서 보여드리고 싶은 것은
[01:39]
특화된 자기 검증 에이전트를
[01:41]
단계별로 구축하는 방법입니다.
[01:44]
가장 기초적이고 가장 중요한 것부터 시작해 보겠습니다.
[01:47]
바로 프롬프트입니다.
[01:48]
프롬프트죠.
[01:51]
Claude Code에서 프롬프트는
[01:54]
커스텀 슬래시 명령어 형태로 제공됩니다.
[01:56]
새로운 에이전틱을 만들어 보겠습니다.
[01:59]
명령어 디렉토리를 열고
[02:00]
새로 만들기를 누른 다음
[02:02]
CSV 편집 마크다운 파일을 만들겠습니다.
[02:03]
이것은 CSV 파일 편집을 도와주는 새로운 프롬프트입니다.
[02:06]
이 명령어를 한 가지 일을
[02:07]
매우 잘하도록 특화시키고 있습니다.
[02:09]
따라서 에이전트도 그 한 가지만
[02:11]
잘하도록 특화시키고 있습니다.
[02:13]
코드 스니펫 AGP가 있습니다.
[02:15]
채널을 팔로우해 왔다면
[02:17]
이것이 무엇인지 아실 것입니다.
[02:20]
이것은 에이전틱 프롬프트 템플릿이고
[02:21]
몇 가지 새로운 수정사항을 추가했습니다.
[02:23]
여기 맨 위에
[02:25]
거대한 프론트 매터가 있는 것을 볼 수 있습니다.
[02:27]
프론트 매터가
[02:29]
훅을 통해 특화된 자기 검증을 구축할 수 있게 해줍니다.
[02:31]
여기서 pre-tool use, post-tool use, 그리고 stop을
[02:33]
지원하는 것을 볼 수 있습니다.
[02:35]
이것이 프롬프트, 서브 에이전트, 그리고
[02:37]
스킬 훅에서 지원되는 것입니다.
[02:40]
새로운 프롬프트를 손으로 작성할 때,
[02:42]
그건데 저는 여전히 그렇게 합니다.
[02:44]
메타 에이전틱으로
[02:46]
새로운 프롬프트, 서브 에이전트, 그리고
[02:48]
다른 스킬들을 빠르게 생성하도록 도와줍니다.
[02:50]
하지만 저는 여전히
[02:52]
직접 프롬프트를 작성하는 것을 좋아합니다.
[02:54]
수동으로 작성하는 것을 좋아합니다. 에이전트로
[02:55]
스케일을 확장하고 크게 나가고 싶은
[02:57]
영역들이 있습니다. 시스템을 구축하는
[02:58]
시스템을 구축할 때, 에이전트 작업을 하고
[03:00]
에이전틱 패턴과 도구를 정말로 이해하려고
[03:01]
할 때는 속도를 늦추고 수동으로
[03:03]
해야 합니다. 그럼 이제 이 프롬프트를
[03:06]
작성해 보겠습니다. CSV 편집을 위해
[03:08]
위에서 아래로 가는 방식을 좋아합니다.
[03:09]
이것은 CSV 편집 도구가 될 예정입니다.
[03:11]
CSV 파일을 수정하고 리포트를
[03:12]
생성하게 될 것입니다. 좋습니다.
[03:14]
이렇게 특화시킬 예정입니다. CSV 파일을
[03:17]
입력받고 수정사항도 입력받을 것입니다.
[03:19]
이것은 사용자 요청입니다. 여기서는
[03:21]
사용자 요청이라고 부르겠습니다. 이것은
[03:24]
단순한 CSV 파일 작성입니다. 이
[03:26]
에이전트를 특화시키고 싶습니다.
[03:28]
검색, 읽기, 쓰기, 편집 기능을
[03:30]
원하고, 이 정도면 충분할 것 같습니다.
[03:32]
나머지 컨텍스트 포크는 제거하겠습니다.
[03:34]
이것이 별도 에이전트에서 실행되는 것을
[03:36]
원하지 않습니다. 현재 가지고 있는
[03:38]
에이전트에서 실행되기를 원합니다.
[03:40]
모델에서 호출 가능하게 만들고 싶습니다.
[03:42]
이것을 false로 유지하겠습니다. 이제
[03:43]
핵심 부분인 훅이 나왔습니다. 여기서
[03:45]
무엇을 자체 검증하고 싶나요? CSV
[03:47]
파일을 다룰 때마다 에이전트가 해당
[03:50]
CSV가 올바른 형식인지 검증할 수
[03:52]
있기를 원합니다. 그래서 post tool use
[03:54]
훅이 필요합니다. 이것은 편집 쓰기
[03:56]
이후에 사용할 수 있게 해주고, 여기에
[04:00]
읽기도 추가하겠습니다. 이 명령어들
[04:02]
중 하나가 실행된 후에 특정 훅을
[04:05]
실행하게 될 것입니다. 특정 스크립트를
[04:08]
실행할 예정입니다. pre-tool use는
[04:09]
제거하고 여기서 멈추겠습니다. 이것은
[04:11]
post hook을 echo하게 될 것입니다.
[04:13]
코드베이스에 있는 실제 스크립트로
[04:15]
업데이트하겠습니다. 강력한 자체 검증
[04:17]
기술을 가진 에이전트 시대에 코드베이스를
[04:20]
구성하는 방법은 이와 같습니다.
[04:22]
일반적인 .claude에서는 명령어
[04:24]
에이전트 스킬 등등이 있습니다.
[04:26]
hooks 안에는 validators 디렉토리를
[04:28]
저장하는 것을 좋아합니다. 여기에
[04:30]
많은 validator들이 있는 것을 볼 수
[04:33]
있습니다. 여기서 특히 하나를 사용할
[04:34]
예정입니다. CSV single validator입니다.
[04:36]
에이전트가 이것을 시작하기를 원합니다.
[04:38]
uvun을 입력하겠습니다. 이 특정 프로젝트
[04:40]
디렉토리의 경로가 필요합니다. 여기서
[04:42]
claude 변수를 사용하겠습니다. 그리고
[04:44]
claude가 될 것입니다. 기본적으로
[04:45]
이것의 경로입니다. 이것에 대한 빠른
[04:48]
참조를 가져와서 붙여넣겠습니다. 이제
[04:50]
정확히 필요한 것을 가지고 있습니다.
[04:53]
좋습니다. 이것이 전부입니다. 여기서
[04:54]
볼 수 있듯이 모든 validator들이 각각의
[04:56]
로그 파일을 출력합니다. 잠시 후
[04:58]
이것을 자세히 살펴보겠습니다. 지금
[04:59]
여기에 있는 것은 모든 post tool use
[05:00]
호출 이후에 이 스크립트를 실행하는
[05:02]
에이전트입니다. 여기에 once 변수가
[05:04]
있습니다. 실제로는 자체 검증을
[05:06]
계속 유지하고 싶었습니다. 제거하겠습니다
[05:08]
[05:10]
[05:11]
[05:15]
[05:18]
[05:19]
[05:21]
[05:23]
이것을 제거하겠습니다. 그리고 실제
[05:25]
프롬프트가 있습니다. 지금까지
[05:26]
수천 개의 프롬프트를 작성했습니다.
[05:28]
코드 스니펫 내에서, 메타
[05:30]
프롬프트와 메타 스킬, 메타
[05:32]
에이전틱 내에서 할 수 있는
[05:34]
가장 중요한 일 중 하나는 재사용 가능한 형식을
[05:37]
만드는 것입니다. 그래야
[05:38]
생각할 필요가 없고 에이전트들도
[05:40]
프롬프트 형식에 대해
[05:41]
생각할 필요가 없죠. 보시면
[05:43]
이 코드 스니펫을 실행할 때마다
[05:45]
정확히 같은 구조를 얻게 됩니다.
[05:47]
그리고 다시, 채널을 계속
[05:48]
시청해 오셨다면 이 구조를
[05:50]
잘 이해하실 겁니다. 바로
[05:51]
작업을 시작하겠습니다. 여기서 필요한 건
[05:54]
이 두 섹션뿐입니다. 목적은
[05:56]
물론 수정하거나 보고서를
[05:58]
만드는 것이고, 실제로는 CSV 파일에 대한
[06:01]
보고서를 원합니다. 그리고 여기에
[06:03]
3단계 워크플로우가 있습니다. CSV 파일을 읽고
[06:05]
이것이 첫 번째 인수가 될 것이고
[06:07]
두 번째는 수정하거나
[06:09]
보고서를 만드는 것입니다. 그리고 마지막으로
[06:12]
결과를 보고할 것입니다.
[06:14]
좋습니다. 여기서 커서 탭을
[06:15]
꺼놨습니다. 그래서 수동으로
[06:17]
직접 할 수 있도록 했습니다.
[06:19]
이 훌륭한 도구들로 게을러지고
[06:21]
싶지 않거든요. 물론 이런 것들의
[06:22]
대부분에는 에이전트를
[06:24]
사용하고 싶을 것입니다.
[06:25]
새로운 것을 배우고 있을 때,
[06:26]
새로운 패턴을 설정하고 있을 때는
[06:29]
직접 손으로 하고
[06:30]
에이전틱 레이어에서는 직접
[06:32]
손으로 하는 것이 정말 좋다고
[06:34]
생각합니다. 조금 더 천천히 움직이세요.
[06:36]
평소에 하던 에이전틱
[06:38]
속도로 움직이지 마세요.
[06:40]
코어 4를 배포하는 방법을
[06:42]
배운다면 이런 것들에 시간을 투자하고 싶을 것입니다.
[06:46]
컨텍스트 모델 프롬프트 도구를 제대로
[06:48]
사용하면 매우, 매우 큰 임팩트를 주는
[06:50]
엔지니어가 될 수 있습니다.
[06:52]
자, 시작해 보겠습니다. 자체 검증하는
[06:55]
CSV 편집 프롬프트가 있습니다.
[06:56]
여기서 pandas를 사용하고 있습니다.
[06:59]
그래서 pd.read를 하고
[07:01]
기본적으로 그게 전부입니다, 맞죠?
[07:02]
여기서 실행하고 싶은 검증 구조가
[07:05]
무엇이든 실행할 수 있다고 상상할 수 있습니다.
[07:07]
그리고 여기서 볼 수 있듯이
[07:09]
문제가 생기면 이슈 세트를
[07:10]
반환할 것입니다. 여기서 핵심은
[07:13]
문제가 생겼을 때 에이전트를
[07:15]
안내하는 것입니다. 여기에
[07:17]
이 라인이 있습니다. 에이전트가
[07:18]
이 검증 명령을 호출한 후
[07:20]
에이전트에 대한 응답을 만들 때
[07:22]
다음과 같이 말하고 있습니다.
[07:24]
이 CSV 오류를 해결하세요. 그리고
[07:26]
파일 경로를 지정하고 있습니다.
[07:28]
그런 다음 에이전트가 해결할 수 있도록
[07:30]
모든 오류를 언로드할 것입니다.
[07:33]
그럼 새 터미널 창에서
[07:34]
이것을 테스트해 보겠습니다.
[07:36]
클라우드 코드 인스턴스가
[07:38]
Opus를 실행하고 있습니다. 그리고
[07:40]
새로운 /csvedit가 있습니다.
[07:43]
여기 힌트 매개변수 덕분에
[07:44]
인수 힌트가 있습니다.
[07:46]
이제 편집할 CSV 파일을
[07:48]
전달하면 됩니다. 코드베이스에 있는
[07:50]
이것은 간단할 거예요, 맞죠? 우리는 실제로 여기서 CSV 편집을 하는 게 아니에요.
[07:51]
아마 이름을 조금 다르게 지었어야 했을지도 모르지만
[07:52]
아이디어는 이해하시겠죠?
[07:54]
이 에이전트는 읽기, 편집, 쓰기가 가능합니다.
[07:55]
여기서 무엇을 하고 있는지 보시죠.
[07:57]
파일 위치를 찾았고
[07:58]
이제 데이터 구조에 대해 보고할 예정입니다.
[08:00]
아시다시피, 여기서 마법은
[08:01]
우리 에이전트가 실행된 후에 일어납니다.
[08:04]
여기 훌륭한 보고서가 있죠.
[08:06]
너무 화려하지도 않고
[08:08]
너무 흥미롭지도 않죠, 맞죠?
[08:09]
하지만 우리 에이전트는
[08:11]
이 자체 검증을 실행했습니다. 여기서 중요한 아이디어는
[08:14]
이것이 이 사용 사례에 특화된 자체 검증이라는 점입니다.
[08:17]
이것이 얼마나 중요한지 아무리 강조해도
[08:19]
지나치지 않아요.
[08:21]
이 자체 검증이 이 프롬프트의 목적에
[08:24]
초집중되어 있다는 것이 핵심입니다.
[08:28]
프롬프트는 서브 에이전트까지 확장되고
[08:30]
스킬까지 확장됩니다.
[08:32]
어떤 형식이든, 어떤 패키징이든
[08:34]
프롬프트를 넣는 방식은
[08:35]
사실 중요하지 않습니다.
[08:37]
기억하세요, 모든 것은 결국
[08:39]
핵심 4가지로 귀결됩니다: 컨텍스트, 모델, 프롬프트,
[08:42]
도구. 결국, 모든 추상화는 이것입니다.
[08:45]
이것은 다시 말하지만 특화된 강력한
[08:48]
결정론적 레이어를 추가합니다.
[08:49]
결과를 보여드리겠습니다.
[08:50]
관찰 가능성을 갖고
[08:52]
모든 것을 실제로 로깅하는 것이
[08:54]
왜 그렇게 중요한지 보여주는 이유 중 하나입니다.
[08:56]
여기서 CSV 단일 검증기의
[08:58]
출력을 볼 수 있습니다.
[09:01]
모든 것이 정상적으로 통과된 것을 볼 수 있죠.
[09:03]
이 CSV 파일을 완벽하게 파싱할 수 있었습니다.
[09:04]
실제로 유효한 CSV 파일입니다.
[09:07]
이제 이것을 망가뜨려보고
[09:09]
특화된 자체 검증 도구가
[09:10]
실행될 수 있을 때 우리 에이전트가 무엇을 하는지 봅시다.
[09:13]
CSV를 망가뜨려보겠습니다.
[09:14]
여기 마지막 따옴표를 제거하겠습니다.
[09:15]
이제 무슨 일이 일어나는지 봅시다.
[09:17]
이 에이전트를 클리어하겠습니다.
[09:19]
정보가 없는 상태죠. 여기서 몇 번 위로 올릴 수 있습니다.
[09:21]
CSV 편집, 같은 파일,
[09:23]
데이터 구조에 대해 보고하세요.
[09:26]
이제 여기서 무슨 일이 일어나는지 보세요.
[09:28]
여기서 진정한 마법이 일어납니다.
[09:30]
읽기를 했고 바로 읽기 후크가 실행되어
[09:33]
망가졌습니다. 그리고 우리 검증기가
[09:35]
'이봐, 우리가 찾은 이 오류를 해결해'라고 말했습니다.
[09:37]
그러자 에이전트가 즉시 수정했습니다.
[09:39]
이제 다시 실행할 것입니다.
[09:41]
실제로 올바르게 보고를 하고 있고
[09:43]
수정된 문제를 언급합니다.
[09:44]
그래서 거기서 무슨 일이 일어났을까요?
[09:47]
정확히 무슨 일이 일어났는지 아시겠죠?
[09:50]
우리는 이것을 단계별로 작업해왔습니다.
[09:53]
도구 사용 후 후크가 실행되어
[09:55]
우리 에이전트 워크플로우에
[09:56]
결정론성을 삽입했습니다.
[09:58]
좋습니다. 우리가 요청한 것을
[10:00]
수행했을 뿐만 아니라
[10:01]
정말 간단한 예제를 실행하고 있는 건데요.
[10:04]
일부 엔지니어들은 이렇게 생각할 것 같아요:
[10:05]
'와, 그거 너무 간단해.
[10:07]
왜 CSV 검증을 위해 단일 20줄 프롬프트를
[10:09]
CSV 업데이트를 위해 사용하는 거야? 그럴 필요 없어.
[10:12]
어쩌고저쩌고. 모델들이
[10:14]
이제 충분히 좋아졌어. 그만해. 완전히 그만,'
[10:17]
제발요. 당신은 한 가지를 탁월하게
[10:20]
잘하는 집중된 에이전트를 구축하고 싶어야 합니다.
[10:23]
여러 태스크와 여러 최종 상태를 가지게 되죠.
[10:25]
이제 우리는 이를 더욱 발전시킬 수 있습니다.
[10:27]
프롬프트, 서브 에이전트, 스킬에 내장할 수 있는
[10:30]
전문화된 훅을 통해서 말이죠.
[10:32]
왜 이게 그렇게 중요할까요?
[10:35]
이건 정말 중요합니다.
[10:36]
전문화를 더욱 밀어붙일 수 있기 때문이에요.
[10:40]
제 CSV 에이전트는 이제 결정론적인 방식으로
[10:43]
자신의 작업을 검증할 수 있습니다.
[10:45]
이건 엄청나게 강력해요.
[10:47]
더 많은 엔지니어들이
[10:48]
이에 대해 이야기하지 않는다는 게 충격적입니다.
[10:50]
지금 상황의 이상한 갭을 보여준다고 생각해요.
[10:53]
많은 '바이브 코딩'이 일어나고 있어요.
[10:54]
엔지니어들조차 바이브 코딩을 시작하고
[10:56]
뇌를 끄기 시작했습니다.
[10:59]
게을러지지 마세요. 날카롭게 유지하고 계속 배우세요.
[11:02]
그리고 그렇게 하는 핵심 방법 중 하나는
[11:04]
문서를 읽어야 한다는 것입니다.
[11:06]
실제로 앉아서 문서를 읽으세요.
[11:09]
너무나 많은 엔지니어들과 바이브 코더들이
[11:11]
페이지 상단에 와서 복사하고
[11:12]
코딩 툴을 열어서 붙여넣기하고
[11:15]
이걸로 PC 만들어줘 하는 걸 보고 있어요.
[11:16]
그렇게 할 때 여러분은 전혀 배우지 못합니다.
[11:19]
전체 학습 여정이 바로 그 여정 자체입니다.
[11:22]
결국 여러분은 다음번을 위한
[11:24]
지식을 얻게 됩니다.
[11:26]
하지만 이런 식으로 하면
[11:28]
실제로 문서를 읽지 않게 되고
[11:30]
여러분의 에이전트가 뭘 하는지
[11:31]
모르게 됩니다.
[11:33]
그게 바로 바이브 코딩이에요.
[11:36]
제 생각에는 바이브에 너무 의존하는 거죠.
[11:38]
이게 뭐가 문제냐면?
[11:40]
진짜 엔지니어링과
[11:41]
바이브 코딩, 뭐라고 부르든 상관없지만
[11:44]
바이빙, 바이브 엔지니어링
[11:46]
어떤 용어를 쓰든
[11:47]
상관없어요.
[11:49]
가장 큰 차이점은
[11:50]
엔지니어는 자신의 에이전트가 뭘 하는지 안다는 것입니다.
[11:53]
그들이 뭘 하는지 알고 싶다면
[11:55]
알아야 하고 구축하고 있는 것의
[11:57]
문서를 읽어야 합니다.
[12:00]
이를 피할 방법은 없어요.
[12:01]
작은 사이드 이야기였습니다.
[12:04]
너무 많은 엔지니어들이
[12:06]
학습을 아웃소싱하는 걸 보고 있어요.
[12:09]
그게 바로 자기 비하 과정이
[12:10]
시작되는 방법입니다. 배움을 멈추는 거죠.
[12:13]
시간을 내서
[12:14]
문서를 읽고
[12:16]
무엇을 할 수 있는지 이해해서
[12:17]
여러분의 에이전트에게 그것을 가르칠 수 있도록
[12:19]
하기를 강력히 추천합니다.
[12:22]
이건 매우 강력합니다. 우리 에이전트가
[12:25]
스스로 그 오류를 해결했어요.
[12:27]
이제 제가 CSV 편집을 실행할 때마다
[12:29]
에이전트가 완료 시 검증을 할 겁니다.
[12:31]
바로 그겁니다. 원한다면
[12:34]
지금 비디오를 멈춰도 됩니다.
[12:35]
바로 그거에요. 자기 검증이 이제 전문화 가능합니다.
[12:38]
예전에는 settings.json 파일에
[12:40]
이런 식으로 글로벌 훅을 작성하는 것에
[12:43]
갇혀있었습니다.
[12:44]
여기서 훅을 작성하곤 했죠.
[12:46]
그것도 훌륭했고 매우 중요하고 강력했어요.
[12:48]
여전히 그런 것들을 하고 싶을 겁니다.
[12:51]
예를 들어, 우리는 코드베이스를 보호하는
[12:54]
클라우드 코드 데미지 컨트롤 스킬을 구축했고
[12:56]
매우 빠르게 강력한 훅을 설정해서
[12:58]
명령어를 차단합니다.
[13:00]
하지만 여기서 얻는 것은 정말, 정말 강력한 것
[13:03]
정말 강력한 무언가입니다
[13:03]
정말 특별합니다. 이것은 전문화된 자기
[13:06]
검증입니다. 제가 100번도 더
[13:07]
말씀드린 내용이죠. 바로 여기서
[13:09]
일어나고 있는 일입니다, 그렇죠? 제가
[13:11]
오늘 여러분과 공유하고 싶었던 하나의
[13:12]
아이디어입니다. 자, 이것은 단지
[13:13]
프롬프트일 뿐이죠? 이제 이것이
[13:15]
서브 에이전트와 스킬 내부에서 어떻게
[13:17]
보이는지 살펴보겠습니다. 매우
[13:19]
비슷하게 보이지만, 몇 가지
[13:20]
주의사항과 언급할 점들이 있습니다.
[13:25]
릴리즈 노트를 열어보면, 제가
[13:27]
hooks를 검색해보겠습니다. 이렇게
[13:29]
가치 있는 기능이 이 불릿 포인트
[13:31]
목록에 묻혀있다는 것이 정말
[13:34]
놀랍지만, Cloud Code 팀은
[13:36]
정말 열심히 일하고 있습니다. 어쨌든
[13:37]
제가 여기서 말하려는 것은? 지금
[13:39]
일어나고 있는 이상한 일이 있는데
[13:40]
Cloud Code 팀이 스킬과 커스텀 슬래시
[13:43]
명령어를 하나로 결합하고 있습니다.
[13:46]
저는 이것을 별로 좋아하지 않습니다.
[13:50]
어, 스킬을 검색해보겠습니다.
[13:51]
맞습니다. 네, 슬래시 명령어와
[13:53]
스킬을 병합. 매우 흥미로운
[13:56]
일입니다. 팀이 아마도 자신들이
[13:58]
실제로 슬래시 명령어를 실행하는
[14:01]
또 다른 방법을 만들었다는 것을
[14:04]
깨달았을 것이고, 이는 다시 우리가
[14:07]
채널에서 항상 이야기하는 Core 4와
[14:08]
함께하는 기본 아이디어를 검증합니다.
[14:10]
모든 것은 결국 에이전트에서
[14:12]
실행되는 프롬프트가 됩니다. 컨텍스트,
[14:14]
모델, 프롬프트, 도구. 제가 수백만 번
[14:15]
말씀드린 내용입니다. 그리고 수백만 번
[14:16]
더 말씀드릴 것입니다. 왜냐하면
[14:18]
에이전트에 관한 많은 정보들이 과장되어
[14:22]
있고 실질적인 정보가 부족하기
[14:24]
때문입니다. 종종 엔지니어링에서
[14:26]
새로운 스킬을 배울 때, 전문성의
[14:28]
포트폴리오를 구축할 때, 실제로는
[14:31]
네 가지 기본적인 사실이 있고,
[14:34]
이것들을 이해하고 마스터하면
[14:36]
매우 멀리 갈 수 있고 매우
[14:38]
유능해질 수 있습니다. Core 4가
[14:39]
그 중 하나이고, 여러분도 여기서
[14:41]
볼 수 있습니다. 슬래시 명령어와
[14:43]
스킬의 병합. 그들은 같은 것입니다.
[14:46]
프롬프트입니다. 어쨌든, 그것을
[14:47]
언급하고 싶었습니다. 서브 에이전트와
[14:48]
스킬 내부의 자기 검증이 어떻게
[14:51]
보이는지 살펴보겠습니다. 에이전트로
[14:53]
가보겠습니다. 여기에 몇 개의
[14:54]
에이전트가 있는 것을 볼 수 있습니다.
[14:56]
CSVedit 에이전트가 필요합니다.
[14:58]
같은 것을 만들어보겠지만
[15:00]
에이전트로 만들어보겠습니다. 에이전트가
[15:03]
우리에게 주는 것은? 에이전트는
[15:05]
프롬프트보다 두 가지 핵심적인
[15:07]
것을 제공합니다. 병렬화를
[15:09]
제공하죠. 따라서 우리는 작업을
[15:11]
병렬화할 수 있습니다. 동시에 여러
[15:14]
에이전트를 배포할 수 있습니다.
[15:17]
또한 컨텍스트 격리를 제공하고
[15:20]
효과적으로 컨텍스트 윈도우를
[15:22]
위임합니다. 이 에이전트를 위한
[15:24]
스니펫이 있습니다. 이것은 에이전틱
[15:26]
에이전트가 될 수 있습니다. 여기서
[15:28]
같은 종류의 형식을 볼 수
[15:29]
있습니다. 모든 옵션이 바로
[15:31]
나열되어 있습니다. 그리고 우리가
[15:32]
원하는 것을 정확히 선택할 수
[15:34]
있습니다. 제가 작업할 때 모든
[15:36]
옵션을 주는 것을 좋아하고, 그다음에
[15:38]
이전 프롬프트에서 가져온 내용입니다. 직접 요청했을 때만 사용하세요.
[15:42]
그리고 말할게요
[15:43]
CSV 편집 에이전트라고 명확하게 표시하겠습니다.
[15:46]
모든 도구가 필요하지는 않습니다.
[15:49]
사실 프롬프트에서 도구를 그대로 가져다 쓸 수 있어요.
[15:52]
그리고 비허용은 필요 없습니다.
[15:53]
모델 권한 모드가 있네요.
[15:55]
그냥 제거할 수 있습니다
[15:57]
스킬도요. 스킬은 사용하지 않을 거예요.
[15:59]
그리고 훅이 있습니다. 동일한 방식이에요.
[16:00]
pre와 stop을 삭제하겠습니다.
[16:03]
이걸 복사해서 붙여넣을게요.
[16:04]
또 뭐가 있나요? 뭔가 삭제했네요.
[16:08]
아, 색상이네요. 알겠습니다.
[16:10]
그냥 복사하겠습니다
[16:11]
정확히 동일한 프롬프트도요.
[16:13]
이것이 매우, 매우 비슷하다는 것을 알 수 있을 겁니다.
[16:15]
구조가 매우 유사해요. 약간 다른 부분이 있긴 하지만요
[16:18]
왜냐하면 기억하세요
[16:19]
프롬프트는 인수를 받을 수 있지만
[16:22]
서브 에이전트는 그냥 전달받은 프롬프트를 받기 때문입니다.
[16:24]
그래서 이런 식으로 조정할 수 있어요.
[16:26]
프롬프트에서 가져오기 그리고 나서
[16:28]
프롬프트에서 가져오거나 프롬프트에서 결정하는 것이
[16:32]
더 나은 표현일 것 같네요.
[16:34]
훌륭합니다. 같은 방식으로 할 수 있어요.
[16:36]
이 에이전트를 종료해보겠습니다.
[16:37]
그리고 에이전틱 워크플로우가 아마 완료되었을 거예요.
[16:39]
좋네요. 8분짜리
[16:41]
에이전틱 워크플로우가 자동으로
[16:44]
이번 달 제 재정을 에이전틱하게 처리했습니다.
[16:46]
물론 모의 데이터를 사용하고 있어요.
[16:47]
실제 제 재정은 아닙니다.
[16:49]
여기서 훌륭한 분석을 얻었습니다.
[16:50]
잠시 후에 다시 돌아와서 살펴보겠습니다.
[16:52]
특화된 자기 검증을 사용하는 서브 에이전트를 보여드리고 싶어요.
[16:54]
파일당 하나의 에이전트를 배포할 거예요.
[16:56]
다시 말하지만, 이것이 서브 에이전트가 제공하는 기능입니다.
[16:58]
병렬화를 제공해서
[17:00]
여러 버전에 걸쳐 에이전트를 확장할 수 있게 해줍니다.
[17:02]
모의 입력 데이터에서 파일당 하나의 CSV 편집 에이전트를 사용하고
[17:05]
지출 파일에 세 개의 새로운 행을 추가하여 밸런스를 적절히 증가시킵니다
[17:10]
이 CSV 파일들에서는 밸런스가 있기 때문입니다
[17:14]
여기서 볼 수 있듯이 밸런스가 있을 거예요
[17:17]
실제로 UI를 켜서 보여드릴게요
[17:20]
여기서 볼 수 있듯이
[17:22]
밸런스가 있고 이것은 위로 올라갑니다
[17:24]
이게 위로 올라갈 때
[17:26]
여기에 650을 추가하는데
[17:29]
이것이 예금이기 때문입니다. 그래서 저 라인을 추가한 거예요
[17:31]
맞죠. 밸런스가 정확한지 확인하세요.
[17:33]
위로 올라가면서
[17:34]
밸런스가 맞는지 확인합니다.
[17:36]
4개의 CSV 에이전트를 병렬로 시작해서
[17:38]
각각의 파일을 편집하겠습니다.
[17:41]
시작됐네요. 보시다시피
[17:42]
이것들이 쌓이기 시작하고 있습니다.
[17:44]
다시 말하지만, 여기서 핵심 아이디어는
[17:48]
이 모든 에이전트가 실행된 후에
[17:49]
방금 작업한 파일을 검증할 거라는 것입니다.
[17:52]
개별 프롬프트가 자기 검증을 할 수 있을 뿐만 아니라
[17:53]
자기 검증을 하는
[17:55]
서브 에이전트를 확장할 수 있습니다.
[17:57]
정말 생각해보세요. 정말 생각해보세요.
[18:00]
이것은 특화된 자기 검증입니다.
[18:01]
특정 명령을 확장할 수 있습니다.
[18:03]
제 다른 명령들을 확인해보세요.
[18:05]
Build.md가 있습니다.
[18:07]
린터가 있어요.
[18:08]
여기서 실행되는 포매터가 있고
[18:10]
완전히 새로운 Astral UV와 Ruff 툴링을 사용하고 있습니다.
[18:13]
이것은 제 빌드 에이전트가 실행된 후에 실행될 거예요
[18:15]
매번 실행됩니다
[18:17]
매번 실행됩니다. 자, 여기서 stop 시점에 두 개의 훅이 실행되고 있어요.
[18:19]
에이전트가 완료되면, 빌드 에이전트가 실행될 때만
[18:21]
여기 있는 모든 코드를 검토하게 됩니다.
[18:23]
맞죠? 필요하지 않을 때는
[18:25]
명령어를 실행하지 않아요.
[18:26]
특정 상황에서만 실행합니다.
[18:28]
이건 그냥 두 가지 간단한 예시일 뿐이에요.
[18:30]
이것을 정말 확장해서
[18:32]
프롬프트 레벨까지 내려갈 수 있고,
[18:34]
그런 다음 여러분만의 에이전트와
[18:35]
여러분만의 스킬로 푸시할 수 있습니다.
[18:37]
그리고 여기서 이것이 정말 강력해집니다.
[18:40]
마이그레이션을 하고 있다고 상상해보세요.
[18:41]
데이터베이스의 필드를
[18:43]
업데이트하고 있다고 상상해보세요.
[18:44]
여러분이 직접 와서
[18:46]
검증할 만한 어떤 종류의 작업이든
[18:49]
상상해보세요. 이제 여러분의 에이전트에게
[18:51]
이것을 하는 방법을 가르칠 수 있습니다.
[18:53]
이것은 우리가 항상 이야기하는 중요한 아이디어입니다.
[18:55]
이제 이것은 클로즈드 루프 프롬프트입니다.
[18:58]
더 이상 프롬프트 엔지니어링을 할 필요도 없어요.
[19:00]
원한다면 여전히 할 수 있죠?
[19:02]
이런 식으로 말할 수 있어요.
[19:03]
XYZ로 작업을 검증하세요, 맞죠?
[19:05]
UV run 블라 블라 블라 CSV라고 말할 거예요.
[19:08]
추가적인 에이전트 검증 명령어를
[19:10]
구축해야 할 수도 있어요.
[19:12]
여기서 입력값들이 조금 다르기 때문이에요.
[19:13]
하지만 아이디어는 이해하시죠?
[19:15]
여전히 이렇게 할 수 있어요.
[19:16]
이것에 잘못된 것은 없습니다.
[19:19]
하지만 훅 안에 넣는 것의 엄청난 장점은
[19:21]
이것이 항상 실행된다는 것을 안다는 거예요.
[19:24]
그래서 이 도구들 중 하나가
[19:26]
이 에이전트 내에서 호출될 때마다,
[19:28]
작업을 검증할 것입니다.
[19:30]
이것은 보장된 것입니다.
[19:32]
그리고 이것이 Ralph Wiggum 기법이나
[19:35]
이런 종류의 프롬프트 플러스 코드, 에이전트 플러스 코드,
[19:38]
이런 기법들이 인기를 얻기 시작하는 이유입니다.
[19:39]
바로 이런 이유 때문이에요.
[19:41]
시스템에 신뢰를 더하고 있는 거예요.
[19:43]
에이전트가 자신의 작업을 검증하도록 하고 있어요.
[19:45]
그것이 시간을 절약해줍니다.
[19:47]
여러분이 검증을 하지 않아도 돼요.
[19:48]
단지 시스템을 올바르게 설정했는지
[19:50]
확인하기만 하면 됩니다.
[19:52]
그리고 이것은 에이전트 시대에
[19:54]
앞으로 보게 될 큰 주제입니다.
[19:56]
에이전틱 시스템을 구축하는 엔지니어들이
[19:58]
전술적 에이전틱 코딩에서 말하는 것이
[20:00]
코드베이스 주변의 새로운 고리라고 합니다.
[20:03]
더 이상 애플리케이션에서 작업하지 않아요.
[20:05]
애플리케이션을 실행하는 에이전트에서 작업합니다.
[20:07]
그리고 여기서 중요한 아이디어는
[20:10]
이제 올바른 훅과 올바른 검증을
[20:12]
추가함으로써 말 그대로
[20:15]
더 신뢰할 수 있는 에이전트를 가질 수 있다는 것입니다.
[20:17]
Ralph Wiggum, 채널에서 다룬
[20:19]
모든 이런 기법들을
[20:21]
논의해왔습니다. 에이전트 플러스 코드가 에이전트를 이깁니다.
[20:24]
그게 다예요. 그렇게 간단해요.
[20:27]
그게 자가 검증이에요.
[20:28]
그게 클로즈드 루프 프롬프트예요.
[20:30]
이것이 에이전트에게 여러분처럼
[20:33]
엔지니어링하는 방법을 진정으로 가르치는 모습이에요.
[20:35]
이런 것들을 하는 것이죠.
[20:37]
모든 엔지니어, 최소한 모든 좋은 엔지니어는
[20:39]
자신의 작업을 검증합니다.
[20:41]
그리고 곧 여러분의 에이전트와도
[20:44]
정확히 같은 일이 일어날 것입니다.
[20:46]
모든 좋은 전문화된 에이전트는
[20:49]
에이전트, 한 가지를 정말 잘하는
[20:51]
것은 그 한 가지를 검증할 것입니다. 좋죠? 저는
[20:54]
이런 종류의 제너럴리스트에 매우 반대해요
[20:57]
모든 것을 하는 슈퍼 옴니 에이전트, 그냥
[20:59]
컨텍스트 윈도우를 계속
[21:01]
날려버리는 것 말이에요. 저는 만약
[21:04]
계속해서 뛰어난 성능을 내는 에이전트를 만들고 싶다면
[21:06]
계속해서, 집중된
[21:09]
전문 에이전트를 구축해야 한다고 확신합니다. 심지어
[21:11]
이런 것까지도요, 맞죠? 이것은
[21:13]
제가 실제로 구축할
[21:14]
CSVEdit 에이전트입니다. 우리는 그냥 CSV 파일을 편집해요.
[21:18]
그게 다입니다. 더 큰 에이전트로
[21:20]
이것을 할 수 없다는 게 아니에요, 그러니까
[21:21]
10개, 20개의 다른 일을 하는 에이전트로요. Opus는
[21:23]
매우 강력합니다. 그럴 수 있어요. 그게
[21:25]
포인트가 아닙니다. 포인트는
[21:26]
이것이 수십, 수백,
[21:29]
수천, 수백만 번의 실행에서 더 나은 성능을 낼 것이라는 거예요. 알겠죠?
[21:32]
확장하고 싶다면, 에이전트가
[21:34]
자체 검증하기를 원하고 단순한 검증이 아니라
[21:37]
에이전트가 자체 검증을
[21:39]
전문화하기를 원합니다.
[21:41]
알겠죠? 그래서, 여기서의 가치가 그거예요. 우리는
[21:43]
스킬 구축을 살펴볼 필요가 없어요.
[21:44]
그게 어떻게 생겼는지 알잖아요.
[21:45]
CSV 편집 스킬을 만들고
[21:48]
skill.md를 구축하는 거죠. 그리고
[21:51]
이를 위한 코치 템플릿이 있어요.
[21:52]
기본적으로 거의 같은 것이에요.
[21:55]
그래서, 이것을 구축하지는 않을 거예요.
[21:56]
여기서 아이디어는 이해했을 거예요. 가서
[21:57]
이것을 삭제하고 계속해서
[21:59]
다른 두 개를 커밋하면 여러분이
[22:01]
이 코드베이스에 접근할 수 있고 원한다면
[22:02]
여기서 일어나는 일을 살펴보고
[22:04]
어떻게 더 많은 자체 검증을 구축할 수 있는지
[22:05]
이해할 수 있어요. 하지만
[22:07]
네 개의 에이전트가 모두
[22:08]
병렬로 실행된 것을 볼 수 있어요. 그들은 자신의 작업을 검증했고
[22:11]
우리가 증명할 수 있습니다. 다시 말하지만, 이런 것들이 훅과
[22:13]
CSV 단일 검증기를 실행했다는 증거가 있어야 해요. 밑으로 스크롤하면
[22:15]
여기서 볼 수 있고
[22:17]
모든 파일이
[22:19]
거의 같은 시간에, 1초 내에 검증되었다는 것을 볼 수 있어요.
[22:21]
맞죠? 그것은 우리가
[22:23]
병렬 처리를 사용했기 때문이에요. 우리는 작동한다고 알고 있는
[22:24]
편집을 가지고 있습니다. 좋아요, 다시 말하겠어요.
[22:26]
우리는 에이전트로부터 작동했다고 알고 있는 편집을
[22:28]
가지고 있습니다
[22:30]
왜냐하면 우리가 그들에게
[22:32]
자신의 작업을 검증할 도구를 줬기 때문이에요.
[22:37]
여러 것이 실행되고
[22:39]
이런 것을 출력했다는 것을 볼 수 있어요, 맞죠? 그래서 우리가
[22:40]
한 것은 CSV를 전달하고
[22:42]
이것을 얻은 거예요. 여기가 이전 버전이었고,
[22:44]
2026년 1월. 그리고 여기가 새로운 버전이에요
[22:46]
여기요. 음, 빛 반사로 인한
[22:49]
변화에 대해 죄송해요. 하지만 그냥
[22:52]
재정의 간단한 하이라이트 뷰예요. 이것은
[22:53]
생성형 UI의 실제 사용 사례예요.
[22:55]
그런데요. 음, 이 중 일부는 제가
[22:58]
에이전트가 계속 생성하도록 한 정적인 것이에요.
[23:00]
일부는 동적이에요. 그래서 이런
[23:01]
테이블들 중 일부는 생성했어요. 그것이
[23:03]
생성될 줄은 전혀 몰랐어요. 여러분이 볼 수 있는 것처럼
[23:05]
여기에는
[23:06]
해당 월의 지출에 대한 많은 인사이트가 있어요, 맞죠?
[23:08]
테이블 레벨까지 모든 방법으로. 우리는
[23:10]
이것을 정렬할 수 있어요. 소진율을 볼 수 있고,
[23:11]
수입 잔액 등등을 볼 수 있어요.
[23:13]
어떤 사람들은 신뢰하지 않는다는 것을 알아요
[23:17]
모델과 모델 제공업체에서 이런 작업을
[23:19]
하는 것은 전혀 문제없다고 생각합니다.
[23:20]
이 도구가 실제로 한 일이잖아요.
[23:22]
완전한 에이전트 파이프라인을 구축했고,
[23:24]
에이전트 팀이 이걸 만들어냈습니다. 다시 말하지만,
[23:26]
저는 이게 엔드투엔드로 작동할 것이라고
[23:28]
매우 확신했습니다.
[23:31]
그 이유가 뭘까요? 여러분도 제가
[23:33]
뭘 말할지 알고 계시겠죠.
[23:35]
이 프롬프트를 열어보면, 재정 검토를 보면
[23:37]
단일 프롬프트만 있었고, 이걸 접어서
[23:39]
보면 다시 한번 훌륭한
[23:41]
에이전틱 워크플로우 패턴을 사용하고 있음을 알 수 있습니다.
[23:43]
새로운 건 없어요. 계속 반복되는 같은 패턴입니다.
[23:46]
이 채널에 대해 알게 될 건데요,
[23:47]
저희는 매우 일관적이고
[23:49]
항상 작업에 최적인 도구 사용에 집중합니다.
[23:51]
업계의 신호에 하이퍼 포커스를 맞추고,
[23:53]
과대광고나 소음, 다른 것들은 신경 쓰지 않습니다.
[23:55]
그리고 여기서 보시면,
[23:56]
매우 강력한 것을 볼 수 있어요.
[23:58]
상위 레벨에서
[23:59]
HTML 검증기가 실행되고 있습니다. 솔직히
[24:00]
재정 검토에서, 이것은
[24:02]
슈퍼 워크플로우의 종류입니다.
[24:04]
여기서 보시면 이 워크플로우가 실제로
[24:06]
그 하위에서 여러 에이전트를 시작하고 있습니다.
[24:08]
여기 에이전트 체인이 있습니다.
[24:10]
여러 에이전트와 여러 단계를 연결하고 있죠.
[24:12]
여기서 보시면 다양한
[24:14]
전문화된 에이전트들을 실행하고 있습니다.
[24:18]
그들이 뭘 할지 맞춰보세요. 그렇습니다,
[24:19]
모두 자신의 작업을 검증할 것입니다.
[24:21]
CSV 분류 에이전트로 들어가 봅시다.
[24:23]
한번 확인해 보세요. 생성형 UI 에이전트로
[24:25]
들어가 봅시다. 저기 HTML 검증기가 있네요.
[24:27]
계정 병합으로 들어가 봅시다.
[24:29]
CSV 검증기가 있습니다. 계속해서
[24:32]
반복되고 있어요. 여기서 보시면
[24:33]
이 정규화된 CSV 에이전트가 실제로
[24:35]
두 개의 검증기를 실행하고 있습니다.
[24:37]
그리고 이것들은 스톱 명령어에서 실행되고 있어요.
[24:39]
멈출 때, 이 코드베이스의 모든 파일에서
[24:41]
실행되는 전역 검증기를 실행하고 있는데
[24:43]
모든 파일을 테스트하지 않을 이유가 없잖아요.
[24:46]
일반적인 경험칙으로, 많은 파일을
[24:47]
전문화된 훅의 끝에서
[24:49]
테스트하고 싶다면 스톱 훅을 사용할 수 있습니다.
[24:51]
그리고 우리가 했던 것처럼 하나의 파일만
[24:53]
테스트하고 싶다면, 아마 포스트 도구 사용으로
[24:55]
가야 할 것입니다. 그래야 스크립트 내부에서
[24:57]
읽거나 편집되거나 쓰여진
[25:00]
경로에 접근할 수 있습니다.
[25:02]
이 코드베이스를 자유롭게 확인해 보세요.
[25:04]
저는 이것을 일종의
[25:06]
작업 프로토타입으로 구축했습니다. 재정 검토를
[25:08]
빠르게 실행하여 지출과
[25:11]
월별 수입을 계산하기 위해서요.
[25:13]
포크하거나 아이디어를 가져가거나
[25:15]
하기로 결정한다면
[25:16]
자신만의 프라이빗 코드베이스에
[25:18]
두세요. 여기서 핵심 아이디어는
[25:20]
전문화된 자체 검증기를
[25:23]
프롬프트, 서브 에이전트, 스킬 내부에
[25:25]
구축할 수 있다는 것입니다. 그리고 이런 것들을
[25:28]
정말 밀어붙이고 있다면,
[25:29]
정말, 정말
[25:31]
멋진 일을 할 수 있습니다. 이걸 닫고 claw--p, 설정을 실행하면
[25:41]
기본 에이전트 내부에서 전체 설정을
[25:43]
JSON으로 파일에 전달할 수 있고, 여기에는 훅도 포함됩니다.
[25:50]
좋습니다, 이런 아이디어를 남겨두겠습니다.
[25:51]
검증 에이전트를 이를 통해 한 단계 더 발전시킬 수 있습니다.
[25:54]
댓글로 알려주세요. 어떻게 후크를 사용하고 계신지 정말 궁금합니다.
[26:01]
만약 처음 보신다면 문제없습니다.
[26:06]
이 기능은 정말 충분한 주목을 받지 못하고 있습니다. 엔지니어 여러분, 주의하셔야 합니다.
[26:11]
계속 학습하고 지식을 체화하는 것이 중요합니다. 학습을 에이전트에게 위임하지 마세요.
[26:18]
따라서 여전히 문서를 읽고, 주요 도구와 기술의 큰 릴리스들을 계속 따라가세요.
[26:25]
클로드 코드는 에이전틱 코딩의 리더이며, 이를 통해 에이전틱 엔지니어링이라는 새로운 엔지니어링 역할을 활용할 수 있습니다.
[26:36]
Opus 4.5는 한동안 게임을 바꿔왔으며, 엔지니어링의 미래로 나아가는 명확한 단계적 변화입니다.
[26:47]
하지만 이런 것들에 매우 조심하세요. 더 이상 학습하지 않을 정도로 이러한 모델을 과도하게 사용하지 마세요.
[26:53]
이것이 제가 오늘 여러분께 남기고 싶은 메타적 아이디어입니다. 에이전트로 얻을 수 있는 모든 잠재력은 놀랍습니다.
[27:01]
하지만 학습 과정을 에이전트에게 위임한다면, 여러분은 막다른 길에 다다를 것입니다.
[27:08]
엔지니어가 할 수 있는 가장 나쁜 일은 새로운 것을 배우지 않아서 자기 비하 과정을 시작하는 것입니다.
[27:15]
커스텀 슬래시 명령어, 즉 프롬프트, 서브 에이전트, 그리고 스킬 내부의 후크 형태로 특화된 자가 검증을 확인해보세요.
[27:22]
매주 월요일마다 저를 어디서 찾을 수 있는지 아시죠. 집중하고 계속 만들어가세요.