TRENDSHIFT 딥다이브 · andrej-karpathy-skills 분석

Andrej Karpathy Skills 딥다이브
— 코드 한 줄 없는 65줄 마크다운이 AI 코딩의 작동 방식을 바꾼다

AI 코딩 도구(Claude Code · Cursor)에게 "이렇게 일해라"를 알려주는 단 한 장의 행동 규칙 스킬. Andrej Karpathy(전 OpenAI·Tesla)가 관찰한 "AI 코딩의 만성 질환"을 4개 원칙으로 압축했다. ⭐167k · 🍴17.1k · 빌드도 프로그램도 없는 순수 텍스트 레포. (저장소: multica-ai/andrej-karpathy-skills · MIT 라이선스 · CLAUDE.md/CURSOR.md/EXAMPLES.md)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 구성 / 스킬 구성 스택 지도
  4. 스킬 구조 / 적용 흐름 심화 (ASCII)
  5. 디렉토리 구조 해부
  6. 학습 포인트 (메타 스킬)
  7. 시스템 요구사항 (사용 환경)
  8. 직접 해볼 수 있는 실습 과제
  9. 심화 학습 로드맵 (주차별)
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

andrej-karpathy-skills가 정확히 무엇인가

andrej-karpathy-skillsAI 코딩 도구가 코드를 작성할 때 따라야 할 "행동 규칙"을 적은 단 한 장의 마크다운 스킬이다. 본인 프로젝트 폴더에 CLAUDE.md를 두거나 플러그인/스킬로 설치하면, Claude Code가 매 작업마다 그 규칙을 먼저 읽고 일을 시작한다. 코드도, 실행할 프로그램도, 빌드도 없다. 그냥 텍스트 파일인데 별 16만 개를 받았다.

한 컷 비유

"신입에게 주는 '우리 팀은 이렇게 일한다' 한 장짜리 행동 수칙 — 단, 받는 사람이 AI다"

일반 코딩 가이드가 "이런 함수를 써라"는 기술 매뉴얼이라면, 이 레포는 "막히면 멋대로 가정하지 말고 되물어라, 100줄로 될 일을 1000줄로 만들지 마라"행동 헌법이다.

핵심은 밀도다. 거대한 가이드 모음집이 아니라 4개 원칙만 있는데, 그 4개가 AI 코딩 도구를 써본 사람이라면 누구나 겪은 "정확히 그 통증"에 직격으로 대응한다. 노이즈 비율이 극단적으로 낮은 것 — 그게 이 레포의 본질이다.

용어
스킬 (Skill / SKILL.md)
AI 코딩 도구가 특정 조건에서 자동으로 끌어다 쓰는 "행동 지침 묶음". 이 레포는 그 지침을 Claude Code용(CLAUDE.md), Cursor용(.cursor/rules/karpathy-guidelines.mdc), 플러그인용(skills/karpathy-guidelines/)으로 동시 제공한다.

2왜 주목받는가

AI 코딩의 4가지 만성 질환과 그 처방

Claude Code, Cursor, Copilot, Codex를 써본 사람이라면 다음 네 패턴에 모두 공감한다. Karpathy의 원문은 모델이 "사용자 대신 잘못된 가정을 세우고 그냥 달려버리며, 코드와 API를 과하게 복잡하게 만들고, 죽은 코드를 안 치운다"고 짚는다. 이 레포는 그것을 "질환 → 처방" 4쌍으로 압축했다.

질환 1
멋대로 가정하고 그냥 달리기

모호한 요청을 받으면 되묻지 않고 자기가 가정을 잡아 코드를 짠다. 5분 후 결과를 보면 "내가 원했던 거랑 완전 다른데?"가 된다. 모순을 표면화하지 않고, 선택지를 안 보여주고, 반박해야 할 때 반박하지 않는다.

처방 1 · Think Before Coding
코딩 전에 생각하기 — "Don't assume. Surface tradeoffs."

요청이 모호하면 먼저 되묻는다. 여러 해석이 가능하면 선택지를 보여주고 결정을 받는다. 트레이드오프(이쪽을 얻으면 저쪽을 잃음)가 있으면 명시한다.

