Transcript
00:00:00단 하나의 파일이 당신이 얻는 제품이
00:00:04실제로 필요한 구현인지 결정합니다.
00:00:05Claude Code 사용자에겐 claud.md가 있고 다른 에이전트들도 각자의 파일이 있지만, 가장 흔히
00:00:10사용되는 것은 agents.md입니다.
00:00:11하지만 무엇을 사용하든 제대로 설정하지 않으면 모든 작업마다
00:00:15에이전트와 씨름하게 될 것입니다.
00:00:17그리고 간단한 init 명령어를 실행하는 것만으로 충분하다고 생각한다면
00:00:20그건 틀린 생각입니다.
00:00:21에이전트의 성능을 실제로 높여주는, 프로젝트에 맞춤화된 구조화된 패턴을
00:00:26따라야 합니다.
00:00:27그래서 우리는 다른 신뢰할 수 있는 소스들과
00:00:31Claude Code를 사용하며 보낸 수많은 시간으로부터 얻은 모범 사례들을 정리했고, 여러분의
00:00:35워크플로우에 바로 적용할 수 있게 했습니다.
00:00:36마지막 항목은 에이전트가 여러분의 지시를 실제로 어떻게 따르는지 결정하고
00:00:41이를 따르지 않으면 파일 내의 나머지 지시사항은 효과가 크지 않기 때문에 중요합니다.
00:00:45claud.md 파일에 가장 먼저 추가해야 할 것은 바로
00:00:49안드레 카파시의 레포지토리에서 나온 내용으로, 그가 강조하는 최고의 claud.md 패턴들이 담겨 있습니다.
00:00:54Claude에게 코딩 전에 생각하라는 명시적인 지시를 추가해야 합니다.
00:00:58Claude가 가정을 명확히 밝히게 만듭니다.
00:01:01여러 해석이 존재한다면 모두 제시하게 하여 우리가 구현 방식들을
00:01:05선택할 수 있게 합니다.
00:01:07이렇게 하면 Claude가 해결책으로 뛰어들기 전에 다른 관점에서 생각하도록
00:01:11유도합니다.
00:01:12이는 구현되는 해결책이 여러분이 원했던 것과 일치하도록 보장합니다.
00:01:15이 한 줄은 워크플로우에서 엄청난 양의 코스 수정을 줄여주기 때문에 우리가
00:01:20정말 유용하게 사용했습니다.
00:01:21이 지시를 추가하면, Claude에게 기능을 구현해달라고 할 때마다 기본적으로
00:01:25해당 작업과 관련된 일련의 질문을 던져 여러분의 답변이 작업을 어떻게 수행할지
00:01:29가이드하게 됩니다.
00:01:31이 부분은 특히 유용한데, 이제 Claude가 구현 내용을 추측하거나
00:01:35훈련 데이터로부터 암기한 패턴을 바로 적용하지 않기 때문입니다.
00:01:39올바른 구현이 무엇인지 철저히 생각하고 여러분이 의도한 것이 맞는지 확인한 뒤에
00:01:43기능 작업을 시작하게 되어, 그냥 무작정 추측해서
00:01:48여러분이 생각한 올바른 구현 방식을 따르지 않아 Claude를 중단시키고
00:01:52코스 수정을 많이 해야 하는 상황이 훨씬 줄어들게 됩니다.
00:01:57다음 규칙은 단순함을 우선시하는 것입니다.
00:01:59매우 간단하지만 에이전트가 이 원칙을 제대로 상기하도록 claud.md에 구체적으로
00:02:04명시해야 합니다.
00:02:07Claude나 다른 에이전트들은 간단한 것으로 해결할 수 있는 문제에도 큰 해결책을
00:02:11작성하려는 경향이 있습니다.
00:02:12하지만 이는 단순히 시간 지연을 초래하기 때문에 문제가 되는 것이 아닙니다.
00:02:15나중에 코드를 리팩토링하기 어렵게 만들고, 구현이 너무 장황해서 간단한 작업을 하는 데도
00:02:19많은 토큰을 소모하기 때문에 기능을 추가하는 것조차 더 어렵게 만듭니다.
00:02:24그래서 이 줄은 말 그대로 Claude가 단순함을 지향하도록 밀어붙입니다.
00:02:27우리는 모든 프로젝트, 특히 대규모 애플리케이션을 작업할 때 이를 추가하는데, 그 규모에서는
00:02:32이렇게 하는 것이 훨씬 더 중요해지기 때문입니다.
00:02:35이는 특히 Claude에게 요청된 것 이상의 기능을 추가하지 말고
00:02:39구현에 적절한 에러 처리를 보장하라고 말합니다.
00:02:41그 주변의 엄격한 프레임워크는 사실상 하드 임계값입니다.
00:02:44요청한 문제의 해결책이 200줄로 처리될 수 있는데 50줄로 리팩토링이
00:02:49가능하다면, Claude는 접근 방식이 틀렸으므로 해결책을 다시 작성해야 합니다.
00:02:54이는 Claude가 구현조차 불가능하거나 잘못된 방향을 반영하는
00:02:58쓸모없는 오버헤드 코드를 많이 작성하는 것을 방지할 것입니다.
00:03:03claud.md의 세 번째 부분은 외과적 변경, 즉 간단히 말해 에이전트가
00:03:08반드시 건드려야 할 부분만 건드리는 것입니다.
00:03:11이는 Claude가 한 번에 방대한 양의 코드를 작성할 때 우리가 자주 직면하는 문제이며
00:03:15claud.md 파일에 명시적으로 수정 사항을 기재해야 합니다.
00:03:19Claude나 일반적인 에이전트들은 한 가지 작업을 요청받으면 그 작업 주변의
00:03:24것들도 개선하려고 하는 경향이 있습니다.
00:03:25이러한 개선 사항은 인접한 코드 변경이나 코드베이스 포맷팅처럼 보일 수 있는데
00:03:29우리는 지금 당장 그것에 집중하는 것을 원하지 않습니다.
00:03:32하지만 Claude의 주의력이 한 번에 구현하려는 여러 가지 것들로 분산되기 때문에
00:03:36이것이 성가신 일입니다.
00:03:37이런 식의 변경은 Claude가 지금 당장 원하지 않는 것들을 포함시키기 때문에
00:03:41좋지 않습니다.
00:03:43따라서 claud.md에 그렇게 하지 말라는 지시를 명시적으로 작성해야 합니다.
00:03:47에이전트가 관련 없는 죽은 코드를 발견하면, 스스로 수정하는 대신 언급만 해야 합니다.
00:03:52때때로 이런 것들은 나중에 해결하기 위해 남겨둔 것일 수 있으며
00:03:56앱이 현재 단계에서 다룰 문제는 아닙니다.
00:03:58Claude가 적절히 행동하는 법을 결정하게 하는 정신적 프레임워크는 모든 변경 사항을 확인하여
00:04:03그것이 실제로 사용자가 요청한 것과 연결되는지 확인하는 것입니다.
00:04:06연결된다면 그 변경을 수행해야 합니다.
00:04:08연결되지 않는다면 해당 기능을 건드려서는 안 됩니다.
00:04:10이 줄을 추가하면, Claude가 구현에 어떤 문제가 있을 때마다
00:04:14사용자가 고쳐달라고 요청한 것만 변경할 것입니다.
00:04:17따라서 같은 파일에서 발견된 다른 모든 문제를 여러분에게 알려줄 것이고
00:04:21여러분은 그것들을 실제로 수정하고 싶은지 아닌지 결정할 수 있습니다.
00:04:24안드레 카파시로부터 얻은 마지막 패턴은 목표 지향적 실행입니다.
00:04:29에이전트는 올바른 결과물이 어떤 모습인지 모르는데, 이것이 핵심 문제입니다.
00:04:33그들이 알고 있다면 훨씬 더 효과적으로 작업할 것이고, 이 규칙이 그것을 해결합니다.
00:04:36claud.md 파일에, 우리가 주는 각 작업에 대해 성공 기준을 정의하도록
00:04:41Claude에게 명시적으로 지시해야 합니다.
00:04:43따라서 우리가 넘겨주는 모든 작업에 대해 Claude는 그것을 검증 가능한 목표로 변환해야 합니다.
00:04:47예를 들어, 유효성 검사를 추가하라는 작업을 주면, 유효하지 않은 입력에 대한 테스트를 작성하고
00:04:52올바른 입력에 대해 올바른 반환값으로 그 테스트 케이스들이 실제로 통과하는지 확인합니다.
00:04:57즉, 에이전트가 테스트 케이스를 구현하고 모든 테스트 케이스가 통과할 때까지 반복하게 하여
00:05:01결과적으로 프로젝트가 우리가 실제로 필요로 하는 동일한 동작을 하게 만드는 것입니다.
00:05:06어떤 작업에 대해 프롬프트를 주면, 검증 가능한 목표를 설정하고 구현을 계획할 것입니다.
00:05:11그런 다음 모든 테스트 케이스를 추가하고 전체 앱을 어떻게 다룰지 보여줌으로써 여러분을 위해
00:05:15작업을 검증할 것입니다.
00:05:17이는 논리적 추론에는 효과적일 수 있지만, 에이전트가 UI가 어떻게 보이는지
00:05:21검증하길 원한다면 에이전트는 그것을 위한 테스트 케이스를 작성할 수 없습니다.
00:05:23그래서 Claude Chrome 확장 프로그램이나 Puppeteer MCP를 추가하면
00:05:28도구들을 사용하여 UI가 어떻게 보이는지 검증할 수 있습니다.
00:05:30UI 변경은 코드 자체만 보고 판단하기 어렵기 때문에, 에이전트가
00:05:35앱의 현재 시각적 상태를 보고 그것을 사용하여 문제를 해결할 수 있는 검증 가능한 방법을 주는 것이
00:05:40도움이 됩니다.
00:05:41따라서 UI 구현 후에는 MCP를 통해 결과를
00:05:45검증해야 한다는 줄을 명시적으로 추가할 수 있습니다.
00:05:48Claude Code의 자체 init 명령어를 사용하여 claud.md 파일을 만들었다면,
00:05:53개발 서버와 빌드 서버를 실행하는 명령어가 추가된 것을 볼 수 있습니다.
00:05:57하지만 그것들은 이미 훈련 데이터에 있고 Claude는 그 명령어들을 이미 알고 있으므로
00:06:01이미 아는 것을 알려주느라 claud.md에 불필요하게 줄을 낭비할 필요는 없습니다.
00:06:05따라서 파일에는 Claude가 기본값으로 사용하는 도구 대신
00:06:09사용하기를 원하는 도구들만 언급하면 됩니다.
00:06:11워크플로우를 더 빠르게 만들어주지만 Claude의 기본 훈련 데이터나
00:06:16이미 의존하는 패턴에 없는 특정 CLI 도구들이 있습니다.
00:06:18따라서 해당 도구들이 설치되어 있음을 Claude가 알도록 명시적으로 추가해야 하며
00:06:22항상 스스로 사용하는 것에만 의존하지 않게 해야 합니다.
00:06:26예를 들어, 작업에 git 대신 github cli를 설치했다면,
00:06:30모든 작업에 기본 git 명령어 대신 해당 cli를 사용하도록 claud.md에
00:06:36지시사항을 추가할 수 있습니다.
00:06:37마찬가지로 기본값이 아닌 더 많은 명령어를 추가할 수 있습니다.
00:06:41또한 프로젝트의 실행 지침이 일반적인 것들과 다르다면
00:06:45이 파일에 추가해야 합니다.
00:06:46예를 들어 기본 설정의 대부분 프로젝트는 npm으로 실행되는데, 프로젝트가 pnpm으로 실행된다면
00:06:51어떤 명령어를 실행해야 하는지 에이전트가 알 수 있도록 이 정보를 추가해야 합니다.
00:06:57Claude가 이미 알고 있는 명령어 외의 것들은 claud.md
00:07:01파일에 포함하지 않아야 합니다.
00:07:02claud.md의 다음 언급은 Claude Code의 창시자와 그가 밝힌 워크플로우에서
00:07:07영감을 받았습니다.
00:07:08그는 claud.md가 한 번 작성하고 영원히 사용하는 파일이 아니라고 말했습니다.
00:07:12그것은 구축 과정에서 계속해서 변경, 업데이트 및 개선되어야 하는 것으로
00:07:16지속적으로 반복되어야 하는ongoing 프로세스입니다.
00:07:20그래서 Claude가 구현이
00:07:25올바르지 않다는 말을 사용자에게 들었다면, 사용자가 지적한 대로 먼저 수정을 적용하라는 지시를 추가해야 합니다.
00:07:29Claude가 그러한 수정을 적용한 후에는, 해당 학습 내용을 전용
00:07:33파일에 추가하여 Claude가 무엇을 하지 말아야 하고 무엇이 올바른 방식인지에 대한 지식 베이스를 점진적으로 구축하도록 해야 하며,
00:07:38나중에 필요할 때 참조할 수 있도록 해야 합니다.
00:07:42하지만 넘어가기 전에, 후원사의 말씀을 들어보겠습니다.
00:07:45여러분, 아마 AI 에이전트에 대해 들어보셨을 겁니다.
00:07:47직접 설정해보려다 15분 만에 터미널을 쳐다보며
00:07:51API 키를 설정 파일에 붙여넣으며 중요한 정보를 유출한 건 아닌지 고민해보셨을 겁니다.
00:07:56Klaus는 그 모든 과정을 생략합니다.
00:07:57Klaus는 클라우드에서 오픈 소스 AI 에이전트인 OpenClaw를 실행합니다.
00:08:00가입하면 15달러의 Open Router 크레딧을 받고 즉시 프롬프트를 시작할 수 있습니다.
00:08:04터미널도, 도커도, API 키를 찾아 헤맬 필요도 없습니다.
00:08:07저는 Klaus에게 스타트업 디렉토리를 스크랩해서 결과를 표로 정리하고
00:08:12이메일로 보내달라고 요청하여 테스트했습니다.
00:08:13채팅창에 프롬프트 하나를 입력하니 끝났습니다.
00:08:15코드도, 브라우저 확장 프로그램도 필요 없었습니다.
00:08:17Exa나 Apollo 같은 내장 도구들이 함께 제공되며 Slack, WhatsApp, 심지어
00:08:21iMessage와도 연결됩니다.
00:08:22모든 것은 개인 계정과 완전히 격리된 방화벽 머신에서 실행됩니다.
00:08:27무언가 고장 나면 그들의 자동 수정 에이전트 Clawbert가 손대지 않아도 수정해줍니다.
00:08:31고정 댓글의 링크를 클릭하고 Klaus를 무료로 체험해보세요.
00:08:35대부분의 코딩 프로젝트는 Git으로 관리되므로, claud.md에
00:08:39확인 없이 실행할 수 없는 되돌릴 수 없는 명령어는 실행하지 말라는 지시를 명시적으로 추가해야 합니다.
00:08:44그리고 그러한 명령어를 실행해야 할 필요가 있다면, 반드시 먼저 허락을 구해야 합니다.
00:08:48이 명령어들은 한 번 실행되면 결과가 되돌릴 수 없기 때문에 위험하며
00:08:53운영 환경에 피해를 줄 수 있습니다.
00:08:55강제 푸시(force push), 헤드 재설정(reset head), 브랜치 병합(merge branches)이나 강제 삭제(remove with force)
00:09:00명령어 같은 것들입니다.
00:09:01또한 Claude가 명령어가 파괴적인지 아닌지 확실하지 않다면
00:09:04추측하지 말고 물어보라는 지시를 추가해야 합니다.
00:09:07이것이 여러분의 많은 골칫거리를 덜어줄 것입니다.
00:09:08예를 들어, Claude가 실수로 병합하고 싶지 않은 브랜치를 병합하려 한다면,
00:09:12병합하기 전에 허락을 구할 것이고 여러분은 거부하여 여러분의 작업을
00:09:16안전하게 지킬 수 있습니다.
00:09:17모든 정보를 단일 claud.md 파일에 넣을 필요는 없습니다. 그러면
00:09:22파일이 불필요하게 비대해지고 에이전트가 실제로 해야 할 일로부터 주의를 분산시킬 뿐입니다.
00:09:27따라서 첫 줄에 범위를 선언하고
00:09:31해당 파일들에 딱 맞춘 지시사항이 포함된 경로 범위 규칙 파일을 만들어야 합니다.
00:09:34또한 Claude가 이 파일들의 존재를 알 수 있도록 claud.md에 위치를 언급해야 합니다.
00:09:40예를 들어, API를 작성할 때 Claude가 특정 지시사항을 따르기를 원한다면,
00:09:44그것들을 위한 규칙 파일을 추가하여 Claude가 해당 작업을 할 때,
00:09:48직접 그 지시사항을 로드하여 사용하게 할 수 있습니다.
00:09:50하지만 그만큼 중요한 점은, API 관련 지시사항이 Claude가
00:09:55그것을 작업하지 않을 때 간섭하지 않도록 보장한다는 것입니다.
00:09:56프로젝트의 서로 다른 부분에 대해 여러 규칙 파일을 가질 수 있고, 각각은 그 특정 영역에
00:10:00맞춤화된 지시사항을 포함할 수 있습니다.
00:10:02이렇게 하면 Claude는 그 부분을 작업할 때만 관련 지시사항을 로드합니다.
00:10:06따라서 컨텍스트 비대화를 방지하고 에이전트가 관련 없는 규칙에 주의가
00:10:11분산되는 대신 현재 작업에 집중하게 합니다.
00:10:13대부분의 대규모 애플리케이션은 모노레포(mono repo)에 있는데, 이는 모든 서로 다른 컴포넌트가
00:10:18함께 보관되고 각 폴더가 메인 애플리케이션의 서로 다른 측면에 기여하면서
00:10:22각 부분이 독립적으로 관리되는 하나의 거대한 저장소를 의미합니다.
00:10:28따라서 모노레포에서 프로젝트를 실행한다면, 각 서브 레포가 자체 claud.md 파일을 가지고 있는지
00:10:32확인해야 하며, 그래서 그것이 그것에만 특화된 지시사항을
00:10:37포함하고 글로벌 claud.md의 지시사항에만 의존하지 않도록 해야 합니다.
00:10:42글로벌 파일은 시스템의 모든 부분에 광범위하게 적용 가능한 지시사항으로만 구성되어야 합니다.
00:10:48하지만 범위가 지정된 claud.md 파일은 특정 앱이나 모듈에 특화된 지시사항을 포함할 수 있기 때문에
00:10:52더 잘 작동합니다.
00:10:54이는 에이전트가 더 집중된 가이드를 가지게 되어 성능을 향상시킵니다.
00:10:58따라서 모든 대규모 프로젝트 지시사항을 메인 파일에 넣는 것은 잘못된 움직임입니다.
00:11:02파일이 정보로 비대해질 것이고 Claude가 현재 작업과 관련 없는 지시사항이 있는
00:11:07영역을 지날 때 주의력이 실제로 해야 할
00:11:11일에서 벗어나게 할 수 있습니다.
00:11:12또한 저희 콘텐츠를 즐기고 계신다면, 저희가 더 많은 이런 콘텐츠를 만들고
00:11:16더 많은 사람에게 다가갈 수 있도록 도움을 주는 'hype' 버튼을 누르는 것을 고려해주세요.
00:11:19또한 프로젝트 설명을 claud.md 파일에 추가해야 하며, 이
00:11:24지시사항이 나머지 지시사항들 속에 묻히지 않고 맨 처음에
00:11:29배치되도록 해야 합니다.
00:11:30그래야 에이전트가 전체 앱이 무엇에 관한 것인지 먼저 읽음으로써 요지를 파악하기 때문입니다.
00:11:33그래서 앱이 어떻게 구조화되어 있는지, 전반적으로 무엇을 하는지, 무엇이
00:11:38서로 다른 서비스와 의존성인지, 그리고 앱이 어떻게 실행되는지 컨텍스트를 이해하게 됩니다.
00:11:41이렇게 하면 앱이 무엇을 하는지 추론하기 위해 코드를 보는 대신
00:11:45처음부터 알 수 있습니다.
00:11:46claud.md 파일에 추가해야 할 또 다른 섹션은 Claude가
00:11:50기능이 존재하는 것뿐만 아니라 의도한 대로 올바르게 작동하는지 작업 완료를 보고하기 전에
00:11:55검증해야 한다는 것입니다.
00:11:57빌드와 테스트가 올바르게 통과하는지 확인하기 위해 가용한 모든 검증 메커니즘을 사용해야 하지만,
00:12:02이 섹션의 핵심은 기능에 대한 코드가 존재하는지 확인하는 것뿐만 아니라 실제
00:12:07검증 단계를 사용하여 작업이 실제로 완료되었는지 확인하는 것입니다.
00:12:11따라서 이 지시사항은 Claude가 더 충실하게 보고하도록 하고
00:12:15앱이 올바르게 구현되고 의도한 대로 작동하는지 확인하기 위해 단위 테스트, 린팅, 타입 체크와 같은 여러
00:12:20유형의 검사를 사용하도록 밀어붙입니다.
00:12:23마지막으로, claud.md 파일에 지시사항을 정렬하는 방식 또한
00:12:27높은 에이전트 성능을 보장하는 데 매우 중요합니다.
00:12:29우선순위에 따라 정렬해야 합니다.
00:12:31첫 번째 지시사항은 하드 규칙이어야 하며, 즉 항상 절대적으로 협상 불가능하고 예외가
00:12:36없어야 합니다.
00:12:37이 하드 규칙들은 항상 다른 규칙들보다 먼저 나와야 합니다.
00:12:40그 다음에는 이전 것만큼 엄격하지는 않은 중간 우선순위 규칙이 옵니다.
00:12:44그것들은 다소 협상 가능하지만 여전히 중요하며 위반되어서는 안 됩니다.
00:12:48그 후에는 주로 참조와 편의성을 포함하는 낮은 우선순위 지시사항이 오며,
00:12:52에이전트가 이 섹션을 핵심 의사결정 소스로 되돌아가 사용할 필요가 없도록 합니다.
00:12:57한 가지 더 중요한 점은 claud.md 파일을 짧게 유지해야 한다는 것입니다.
00:13:01에이전트 성능에 최적인 것으로 간주되는 300줄이라는 엄격한 제한 아래로
00:13:06유지하는 것이 모범 사례입니다.
00:13:07그보다 길어지면 성능이 저하되기 시작합니다.
00:13:10여기서 이야기한 claud.md 파일과 여기서 언급된 다른 모든 리소스는
00:13:15AI Labs Pro에서 이 영상과 이전의 모든 영상을 위해 이용 가능하며 다운로드하여
00:13:20여러분만의 프로젝트에 사용할 수 있습니다.
00:13:21저희가 하는 일에서 가치를 발견했고 채널을 후원하고 싶다면, 이것이 가장
00:13:25좋은 방법입니다.
00:13:26링크는 설명란에 있습니다.
00:13:27이것으로 이번 영상의 끝을 맺습니다.
00:13:29채널을 후원하고 이런 영상을 계속 만들 수 있도록 돕고 싶다면,
00:13:33아래의 'super thanks' 버튼을 사용하여 하실 수 있습니다.
00:13:35항상 시청해주셔서 감사드리며, 다음 영상에서 뵙겠습니다.