[00:00]
자, 오늘 아침 Claude Code에서
[00:01]
hooks라는 기능을 출시했습니다.
[00:03]
이는 Claude Code의 동작을 커스터마이징하고
[00:05]
확장할 수 있도록 셸 명령어를 등록하는 기능입니다.
[00:08]
오늘은 이 기능을 살펴보고
[00:09]
어떤 것들을 할 수 있는지 알아보려고 합니다.
[00:12]
정말 흥미로운 기능이고
[00:14]
아주 멋진 작업들을 할 수 있을 것 같거든요.
[00:17]
자, 그럼 바로 시작해서
[00:19]
Claude Code에 로그인부터 해봅시다.
[00:23]
그리고 나서 이걸 구현해보겠습니다.
[00:24]
제가 hooks로 만들 것들을
[00:26]
미리 준비해놨고, 이것을
[00:30]
어떻게 활용할 수 있는지 보여드리겠습니다.
[00:32]
자, 먼저 로그인을 하고
[00:34]
slash hooks를 입력해서
[00:37]
이것을 살펴봅시다.
[00:38]
보시면 네 가지 다른 타입이 있습니다.
[00:41]
pre-tool use, post-tool use, notification, 그리고 stop입니다.
[00:44]
제가 준비한 것은 stop hook입니다.
[00:46]
Claude Code가 중지될 때마다
[00:50]
알림을 받을 수 있도록 했습니다.
[00:52]
이 hook을 만들었는데
[00:54]
여기 curl 명령어가 보이죠.
[00:56]
Twilio를 사용해서 Claude Code가
[00:59]
중지되거나 작업을 완료할 때마다
[01:03]
문자 메시지를 보내도록 했습니다.
[01:04]
어떻게 작동하는지 보여드리겠습니다.
[01:06]
테스트해보기 위해 랜덤 탁구 경기를
[01:10]
시뮬레이션하는 간단한 HTML CSS 페이지를 만들어봅시다.
[01:13]
전체 프로젝트를
[01:14]
한 번에 완성해보겠습니다.
[01:17]
자, 이걸 실행시켜보겠습니다.
[01:21]
마지막에 Twilio에서
[01:23]
프로젝트가 완료되었다는
[01:25]
문자 메시지를 받을 것입니다.
[01:29]
이제 실행시켜보겠습니다.
[01:31]
코드 작성 권한을 줘야 할 것 같지만
[01:33]
그러면 자동으로 실행될 것이고
[01:35]
휴대폰을 확인하거나 작업이 완료되면
[01:38]
메시지를 받을 수 있습니다.
[01:40]
권한을 주고
[01:41]
커피 한 잔 하러 가겠습니다.
[01:44]
[01:46]
보시죠, 여기 문자 메시지가 왔네요.
[01:48]
Claude Code가 작업을 완료했다고 나와있습니다.
[01:50]
이제 확인해보고
[01:52]
게임이 제대로 작동하는지 봅시다.
[01:55]
네, 여기 탁구 경기
[01:58]
시뮬레이터가 있습니다.
[01:59]
아무 플레이어도 점수를 얻지 못할 것 같지만
[02:02]
그게 중요한 게 아니었죠.
[02:03]
중요한 것은
[02:05]
Claude Code가 프로젝트를 완료한 후
[02:07]
알림을 받았다는 것입니다.
[02:09]
정말 멋지죠.
[02:11]
정말 흥미로운 기능이라고 생각합니다.
[02:14]
이번 작업에는 꼭 필요하지 않았지만
[02:17]
장시간 실행되는
[02:19]
에이전트 작업이 있다면
[02:20]
이 기능이 도움이 될 것입니다.
[02:23]
오랜 시간 실행되다가 갑자기
[02:25]
휴대폰에 메시지가 오면
[02:26]
Claude Code에서 뭔가 일어났다는 걸 알 수 있죠.
[02:29]
그럼 확인하러 가면 됩니다.
[02:31]
노트북으로 돌아가서
[02:32]
터미널을 열거나 하면 되죠.
[02:34]
하지만 하나 더 보여드릴 게 있습니다.
[02:37]
먼저 오늘의 스폰서를
[02:39]
소개하겠는데, 바로 저입니다.
[02:40]
아직 AI 비디오 강좌를 작업 중입니다.
[02:42]
이 강좌가 큰 성공을 거뒀고
[02:46]
많은 분들이 관심을 보이고 계십니다.
[02:47]
그래서 계속 작업하고 있습니다.
[02:49]
새로운 모듈들을 구축하고 있습니다. 최신
[02:52]
모듈을 대시보드에서 확인하시면
[02:54]
V3에서 일관된 캐릭터를 만드는 방법
[02:57]
입니다. 하지만 이번 주에는 전략에 관한
[03:00]
새로운 모듈을 작업 중이고, 실제로
[03:03]
바이럴 영상을 만드는 방법을 다룹니다.
[03:06]
여러분이 보시는 것처럼 저희는
[03:09]
뷰 스탯 같은 도구를 사용해서
[03:11]
바이럴 가능성이 높은 좋은 후보를
[03:14]
찾아서 많은 조회수를 얻습니다.
[03:16]
이는 숏폼 콘텐츠일 수도 있고
[03:18]
기본적으로 어떤 것이든 될 수 있습니다. 여기
[03:20]
제가 만든 매우 바이럴한 클립의 예시가 있습니다.
[03:23]
이는 긴 클립의 일부입니다.
[03:24]
하지만 요점을 이해하실 겁니다.
[03:26]
지금까지 매우 성공적이었고
[03:28]
계속 확장하고 있습니다. 이번 주에는
[03:30]
제가 말씀드렸듯이 이 모듈은
[03:32]
전략과 바이럴 영상을 만드는 방법에
[03:35]
관한 것으로, 같은 프로세스를 반복하여
[03:37]
실제로 어떻게 결과를 얻을 수 있는지
[03:39]
다룹니다. 몇 주 후에 더 많은 결과를
[03:41]
가지고 돌아와서 별도의 영상에서
[03:43]
함께 살펴보겠습니다. 꼭 확인해보세요.
[03:45]
aipidecourse.com이고 설명란에서
[03:47]
링크를 찾으실 수 있습니다.
[03:49]
이제 영상으로 돌아가겠습니다.
[03:51]
SL 훅으로 다시 돌아가면
[03:52]
파이썬 코드가 생성될 때
[03:55]
테스트를 생성하는 post tool use 훅이
[03:58]
있는 것을 보실 수 있습니다. 매우 간단하고
[04:01]
직관적입니다. 새로운 파이썬 코드를
[04:04]
만들 때마다 이에 대한 테스트를
[04:06]
작성할 수 있습니다. 이제 이것이
[04:08]
어떻게 작동하는지 보겠습니다.
[04:09]
숫자가 소수인지 확인하는 도구를
[04:12]
파이썬으로 만들어보세요. 매우 간단하죠?
[04:15]
이제 실행하면 저는 그냥
[04:17]
실행하도록 하고 완료되면
[04:19]
다시 돌아오겠습니다.
[04:21]
좋습니다. 이제 prime checker
[04:24]
test.py를 만든 것을 보실 수 있습니다.
[04:26]
이것은 코드에 대한 단위 테스트를 작성할 수 있습니다.
[04:28]
그렇게 하도록 요청해보겠습니다.
[04:31]
이 코드에 대한 테스트가 우리 프로젝트에
[04:33]
있는지 확인하고 실행해보세요.
[04:35]
prime checker test를 찾았습니다. 좋습니다.
[04:37]
좋네요.
[04:39]
소수 함수를 테스트합니다. 좋습니다.
[04:42]
모든 것이 좋아 보입니다.
[04:44]
2와 17 같은 소수가
[04:46]
올바르게 식별되었습니다. 테스트가
[04:48]
성공적으로 통과했고 1과 4 같은
[04:50]
비소수도 올바르게 식별되었습니다.
[04:52]
네. 이것이 우리가 사용할 수 있는
[04:54]
한 가지 방법입니다. 파이썬 확장 파일을
[04:56]
만든 후 자동으로 단위 테스트를
[04:59]
작성하도록 설정할 수 있습니다. 하지만
[05:02]
그것이 최선의 방법은 아닐 수 있습니다.
[05:05]
하지만 이것은 훅을 어떻게 사용할 수
[05:06]
있는지 보여주는 예시입니다.
[05:08]
이것이 제가 테스트해본 또 다른 것입니다.
[05:11]
하지만 이제 함께 해보겠습니다.
[05:13]
실제로 GitHub에서 자동 스테이징을
[05:16]
할 수 있는 훅을 만들어보겠습니다.
[05:20]
변경사항을 스테이징하고 동시에
[05:23]
푸시하고 커밋할 수 있습니다.
[05:26]
클라우드 코드에는 체크포인트가
[05:28]
없기 때문에 매우 유용할 것 같습니다.
[05:30]
여기서 리포지토리를 만들었고
[05:31]
이제 클라우드에게 이것을
[05:34]
만들어달라고 지시하겠습니다.
[05:36]
프롬프트를 작성해보겠습니다.
[05:39]
그래서 프롬프트를 만들어보겠습니다.
[05:42]
그래서 프롬프트를 만들어보겠습니다.
[05:44]
프롬프트를 작성해보겠습니다. 제 코드 저장소에서 변경사항을
[05:46]
자동으로 스테이징하는 훅이 필요합니다. 설정을 도와주실 수 있나요?
[05:47]
이렇게 하는 이유는 Claude Code에 체크포인트가 없기 때문입니다.
[05:49]
실행해보겠습니다.
[05:52]
Claude Code가 무엇을 만들어낼지 봅시다.
[05:54]
여기 보시면
[05:56]
settings.json 파일에 JSON 설정이 있습니다.
[05:58]
훅을 호출하고 명령어가 있습니다.
[06:01]
명령어를 보시면 이런 설정이 필요합니다.
[06:04]
이건 훅을 위한 설정입니다.
[06:06]
아주 간단합니다. 이대로 작성하겠습니다.
[06:09]
완료한 후에는 Claude Code를 재시작해야 합니다.
[06:11]
처음부터 다시 시작하세요.
[06:13]
그렇게 하지 않으면 훅이 작동하지 않더군요.
[06:15]
그래서 코드를 재시작했습니다.
[06:17]
프롬프트를 입력해보겠습니다.
[06:19]
prime.py 파일에 새로운 기능을 추가해보겠습니다.
[06:22]
두 개의 정수를 더해서 소수인지 확인하는 기능입니다.
[06:23]
실행해보겠습니다.
[06:25]
마지막에 훅이 변경사항을 인식하는지 확인하고 싶습니다.
[06:27]
이것을 저장소에 반영하는지 봅시다.
[06:30]
변경사항이 생겼습니다.
[06:31]
두 개의 정수를 더해서 소수인지 확인할 수 있습니다.
[06:33]
이제 git status를 실행하면
[06:36]
스테이징되고 커밋 준비가 된 것을 볼 수 있습니다.
[06:38]
훅에서는 푸시나 커밋까지는 추가하지 않았습니다.
[06:40]
보시면 prime checker test는 삭제되었고
[06:42]
제가 제거했기 때문입니다.
[06:46]
prime checker.py는 수정되고 스테이징되었습니다.
[06:47]
이제 다음 단계로 훅에 추가할 예정입니다.
[06:49]
이것도 자동으로 저장소에 푸시될 것입니다.
[06:51]
빠른 기능 업데이트를 했습니다.
[06:54]
이제 여러 정수를 더해서 소수인지 확인할 수 있습니다.
[06:56]
훅 변경사항이 작동하는지 확인해봅시다.
[07:00]
새로고침하면 푸시되었을 것입니다.
[07:01]
네, 총 5개의 변경사항이 있습니다.
[07:04]
prime checker가 방금 변경되었습니다.
[07:05]
완벽합니다. 이제 작동하는 것을 확인했습니다.
[07:07]
몇 가지 변경을 더 해봅시다.
[07:10]
readme 파일을 추가해서 다시 한번 확인해보겠습니다.
[07:11]
완료되었습니다.
[07:13]
저장소를 다시 새로고침해봅시다.
[07:16]
readme 파일이 있나요? 네, 있습니다.
[07:18]
여기 readme 파일이 있습니다.
[07:20]
완벽합니다. 이제 이런 식으로 작동합니다.
[07:22]
이제 작은 변경을 더 해봅시다.
[07:24]
readme 파일에 작성자를 추가하고 싶다면
[07:27]
작성자 이름을 Chris at All About AI로 업데이트하면 됩니다.
[07:30]
readme를 변경할 수 있습니다.
[07:32]
readme 파일에 들어가면
[07:34]
작성자가 변경된 것을 볼 수 있습니다.
[07:36]
여기서 찾을 수 있다면...
[07:38]
네, Chris is all about AI입니다.
[07:40]
이제 저장소로 돌아가서 새로고침하면
[07:42]
변경사항이 있을 것입니다.
[07:44]
네, 7개의 커밋이 있습니다.
[07:48]
여기 있나요? 맨 위에 있을 것입니다.
[07:50]
[07:51]
[07:54]
[07:56]
[07:58]
[08:02]
[08:04]
[08:08]
[08:11]
[08:14]
[08:16]
[08:18]
[08:20]
[08:23]
[08:25]
[08:29]
[08:33]
[08:36]
맞죠? 여기 어딘가에 있을 텐데요. 음 여기
[08:39]
있네요, 아마도. 네, 작성자 Chris라고 되어 있고
[08:42]
이건 자동으로 업데이트된 거죠? 정말
[08:44]
멋지네요. 이거로 할 수 있는 다른
[08:46]
것들도 있어요. 음, 한 가지는
[08:48]
체크포인트로 되돌리는 것 같은 거죠. 그래서
[08:50]
첫 번째 커밋을 열어보면
[08:52]
이걸 복사할 수 있고
[08:55]
네. 그리고 클라우드 코드로 돌아가서
[08:58]
헤드로 되돌리기 같은 걸 할 수
[08:59]
있어요.
[09:01]
네. 그리고 그 번호를 붙여넣고
[09:03]
이걸 실행할 수 있고 푸시할 수
[09:05]
있어서 그 체크포인트로 돌아갈 수 있어요.
[09:08]
음, 물론 수동으로도 할 수 있지만
[09:10]
자동으로 하면
[09:12]
음 변경사항을 만든 걸 깜빡하지
[09:14]
않을 수도 있죠, 맞죠? 그리고 네, 이제
[09:16]
리듬 파일이 없는 걸 볼 수 있어요.
[09:18]
우리가 처음에 가졌던 상태로
[09:20]
돌아간 거죠. 네, 정말 멋진 것 같아요.
[09:23]
흥미로울 수 있지만 좀 과할 수도 있겠네요.
[09:25]
확실하지는 않지만, 이건 그냥
[09:26]
테스트해보고 싶었던 거예요. 그래서 네,
[09:28]
Hooks가 꽤 좋은 것 같아요. 한 가지
[09:29]
더 해볼까요? 음 아마 도구가 사용된 후에
[09:31]
MP3 사운드 같은 걸 추가하는
[09:32]
걸 테스트해보고 싶었어요
[09:35]
작동하는지 보려고요. 그럼 11 Labs로 가서
[09:38]
사운드를 만들어보죠.
[09:40]
고양이 울음소리를 만들어보죠.
[09:43]
그리고 Claude 코드가 도구를 사용할 때마다
[09:45]
그 소리가 날 거예요.
[09:48]
그래서, 네, 테스트해보죠. 좋아요,
[09:50]
이걸 재생해보죠. 네, 이걸 가져와보죠.
[09:53]
좋아요, 이 프로젝트에 cat2.mp3
[09:55]
파일이 있나요? 도구가 완료되면
[09:59]
이 알림을 재생해보죠.
[10:02]
그래서, 작동하는지 보죠.
[10:03]
그래서, 지금 테스트해보죠. 음, admin.py를
[10:06]
작성해서 두 정수를 더하는 걸 해보죠.
[10:08]
이 다음에 소리를 듣고 싶어요. 네,
[10:10]
거기서 들을 수 있네요. 이 도구 다음에
[10:13]
고양이 소리가 재생되죠, 맞죠? 정말
[10:16]
재미있었어요. 그래서 네, 이게 클라우드 코드의
[10:18]
Hooks였어요. 이게 꽤 멋질 수 있을 것 같아요.
[10:20]
다른 사람들이 이걸로 뭘 하는지
[10:22]
보는 게 기대되고 아마 미래에
[10:24]
시도해볼 수 있을 것 같아요. 제가 말했듯이,
[10:26]
AI 비디오를 깊이 다루고 싶다면
[10:28]
설명란의 비디오 강좌를 확인해보세요.
[10:29]
그 외에는, 시청해주셔서 감사합니다.
[10:33]
좋은 하루 되시고 다시
[10:35]
뵙겠습니다
[10:37]
다른 건, 감사합니다
[10:38]
시청해주시고. 좋은 하루 되시고
[10:40]
다시 뵙겠습니다