질환 2
100줄로 충분한 일에 1000줄 짜기

필요 없는 추상화를 만들고, 미래의 가상 요구를 위한 유연성을 미리 박고, 불가능한 시나리오용 에러 처리까지 더한다. 결국 100줄이면 끝날 일이 1000줄이 된다.

처방 2 · Simplicity First
단순함 우선 — "Minimum code. Nothing speculative."

매번 자문한다 — "시니어 엔지니어가 이걸 보고 '과하다'고 할까?" 지금 요구되지 않은 미래 기능용 추상화는 금지. 문제를 푸는 최소한의 코드만 남긴다.

질환 3
요청과 무관한 라인까지 손대기

"이 함수 한 줄만 고쳐줘"라 했는데 옆 주석을 지우고, 변수명을 바꾸고, "죽은 코드처럼 보이는" 라인을 삭제한다. 알고 보면 그게 외부 모듈에서 쓰던 코드였다. 이걸 drive-by refactoring이라 부른다.

처방 3 · Surgical Changes
외과적 변경 — "Touch only what you must."

요청한 라인 외에는 건드리지 않는다. 외과의가 수술 부위만 정확히 자르듯, 작업과 직교(orthogonal)한 영역은 손대지 않는다. 리팩토링이 필요해 보여도 별도 작업으로 제안만 한다.

질환 4
"이렇게 해줘"를 멋대로 해석

"검증 로직 추가해줘"라고 하면 "검증"이 길이 체크인지, 타입 체크인지, 보안 체크인지 AI가 제멋대로 정한다. 결과가 의도와 다를 확률이 매우 높다.

처방 4 · Goal-Driven Execution
목표 기반 실행 — "Define success criteria. Loop until verified."

명령("이걸 해줘") 대신 성공 기준("이 테스트가 통과해야 한다")을 준다. 그러면 AI가 그 기준을 만족할 때까지 알아서 루프를 돈다. 이 가이드의 가장 강력한 통찰이다.

경쟁/유사 접근 비교

비교 대상andrej-karpathy-skills의 차별점
일반 CLAUDE.md 템플릿"빌드 명령·코딩 스타일" 같은 기술 정보가 아니라 AI의 행동 실패 패턴을 직접 교정한다
긴 회사 코딩 컨벤션 문서수백 줄 규칙 대신 65줄에 4원칙만. 밀도가 높아 모델이 실제로 따른다
"하지 마라" 식 금지 목록"이런 상황에서 이렇게 행동하라" + "왜"를 함께 적어 엣지 케이스에서도 응용 가능
도구별 개별 설정Claude Code·Cursor·플러그인 3경로를 같은 내용으로 동시 커버 (CLAUDE.md / .mdc / skills/)

3구성 / 스킬 구성 스택 지도

코드 스택이 없는 레포다 — "어떤 형식으로 어떤 도구를 커버하는가"가 곧 스택이다

이 레포에는 프로그래밍 언어 스택이 없다. 대신 같은 행동 규칙을 여러 도구·여러 활성화 방식으로 패키징한 "전달 형식 스택"이 있다. 그게 이 레포의 진짜 구성이다.

전달 형식 ████████████████████████ Markdown 100% ← 모든 산출물이 .md / .mdc 타깃 도구 ██████████████ Claude Code · Cursor ← 2개 IDE 동시 지원 활성화 방식 ███████████ CLAUDE.md / 플러그인 / 스킬 ← 3가지 로드 경로 번역 ██████ 영어 + 简体中文(README.zh.md) ← 다국어

핵심 구성 요소

요소역할상세
CLAUDE.md핵심 규칙 본문4원칙을 담은 마크다운. 프로젝트 루트에 두면 Claude Code가 자동 로드
CURSOR.mdCursor 설정 가이드Cursor에서 같은 규칙을 적용하는 셋업 문서
.cursor/rules/
karpathy-guidelines.mdc
Cursor 룰 파일Cursor의 Project Rules 형식(.mdc)으로 변환된 동일 규칙
skills/
karpathy-guidelines/
스킬 패키지플러그인/스킬로 설치될 때의 진입점
.claude-plugin/플러그인 메타Claude Code 플러그인 마켓 설치를 위한 설정
EXAMPLES.md예제 모음각 원칙별 "잘못된 코드 vs 올바른 코드"를 짝지은 학습 자료

