Skip to content
Back to Blog
Andrej Karpathy의 LLM 코딩 실수를 CLAUDE.md 한 파일로 해결하는 방법
Tutorial

Andrej Karpathy의 LLM 코딩 실수를 CLAUDE.md 한 파일로 해결하는 방법

4 min read0

Andrej Karpathy의 LLM 코딩 실수를 CLAUDE.md 한 파일로 해결하는 방법

AI 코딩 에이전트를 쓰다 보면 한 번쯤 경험합니다. 분명 "버그 수정해"라고 했는데, AI가 파일 5개를 리팩토링하고, 주석을 다 바꾸고, 100줄짜리 코드를 1,000줄로 부풀려 놓는 상황. OpenAI 공동 창립자 Andrej Karpathy도 같은 경험을 했고, 그 관찰을 공유했습니다. 그리고 누군가가 이를 CLAUDE.md 한 파일로 해결하는 프로젝트를 만들었습니다. GitHub Stars 14,500개.

Karpathy의 관찰: AI 코딩의 4가지 문제

2025년 12월, Karpathy는 코딩의 80%를 AI 에이전트에 위임하는 실험을 시작했습니다. 전 Tesla AI 디렉터이자 OpenAI 공동 창립자인 그가 2026년 1월 X에 올린 포스트는 조회수 7,500만 뷰를 기록하며 개발자 커뮤니티를 뒤흔들었습니다.

문제 1: 잘못된 가정

Karpathy의 원문을 직접 인용하면:

"모델이 당신을 대신해 잘못된 가정을 세우고 확인 없이 그냥 달려간다. 혼란을 관리하지 않고, 명확화를 구하지 않고, 불일치를 드러내지 않고, 트레이드오프를 제시하지 않고, 밀어붙여야 할 때 밀어붙이지 않는다."

AI에게 "로그인 기능 만들어"라고 하면, OAuth를 쓸지 이메일/비밀번호를 쓸지 묻지 않고 혼자 결정해서 구현합니다. 시니어 개발자라면 반드시 확인할 사항을 AI는 건너뛰는 겁니다.

문제 2: 코드 과복잡화

"코드와 API를 과하게 복잡하게 만들고, 추상화를 부풀리고, 죽은 코드를 정리하지 않는다... 100줄이면 될 것을 1,000줄로 구현한다."

요청하지 않은 "유연성"을 추가하고, 발생 가능성이 없는 시나리오의 에러 핸들링을 넣고, 한 번 쓰는 코드에 추상화 레이어를 쌓습니다. 결과적으로 유지보수가 더 어려운 코드가 됩니다.

문제 3: 관련 없는 코드 수정

"작업과 직교하는 코드나 주석을 이해 부족으로 변경/삭제한다."

PR 리뷰에서 "이 줄은 왜 바꿨지?"라고 묻게 되는 그 상황입니다. 버그 하나 고치라고 했는데 인접 코드의 포맷팅을 "개선"하고, 주석을 재작성하고, 관련 없는 함수를 리팩토링합니다.

문제 4: 선언적 접근의 부재

Karpathy는 해결 방향도 제시했습니다:

"LLM은 특정 목표를 달성할 때까지 루프를 도는 데 뛰어나다. 무엇을 하라고 말하지 말고, 성공 기준을 주고 지켜보라."

"버그 수정해" 대신 "이 재현 테스트를 통과시켜"라고 하면, AI가 독립적으로 반복 작업을 수행할 수 있다는 것입니다.

해결책: andrej-karpathy-skills 프로젝트

forrestchang/andrej-karpathy-skills 프로젝트는 Karpathy의 관찰을 4가지 실행 가능한 원칙으로 체계화하여 CLAUDE.md 단일 파일에 담았습니다.

원칙 1: Think Before Coding (코딩 전에 생각하기)

  • 가정을 명시적으로 진술할 것
  • 여러 해석이 가능하면 선택지를 제시할 것 (조용히 하나를 고르지 않기)
  • 더 단순한 방법이 있으면 밀어붙일 것
  • 혼란스러우면 멈추고 물어볼 것

