00:00:00Cloud Code나 Codex, 혹은 다른 에이전트 기반 엔지니어링 도구를 사용할 때
00:00:05이 모든 도구에서 지원하며 반드시 이해하고 사용해야 할 정말 중요한 개념은
00:00:12에이전트 스킬(Agent Skills)입니다. 단순히 마크다운 파일 묶음이거나
00:00:18설정이 번거롭다는 이유로 무시하기 쉽지만, 제 경험상 그럴 가치가 충분합니다.
00:00:24며칠 전 Anthropic의 Cloud Code 팀원이 올린 포스트에서
00:00:31그들이 내부적으로 사용하는 다양한 유형의 스킬들을 공유했는데요.
00:00:37실제로 생성하려는 스킬의 유형을 구분할 수 있습니다. 결국은 다 마크다운 파일일 뿐이지만
00:00:42몇 가지를 더 추가할 수도 있죠. 나중에 다시 설명하겠지만, 마크다운 파일에 들어가는 내용은
00:00:49매우 다를 수 있습니다. 여기 보이는 이미지와 포스트 전체 내용이 꽤 압도적이라
00:00:56'스킬 설정에 일주일이나 써야 한다면 차라리 안 쓰고 말지'라는 생각에 포기할 수도 있습니다.
00:01:02그래서 이번 영상에서는 그에 대한 대안을 제시해 드리고자 합니다.
00:01:08단순히 여러분이 신경 써야 할 세 가지 핵심 스킬 유형만 갖춰도 더 나은 결과를 얻을 수 있습니다.
00:01:15참고로 이 모든 도구는 스킬을 지원합니다. 제 강의에서는 스킬 설정 방법과
00:01:20능동적으로 호출하는 법, Cloud Code나 Codex용 스킬 구축법을 다루고 있으니
00:01:26해당 강의나 미래의 강의를 포함한 모든 강의를 듣고 싶으시다면
00:01:31현재 진행 중인 프로모션을 통해 매우 저렴한 가격에 연간 멤버십을 이용하실 수 있습니다.
00:01:35링크는 아래에 있습니다. 자, 이 스킬들은 특정 위치에 저장되는
00:01:41단순한 마크다운 파일들입니다. 정확한 위치는 사용하는 도구에 따라 다르지만
00:01:46결국 프롬프트 템플릿이나 에이전트 엔지니어링 세션에 주입될 수 있는
00:01:52추가적인 컨텍스트 조각들입니다. 그리고
00:02:01첫 번째 스킬 유형은 문서화 또는 지식 스킬입니다.
00:02:09무슨 뜻일까요? 여기 제 academy.com 프로젝트, 즉 제 웹사이트 프로젝트를 보면
00:02:15AI 에이전트에게 노출하는 일종의 문서나 지식에 해당하는
00:02:25여러 에이전트 스킬이 있습니다. 예를 들어, 여기 타입스크립트 지식이나
00:02:33더 고급 타입스크립트 기능들, 이를테면 나온 지 10년이나 된 게 아닌
00:02:40"satisfies" 키워드 같은 최신 기능들에 대한 지식이 있죠. 에이전트가 인지하거나 상기했으면 하는 내용인데,
00:02:50학습 데이터에서 많이 보지 못했을 수도 있어서 에이전트가 먼저 떠올리지 않을 수도 있기 때문입니다.
00:02:58이런 내용은 공식 타입스크립트 문서에서도 찾을 수 있는 것들이지만,
00:03:04문제는 명시적으로 지시하지 않는 한 에이전트가 공식 문서를
00:03:11직접 찾아갈 가능성이 낮다는 점입니다. 그래서 차라리 저만의 스킬을 만드는 거죠.
00:03:17이 스킬에는 메타데이터가 포함되어 있습니다. 메타데이터가 중요한 이유는 스킬의 핵심 원리가
00:03:24모든 가용 스킬을 매번 컨텍스트 윈도우에 로드하는 것이 아니라,
00:03:30메타데이터만 먼저 로드한 뒤, AI 에이전트가 여러분의 프롬프트와 작업에 따라
00:03:37어떤 스킬을 더 읽어올지 스스로 결정하기 때문입니다. 도구에 따라 직접 호출할 수도 있지만,
00:03:43에이전트가 메타데이터를 보고 스스로 로드하는 것이 핵심 아이디어입니다.
00:03:47여기 에이전트에게 이 스킬을 언제 사용해야 할지 알려주는 메타데이터를 넣었습니다.
00:03:55이것이 에이전트가 가지고 있지 않을 수도 있는 추가 문서나 지식을 제공하는
00:04:02첫 번째 유형의 스킬입니다. 너무 최신이라 학습 데이터에 없는
00:04:08라이브러리를 사용하거나, 에이전트가 잘 모를 것 같은 내용을
00:04:13인지시키고 싶을 때 사용합니다. 이것이 제가 말하는 첫 번째 유형의 스킬입니다.
00:04:18두 번째 스킬 유형은 동작, 모범 사례, 접근 방식 등입니다.
00:04:29프로젝트를 진행하다 보면 코드 스타일이나 처리 방식에 대해
00:04:37특정 선호도가 생기기 마련입니다. 예를 들어, 저는 "clean modern react code" 스킬이 있는데,
00:04:45이것은 리액트 기능을 설명하는 문서라기보다는 에이전트가 리액트 코드를 작성할 때
00:04:50따라야 할 규칙들을 정립하여 특정 안티 패턴이 덜 발생하도록 하는 것입니다.
00:04:59적어도 현재로서는 AI 에이전트가 항상 최고 품질의 코드를 생성하지는 않는 경향이 있습니다.
00:05:08코드 품질이 중요한지에 대해서는 논란이 있을 수 있고, 이에 대해 다른 채널에서 별도 영상을 만들기도 했지만,
00:05:13제 생각엔 코드 품질은 코드 리뷰를 위해서라도 중요합니다.
00:05:18성능에 영향을 줄 수 있고, 유지보수나 확장의 용이성에도
00:05:23영향을 미치기 때문입니다. 따라서 에이전트가 사용했으면 하는 특정 동작이나 패턴이 있다면,
00:05:29좋은 리액트 코드를 작성하는 법, 가령 useEffect 사용을 지양하고
00:05:36어떻게 대체할 수 있는지 등을 알려주는 이러한 동작 지침 스킬이 흥미로울 수 있습니다.
00:05:43이것은 추가적인 문서나 지식을 제공하는 것보다는
00:05:50동작을 지시하는 것에 가깝습니다. 흥미로운 점은 이 스킬 파일 안에
00:05:55이 스킬에 대해 흥미로운 점은 여기에 파일과 관련된 더 자세한 내용을 담은 몇 가지 관련 파일이 있다는 것입니다.
00:06:02말씀드렸듯이 모든 스킬 파일은 지연 로딩(lazy loading)되는데,
00:06:09스킬 파일 내에서 여기 references 폴더의 useEffect.md 파일처럼 다른 파일을 참조하면
00:06:15AI는 자신이 useEffect를 다루고 있다는 사실을 알 때만 그 파일을 로드하기로 결정할 수 있습니다.
00:06:21그러면 에이전트는 제가 작성한 안티 패턴에 대한 상세한 내용을 파악하게 되죠.
00:06:27이런 종류의 스킬을 설정하는 것은 충분히 가치 있는 일입니다. 왜냐하면
00:06:33어떤 리액트 프로젝트에도 복사해서 쓸 수 있고 매번 새로 쓸 필요가 없으며,
00:06:39더 나은 코드로 이어지기 때문입니다. 이것이 제가 권장하는 두 번째 스킬 유형입니다.
00:06:45설명하고 싶은 모든 패턴을 한꺼번에 생각할 필요는 없습니다. 그저 단계적으로 진행하세요.
00:06:52프로젝트에서 AI 에이전트가 원치 않는 행동을 지속적으로 반복한다면,
00:06:58적절한 타이밍에 로드될 확률을 높일 수 있는 좋은 설명을 곁들인 스킬을 추가하세요.
00:07:04그 스킬에 지침을 넣어 문제를 해결하세요. 시간이 지나면 여러분만의
00:07:11특정 모범 사례와 강제하고 싶은 동작들이 담긴 스킬 라이브러리가 구축될 것입니다.
00:07:17그러면 다음 프로젝트에서도 사용할 수 있죠. 처음부터 너무 거창하고 위협적인 과제로 생각하지 마시고
00:07:22단계별로 스킬 기반을 다져 나가세요. 이제 세 번째 유형의 스킬인데,
00:07:29이것은 앞서 말한 것들과는 다른 기능 중심의 스킬입니다.
00:07:37지금까지는 문서화와 특정 동작 강제에 대해 이야기했습니다.
00:07:43Cloud Code나 Codex 같은 에이전트 도구들은 온갖 일을 할 수 있습니다. 코드를 쓰는 건 당연하고
00:07:49프로젝트 내에서 코드 작성에만 국한되지도 않습니다. 코드를 쓸 수 있다는 건,
00:07:55원한다면 컴퓨터에서 무엇이든 할 수 있다는 뜻이죠. 예를 들어 PDF 문서를 분석하게 할 수도 있고,
00:08:03제 시스템에는 프로그래밍에만 국한되지 않은 전역 스킬들이 있습니다.
00:08:09에이전트에게 이미지를 생성하는 법을 알려주는 스킬을 설정할 수도 있습니다. 무슨 뜻일까요?
00:08:16AI로 이미지나 비디오를 생성할 수 있는 다양한 서비스나 API가 있습니다. fal.ai 같은 것들이죠.
00:08:24참고로 유료 광고는 아닙니다. replicate 같은 다른 서비스들도 있죠.
00:08:29프로젝트를 위해 웹사이트에 넣을 더미 이미지가 필요하거나,
00:08:34아니면 벽에 걸어둘 이미지를 출력하고 싶을 때 이런 서비스들을 이용할 수 있습니다.
00:08:41Codex, Cloud Code, 혹은 제가 좋아하는 Py 에이전트 등을 사용해
00:08:49이미지 생성을 요청할 수 있습니다. 기본적으로 이런 도구들은 이미지 생성 기능이
00:08:54내장되어 있지 않아 실패할 가능성이 큽니다. 하지만 적절한 스킬을 제공한다면(이것도 마크다운 파일입니다),
00:09:00그 안에 이미지 생성을 위해 서드파티 API와 상호작용하는 법을 기술할 수 있습니다.
00:09:06그 상호작용을 설명하는 것만으로도 한 방법이겠지만, 한 단계 더 나아갈 수 있습니다.
00:09:12스킬에 스크립트를 포함할 수도 있습니다. 모든 스킬에 필요한 건 아니지만, 제 이미지 생성 스킬은 그렇게 되어 있죠.
00:09:18이 스크립트는 솔직히 AI가 작성했습니다. 이른바 "바이브 코딩(vibe coded)" 된 것이죠.
00:09:26여기 fal API와 상호작용하는 스크립트가 있습니다.
00:09:34이미지 생성 서비스 문서의 내용을 프롬프트에 넣고 AI 에이전트에게
00:09:40fal API를 활용해 이미지를 생성할 수 있는 도구를 작성해 달라고 했습니다. 그래서 작은 CLI 도구가 만들어졌죠.
00:09:49해당 API와 통신하며 다양한 파라미터로 이미지를 생성하는 작은 스크립트입니다.
00:09:56그리고 스킬 마크다운 파일은 그 스크립트의 사용법을 설명합니다.
00:10:02스크립트를 가리키며 에이전트에게 어떤 파라미터를 넣어 실행할지 등을 알려주죠.
00:10:08여기에 제 fal 키가 담긴 .env 파일이 있습니다. 이 스크립트가
00:10:18스킬 파일의 지침대로 Bun을 통해 실행될 때, .env 파일이 자동으로 로드됩니다.
00:10:23따라서 에이전트에게 직접 키를 노출할 필요가 없습니다. "이미지 좀 생성해 줘, 키는 여기 있어"라고 말할 필요가 없는 거죠.
00:10:29대신 그냥 이미지 생성을 요청하면, 에이전트는 설명된 내용에 따라
00:10:34필요할 때 이 스킬을 로드하고, 스크립트만 실행하면 된다는 것을 배웁니다.
00:10:39구현 세부 사항은 걱정할 필요가 없죠. 이것이 제가 흥미롭다고 생각하는 또 다른 종류의 스킬입니다.
00:10:45꼭 프로그래밍에 관련된 것일 필요는 없습니다. 코드를 포맷팅하는
00:10:52스크립트 기반 스킬일 수도 있겠죠. 하지만 일반적으로 이 에이전트들을
00:10:57단순한 코드 생성 이상의 용도로 활용할 수 있기 때문에
00:11:02분명히 인지해 두어야 할 스킬 카테고리입니다. 전체적으로 너무 복잡하게 생각하지 마세요.
00:11:08그렇다고 방치하지도 마시고, 단계적으로 스킬 라이브러리를 구축해 보세요.
00:11:14다른 사람들이 만든 스킬을 찾아볼 수 있는 skills.sh 같은 스킬 레지스트리도 있다는 점을 참고하세요.
00:11:21다만 두 가지 중요한 주의사항이 있습니다. 유용할 순 있지만 제가 하지 않을 행동은,
00:11:29가령 "리액트, Tailwind, Better Auth로 프로젝트를 만드니까 관련 있을 것 같은
00:11:35모든 스킬을 검색해서 다 설치해야지"라고 생각하는 것입니다.
00:11:40이건 오히려 역효과를 낼 수 있습니다. 컨텍스트 윈도우에 점점 더 많은 메타데이터를 로드하게 되는데,
00:11:47그중 일부 스킬은 전혀 상관이 없을 수도 있기 때문입니다. 이 점을 유의해야 합니다.
00:11:53이론적으로 추가 가능한 모든 스킬을 무작정 넣기보다는, 선택적으로 집중해야 합니다.
00:11:57AI가 지속적으로 틀리는 부분이나 추가 문서가 반드시 필요하다고 판단되는 부분에 집중하세요.
00:12:04이것이 첫 번째 주의사항이고, 레지스트리에 관한 다른 하나는
00:12:09다른 사람이 작성한 스킬을 포함시킨다는 점입니다. 배운 대로 이 스킬들은 결국 프롬프트입니다.
00:12:16만약 그 프롬프트 중 하나에 악의적인 내용이 들어있다면 프롬프트 인젝션 공격으로 이어질 수 있어
00:12:22문제가 될 수 있습니다. skills.sh 같은 일부 레지스트리는 제가 알기로
00:12:28이런 위험을 줄이기 위해 일종의 스캐닝을 수행하지만, 100% 안전할 수는 없습니다.
00:12:36그러므로 인식하고 있어야 할 부분입니다. 다른 사람이 작성한 스킬을 사용할 때는
00:12:40직접 읽어보세요. 악의적인 내용이 없는지 직접 확인해 보는 것이 좋습니다.
00:12:47이건 그냥 주의의 말씀이었고요. 결론적으로 스킬을 사용해 보세요. 너무 복잡한
00:12:54시스템을 구축해야 한다는 압박감은 버리시고, 가볍게 시도해 보시면서
00:13:00세 가지 핵심 스킬 유형을 기억해 두시기 바랍니다.