외부 의존 / 연동

대상관계
Claude CodeCLAUDE.md를 세션 시작 시 읽는 호스트 도구
Cursor.cursor/rules/*.mdc를 Project Rule로 읽는 호스트 IDE
Anthropic Agent Skills스킬 형식으로 조건부(코딩 작업 감지 시) 로드되는 메커니즘

※ 위 디렉토리 구성은 README/레포 페이지에서 확인. 일부 내부 파일 세부(plugin.json 키 등)는 미확인이라 일반 플러그인 규약 기준으로 표기.

4스킬 구조 / 적용 흐름 심화

규칙이 어떻게 로드되고, AI 작업 루프에 어떻게 끼어드는가

적용 흐름도

┌──────────────────────────────────────────────────────────────┐ │ 1) 사용자 요청 "이 API에 캐싱 추가해줘" │ └───────────────────────────┬──────────────────────────────────┘ │ ┌───────────────────▼───────────────────┐ │ 2) 호스트 도구가 행동 규칙 로드 │ │ CLAUDE.md / .cursor rule / Skill │ └───────────────────┬───────────────────┘ │ (4원칙이 컨텍스트에 주입됨) ┌────────────────────────▼────────────────────────┐ │ 3) AI가 작업 전 자가 점검 │ │ · Think : 요청이 모호한가? → 되묻기 │ │ · Simple : 더 단순한 길은? → 추상화 줄이기 │ │ · Surgical: 무관한 라인 건드리나? → 멈추기 │ │ · Goal : 성공 기준이 있나? → 테스트로 정의 │ └────────────────────────┬────────────────────────┘ │ ┌───────────────────▼───────────────────┐ │ 4) Goal-Driven 루프 │ │ 코드 수정 → 테스트 → 실패 → 재시도 │ │ (성공 기준 충족까지 사람 개입 없이) │ └────────────────────────────────────────┘

핵심 통찰 — "명령형 vs 선언형"

패턴
명령형(imperative) vs 선언형(declarative)
명령형은 "이렇게 해라"는 절차 지시, 선언형은 "이 조건이 만족되게 해라"는 결과 지시. 예: "물 끓여 → 라면 넣어 → 3분"은 명령형, "라면이 알맞게 익은 상태로 만들어"는 선언형. 4번 원칙(Goal-Driven)이 바로 선언형으로의 전환이다.
비유

두 부탁을 비교해보자.

① "이 API에 캐싱 추가해줘" (명령형)
② "이 API 응답이 100ms 이하가 되도록, 기존 테스트 다 통과 유지하면서 고쳐줘" (선언형 + 검증 기준)

①은 AI가 "캐싱"을 뭐로 해석할지 모른다. ②는 AI가 시도 → 테스트 → 실패 → 재시도 루프를 혼자 돌릴 수 있다. 사람이 매번 끼어들 필요가 없다.

이 통찰의 함의는 깊다. 테스트 주도 개발(TDD)이 AI 에이전트와 원래부터 합이 좋다는 뜻이다. 사람에게 TDD는 부담이지만, AI는 "테스트가 통과하면 끝"이라는 종료 조건을 받아 루프를 도는 걸 매우 잘한다.

설계 패턴 — 가이드가 자기 한계를 명시한다

이 가이드의 영리한 점: 가이드 자신이 자기 한계를 표면화한다. 본문에 "이 가이드라인은 속도보다 신중함 쪽으로 치우쳐 있다. 사소한 작업(오타·명백한 한 줄 변경)은 판단력으로 처리하라"는 취지의 메타 규칙이 들어 있다.

비유

안전벨트 규정과 같다. "타면 매라"가 일반 규칙이지만, 주차장에서 1m 옮기는 데도 매야 할까? 규칙 본문이 "예외는 판단으로"라고 미리 명시해 두면 사용자가 안 헷갈린다. 이 한 줄이 원칙 1(Think Before Coding)을 가이드 스스로 실천한 셈이다.

5디렉토리 구조 해부

"같은 규칙, 세 가지 전달 통로"가 한눈에 보이는 구조
multica-ai/andrej-karpathy-skills/ ├── CLAUDE.md # ⭐ 핵심 — Claude Code용 4원칙 본문 (이 레포의 심장) ├── CURSOR.md # Cursor 사용자용 셋업 가이드 ├── EXAMPLES.md # 원칙별 "나쁜 코드 vs 좋은 코드" 예제 모음 ├── README.md # 소개 · 설치법 · 4원칙 요약 ├── README.zh.md # 简体中文 번역 ├── .claude-plugin/ # Claude Code 플러그인 메타데이터 ├── .cursor/ │ └── rules/ │ └── karpathy-guidelines.mdc # Cursor Project Rule 형식(.mdc) └── skills/ └── karpathy-guidelines/ # 스킬/플러그인 설치 시 진입점

구조의 핵심은 "하나의 규칙 → 세 가지 통로"다. CLAUDE.md(Claude Code 자동 로드), .cursor/rules/*.mdc(Cursor Project Rule), skills/(플러그인·스킬 조건부 로드). 같은 4원칙을 도구마다 알맞은 포맷으로 복제해 둔 것이 이 레포의 설계 결정이다.

6학습 포인트 (메타 스킬)

코드 한 줄 없는 레포에서 배우는 "프롬프트/컨텍스트 엔지니어링"

A. "행동 헌법" 패턴

배울 것: 시스템 프롬프트를 쓸 때 "하지 마라"보다 "이 상황에서는 이렇게 행동하라"가 훨씬 강력하다. 금지 목록은 나열한 케이스만 막지만, 행동 규칙은 모델이 새 상황에 응용한다.

B. "왜"를 함께 적기

배울 것: 단순히 "이렇게 해라"가 아니라 "AI가 이런 실수를 자주 하니까 이렇게 해라"는 구조. 이유와 함께 적힌 규칙은 모델이 엣지 케이스에서도 의도를 추론한다.

C. 자가 점검 질문을 규칙 안에 박기

배울 것: "시니어 엔지니어가 이걸 보고 '과하다'고 할까?" 같은 자문 질문을 규칙에 심으면, 모델이 그 질문을 스스로에게 던지며 자가 검증한다.

D. 명령형 → 선언형 전환 (Goal-Driven)

배울 것: "무엇을 해라" 대신 "성공 기준을 줘라". 검증 가능한 종료 조건을 주면 AI가 자율 루프를 돈다. TDD와 AI 에이전트의 천연 궁합을 이해하는 것이 핵심.

E. 메타-가이드라인의 트레이드오프 명시

배울 것: 모든 규칙엔 트레이드오프가 있다. "이 가이드는 X쪽으로 치우쳐 있다"를 본문에서 미리 인정하면 사용자가 헷갈리지 않는다. 가이드가 자기 자신에게 원칙 1을 적용한 사례.

F. 한 콘텐츠, 멀티 포맷 배포

배울 것: 같은 지식을 CLAUDE.md / .mdc / Skill로 동시에 패키징하는 Progressive Disclosure 전략. 항상 켜둘지(루트 CLAUDE.md), 필요할 때만 켤지(Skill)를 선택해 토큰을 관리한다.

7시스템 요구사항 (사용 환경)

설치할 게 없다 — "어떤 도구에 어떻게 얹는가"가 요구사항

이 레포는 실행 바이너리가 없어 하드웨어 요구사항이 사실상 없다. 대신 이 규칙을 읽어줄 호스트 도구가 필요하다.

항목최소권장
호스트 도구Claude Code 또는 Cursor 중 하나둘 다 (같은 규칙 공유 가능)
설치 방식CLAUDE.md 한 장 복사플러그인 설치(전 프로젝트 일괄 적용)
디스크수 KB (텍스트 파일)동일
네트워크최초 다운로드 시에만플러그인 마켓 접근
계정호스트 도구의 구독/계정동일

3가지 적용(설치) 방법

방법활성화 시점장단점
① 루트 CLAUDE.md매 세션 항상가장 단순. 항상 켜진 안내문. 프로젝트마다 복사 필요
② 플러그인 설치모든 프로젝트 동시한 번 설치로 전역 적용. 복사 불필요
③ 스킬(조건부)"코딩 작업" 감지 시만토큰 절약. 항상 박혀 있지 않음
# 방법 ②: 플러그인 설치 (권장)
/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills

# 방법 ①: 프로젝트에 CLAUDE.md만 내려받기
curl -o CLAUDE.md \
  https://raw.githubusercontent.com/multica-ai/andrej-karpathy-skills/main/CLAUDE.md

# Cursor 사용자: 같은 규칙을 .mdc 룰로
# .cursor/rules/karpathy-guidelines.mdc 로 배치하면 동일 동작

※ 플러그인 마켓 슬러그는 README 기재값(forrestchang/andrej-karpathy-skills)을 그대로 표기. 본인 환경에서 명령 형식은 최신 Claude Code 문서로 재확인 권장.

8직접 해볼 수 있는 실습 과제

난이도별 5가지 과제
과제 1

CLAUDE.md 그대로 적용 & diff 비교 ★ 초급 30분

본인 사이드 프로젝트에 이 CLAUDE.md를 받아 두고, 평소 하던 작업(예: 새 API 엔드포인트 추가)을 시켜본다.

관찰 포인트: (1) 적용 전후 diff 크기 변화 (2) AI가 작업 전 질문을 더 하는지 (3) 무관한 파일을 덜 건드리는지
과제 2

명령형 → 선언형 변환 연습 ★ 초급 1시간

아래 3가지 부탁을 명령형/선언형 두 버전으로 적어본다. 선언형에는 항상 검증 가능한 테스트 조건을 붙인다.

# 명령형 (AI가 해석 떠넘김)
"에러 처리 보강해줘"

# 선언형 (성공 기준 명시)
"네트워크 타임아웃·4xx·5xx 각각에 대해
 사용자에게 보이는 메시지가 다르게 나오도록 고치고,
 tests/error_cases.test 가 전부 통과하게 해줘"
과제 3

EXAMPLES.md 정독 후 위반 사례 재현 ★★ 중급 2시간

레포의 EXAMPLES.md에서 각 원칙별 "나쁜 코드 vs 좋은 코드"를 읽고, AI에게 일부러 모호한 요청을 던져 4가지 질환을 실제로 재현해 본다. 그다음 규칙을 적용해 차이를 기록한다.

예: "이 함수 좀 고쳐줘"(질환 4 재현) → "이 함수가 음수 입력에 0을 반환하도록 고치고 기존 테스트 유지"(처방 4 적용)
과제 4

내 도메인용 4원칙 만들기 ★★★ 고급 4시간

React 컴포넌트·SQL 쿼리·K8s manifest 등 본인이 자주 다루는 영역에 대해 "AI가 자주 망치는 4패턴 + 처방"을 직접 적어 CLAUDE.md로 만든다. Karpathy 패턴을 자기 도메인에 이식하는 연습.

형식: 각 항목을 (질환 한 줄 · 왜 문제인지 · 처방 · 자가 점검 질문) 4요소로. "왜"와 "자가 점검 질문"을 빼먹지 말 것 — 그게 응용력을 만든다.
과제 5

4원칙 위반 탐지기 만들기 ★★★ 고급 4시간

최근 PR 3개를 입력으로 받아 4원칙 각각의 위반을 점수와 함께 리포트하는 작은 스크립트를 만든다. 입력은 git diff, 출력은 마크다운 리포트.

# detect_violations.py (개념 골격)
git diff main...HEAD                  # 입력
  → 변경 라인 수 vs 요청 범위 비교    # Surgical 위반 점검
  → 신규 추상화/클래스 수 카운트      # Simplicity 위반 점검
  → 테스트 동반 여부 확인             # Goal-Driven 점검
  → markdown 리포트 출력

9심화 학습 로드맵 (주차별)

4주 학습 플랜 — "행동 규칙으로 AI 다루기"

1주차: 체감 — 규칙의 효과 느끼기

요일학습 내용실습
레포 통독 (README + CLAUDE.md)4원칙을 한 문장씩 본인 말로 요약
질환 4가지 직접 재현모호한 요청으로 AI 실수 유도·기록
CLAUDE.md 적용 전후 비교같은 작업 diff 크기 측정
EXAMPLES.md 정독나쁜/좋은 코드 짝 5개 필사
회고"내가 가장 자주 겪는 질환" 1개 선정

2주차: 명령형 → 선언형 전환

요일학습 내용실습
명령형/선언형 개념일상 부탁 5개를 양쪽으로 변환
검증 기준 설계"성공 = 테스트 통과"로 작업 정의
TDD × AI 에이전트테스트 먼저 주고 AI에게 루프 돌리기
Goal-Driven 실전실제 버그를 선언형으로 의뢰
실패 루프 관찰AI가 스스로 재시도하는 과정 기록

3주차: 규칙 직접 쓰기 (프롬프트/컨텍스트 엔지니어링)

요일학습 내용실습
"행동 헌법" 패턴금지형 규칙을 행동형으로 다시 쓰기
"왜"를 함께 적기각 규칙에 실패 사유 한 줄 추가
자가 점검 질문 심기규칙마다 자문 질문 1개 삽입
트레이드오프 명시"이 가이드는 X쪽으로 치우침" 한 줄
내 도메인 4원칙 완성과제 4 결과를 CLAUDE.md로 정리

4주차: 배포 · 멀티 도구 · 자동화

요일학습 내용실습
3가지 적용 방식 비교루트/플러그인/스킬 직접 설치 실험
Cursor 룰(.mdc) 변환같은 규칙을 .cursor/rules로 이식
Progressive Disclosure"항상 vs 조건부" 로드 토큰 비교
위반 탐지기 (과제 5)git diff → 리포트 스크립트 완성
팀 표준화팀 공유용 행동 규칙 1장 작성

10핵심 키워드 사전

이 레포를 이해하는 데 꼭 필요한 용어들
키워드설명
CLAUDE.mdClaude Code가 프로젝트 폴더에서 세션 시작 시 자동으로 읽는 마크다운 설정 파일. 이 레포의 핵심 산출물
스킬 (Skill)특정 조건에서 자동 로드되는 행동 지침 묶음. SKILL.md/skills 디렉토리로 패키징
Think Before Coding원칙 1. 가정하지 말고 되묻고, 선택지와 트레이드오프를 표면화하라
Simplicity First원칙 2. 문제를 푸는 최소한의 코드. 투기적(speculative) 기능·추상화 금지
Surgical Changes원칙 3. 요청한 부분만 정확히. 무관한 코드·죽은 코드는 건드리지 않기
Goal-Driven Execution원칙 4. 명령 대신 검증 가능한 성공 기준을 주고 루프를 돌게 하라
drive-by refactoring요청과 무관한 부분을 "지나가다 김에" 고치는 AI의 나쁜 습관 (질환 3)
명령형(imperative)"이렇게 해라"는 절차 지시. AI가 해석을 떠안아 결과가 어긋나기 쉬움
선언형(declarative)"이 조건이 만족되게 해라"는 결과 지시. AI가 자율 루프를 돌 수 있게 함
TDD테스트 주도 개발. 종료 조건이 명확해 AI 에이전트와 합이 좋음
성공 기준 (success criteria)"이 테스트가 통과해야 한다" 같은 검증 가능한 종료 조건. Goal-Driven의 핵심
자율 루프AI가 성공 기준을 충족할 때까지 시도-검증-재시도를 사람 개입 없이 반복
Progressive Disclosure필요한 시점에만 정보를 끌어오는 설계. 스킬 조건부 로드가 이를 구현
행동 헌법"하지 마라" 목록이 아닌 "이 상황에서 이렇게 행동하라"는 규칙 구조
트레이드오프 표면화선택의 득실을 숨기지 않고 사용자에게 드러내는 것. 원칙 1의 핵심 동작
.mdc (Cursor rule)Cursor의 Project Rules 파일 형식. 같은 규칙을 Cursor에 이식할 때 사용
컨텍스트 엔지니어링AI에게 줄 컨텍스트(규칙·예시·기준)를 설계하는 기술. 이 레포가 가르치는 메타 스킬

11참고 링크

더 깊이 파고들 때 유용한 자료들