이 원칙은 AI가 "혼자 결정하는 것"을 시스템 수준에서 차단합니다. CLAUDE.md에 이 규칙이 있으면 Claude Code는 불확실한 상황에서 사용자에게 확인을 구합니다.

원칙 2: Simplicity First (단순함 우선)

  • 요청된 것 이상의 기능 추가 금지
  • 한 번 쓰는 코드의 추상화 금지
  • 요청되지 않은 "유연성", "구성 가능성" 금지
  • 200줄이 50줄로 줄어든다면 반드시 줄이기

테스트 기준이 명확합니다: "시니어 엔지니어가 이게 과하다고 할까?" 그렇다면 단순화해야 합니다.

원칙 3: Surgical Changes (수술적 변경)

  • 인접 코드, 주석, 포맷팅 "개선" 금지
  • 깨지지 않은 것 리팩토링 금지
  • 기존 스타일에 맞추기 (본인 스타일과 다르더라도)
  • 관련 없는 죽은 코드는 언급만 하고 삭제하지 않기

변경된 모든 줄이 사용자 요청에 직접 연결되어야 합니다. 연결되지 않는 줄이 있으면 되돌려야 합니다.

원칙 4: Goal-Driven Execution (목표 지향 실행)

기존 지시개선된 지시
"검증 추가해""잘못된 입력 테스트를 쓰고 통과시켜"
"버그 수정해""재현 테스트를 쓰고 통과시켜"
"X 리팩토링해""전후로 테스트 통과를 보장해"

강한 성공 기준을 주면 LLM이 독립적으로 루프를 돌 수 있습니다. 약한 기준은 지속적인 명확화가 필요하게 만듭니다.

설치 방법

Option A: Claude Code Plugin (추천)

/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills

Option B: CLAUDE.md 직접 다운로드

curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md

30초면 프로젝트에 적용할 수 있습니다.

커뮤니티 반응과 영향

이 프로젝트는 2026년 4월 기준 GitHub Stars 14,500개, Forks 1,000개를 기록했습니다. LobeHub 마켓플레이스, AI Agent Skills, Playbooks.com 등 주요 AI 도구 생태계에 등재되어 있습니다.

커뮤니티에서 "코딩 에이전트 시대의 필수 세팅"이라는 평가를 받고 있으며, 이는 단순히 프롬프트 엔지니어링이 아닌 시스템 수준의 행동 제약이 AI 코딩 품질에 미치는 영향을 보여줍니다.

더 넓은 맥락: Vibe Coding에서 Agentic Engineering으로

Karpathy는 2025년 2월 "vibe coding"이라는 용어를 만들었습니다. AI에게 코딩을 맡기고 결과만 확인하는 방식이었죠. 1년 뒤인 2026년, 그는 "agentic engineering"으로 진화했습니다.

차이점은 명확합니다:

  • Vibe Coding: AI에게 맡기고 결과를 본다
  • Agentic Engineering: AI에게 명확한 규칙과 성공 기준을 주고, 시스템으로 품질을 보장한다

andrej-karpathy-skills 프로젝트는 이 전환의 실천적 도구입니다. CLAUDE.md 한 파일이 14,500 Stars를 받은 이유는 간단합니다. 시스템 프롬프트가 곧 실력인 시대가 왔기 때문입니다.

결론

AI 코딩 에이전트의 품질은 모델 성능만으로 결정되지 않습니다. 어떤 규칙을 주느냐, 어떤 성공 기준을 정의하느냐가 결과를 바꿉니다. Karpathy의 관찰을 체계화한 이 프로젝트는 30초 설치로 AI 코딩 경험을 개선할 수 있는 가장 실용적인 방법 중 하나입니다.

직접 설치해보고, 네 가지 원칙이 여러분의 AI 코딩 워크플로우를 어떻게 바꾸는지 경험해 보세요.


출처: