코드의 흡수 — 신경망에는 if 문이 없다 (Software 1.0/2.0/3.0)
별칭: 코드 흡수 · Software 1.0/2.0/3.0 · 신경망의 if 없음 · code absorption
한 줄 명제
*신경망 (Neural Network) 안에는 if 문도, for 루프도, switch case 도 없다. 오직 행렬 곱셈 + 활성화 함수 + 가중치 만 있다. 코드가 신경망 속으로 흡수 되었다.
★ Karpathy 의 3 단계 패러다임
| 단계 | 시기 | 정의 | 사람의 일 | 사람이 짜지 않는 것 |
|---|---|---|---|---|
| Software 1.0 | 1945~ | 명시적 코드 (Python·C++·Java) | if/for/while 직접 작성 | (없음 — 모두 사람이) |
| Software 2.0 | 2017~ | 신경망 가중치 (데이터로 학습) | 데이터셋·손실함수 큐레이션 | 알고리즘 자체 (학습됨) |
| Software 3.0 | 2025~ | LLM + 자연어 지침 | 지침 (CLAUDE.md·프롬프트) 작성 | 코드 + 데이터 + 큐레이션 (모두 LLM) |
★ 이미지 인식 — 본질을 보여주는 사례
| 시대 | 고양이 인식 구현 |
|---|---|
| 1.0 | 수천 줄의 픽셀 비교 if 문 — "if pixel(x,y).rgb in cat_color_range AND..." |
| 2.0 | 수백만 장 고양이 사진 + CNN 학습 — if 문 사라짐, 가중치만 남음 |
| 3.0 | "고양이인지 답해줘" + LLM — 데이터 큐레이션도 사라짐, 지침만 |
→ if 문이 신경망 속으로 흡수 되었다. 우리가 박을 if 문 = 남지 않는다.
★ Karpathy "Software 2.0" 원문 (2017)
"It turns out that a large portion of real-world problems have the property that it is significantly easier to collect the data (or more generally, identify a desirable behavior) than to explicitly write the program."
요약: *현실 문제의 상당수는 프로그램을 명시적으로 작성하는 것보다 데이터를 수집하는 것 이 훨씬 쉽다.
"The 'classical stack' of Software 1.0 is what we're all familiar with — it is written in languages such as Python, C++, etc. ... Software 2.0 is written in much more abstract, human unfriendly language, such as the weights of a neural network."
→ Software 2.0 의 언어 는 가중치 — 사람이 읽을 수 없는 코드.
★ Software 3.0 (Karpathy YC 2025)
"사람이 코드를 짜지 않는다. 데이터도 큐레이션하지 않는다. 자연어로 지시 한다. 그러면 LLM 이 코드 + 큐레이션 + 추론 + 검증 까지 모두 한다."
사람의 일의 변화:
| 시대 | 사람의 일 |
|---|---|
| 1.0 | if/for 직접 작성 — 알고리즘 + 자료구조 + 디버깅 |
| 2.0 | 데이터셋 구축 — 라벨링 + 손실함수 + 하이퍼파라미터 |
| 3.0 | 지침 작성 — 명세 (SPEC) + CLAUDE.md + 가드레일 + 검증 기준 |
★ 헌법 메타포의 진짜 근거
본 위키 synthesis_horim/claudemd-as-constitution-of-vibe-coding 의 헌법 메타포 가 왜 작동 하는가의 철학적 근거:
if 문은 이미 신경망 속에 있다. 우리가 더 작성할 필요가 없다. 신경망 가중치가 학습된 수백만 줄의 if 문 등가물 을 흡수 했다. 우리가 작성할 것은 — 신경망이 어떤 방향으로 행동할지의 원칙*.
헌법이 구체 시행규칙 을 박지 않고 원칙 만 박는 이유와 완전히 동일 하다.
헌법은 if/for 가 아니다. 원칙이다. CLAUDE.md 도 if/for 가 아니다. 원칙이다. 시행규칙·시행령 (구체 동작) 은 AI 신경망 + 4 층 인프라가 알아서.
4 층 인프라와의 층위 분리
| 층 | 작성 방식 | 예시 |
|---|---|---|
| CLAUDE.md (헌법) | 원칙 (Why·What) | "2 칸 들여쓰기" (구체적 원칙) |
| Hooks (시행규칙) | 구체 + 강제 (How) | ".env 편집 차단 스크립트" (실제 if 문) |
| Skills (행정규칙) | 구체 + 자동화 | "/deploy 6 단계" (단계별 로직) |
→ CLAUDE.md 의 구체성 은 if 문 구체성이 아니라 행동 원칙의 구체성. 남은 if 문 은 Hooks·Skills 가 담당.
★ 돌아온 실버 개발자의 기억의 부활
1990s 사내 Coding Standard Document = *알고리즘 코드가 아니라 행동 원칙 이었다:
- "네이밍은 camelCase"
- "한 함수 50 줄 이하"
- "외부 라이브러리는 PR 승인 후 추가"
→ 모두 if 문이 아닌 원칙. 코드는 프로그래머가 작성, 원칙은 팀이 합의. 헌법과 시행규칙의 분리 — 우리는 이미 알고 있었다.
2026 변화 — 코드는 AI 가 작성, 우리는 원칙만 작성. 1990s 의 Coding Standard 가 유일하게 남은 사람의 영역. 그 문서의 이름이 — CLAUDE.md 다.
강의 활용
- 들어가며 §1.7 — 본 카드 전체 활용. 카파시 3 단계 + 헌법 메타포 깊은 정당성.
- Chapter 2 §2.4 — 헌법 메타포 추가 보강 (if/for 가 아닌 원칙).
- Chapter 3 — AI = 자신감 있는 무능한 인턴 + 우리는 원칙으로 통제.
- Chapter 6 — 4 층 인프라의 층위 분리 정당화.
- 마치며 — 코드가 사라지니 설계만 남는다 = No Design, No Code 의 물리적 근거.
주의사항
- Software 2.0 ≠ Software 1.0 의 대체. 공존 — 신경망 학습·추론에는 여전히 Software 1.0 코드 (PyTorch·TensorFlow) 가 필요.
- LLM 안의 *attention·MLP 도 사실 행렬 곱셈의 시퀀스 — if 문 없음 이라는 표현은 추상화 층위에서 참. 하드웨어 수준에서는 분기 예측 등 여전히 작동.
- 해석 가능성 (interpretability) 문제 는 Software 2.0 의 본질적 그늘. 가중치를 역공학 으로 해석하려는 연구 (mechanistic interpretability) 가 활발.