영어가 새로운 프로그래밍 언어가 된 시대
70년 동안 큰 변화가 없던 소프트웨어 개발이 지난 몇 년 사이에 두 번의 급격한 변화를 겪었습니다. 테슬라의 전 AI 디렉터이자 OpenAI 창립 멤버인 Andrej Karpathy가 최근 YC AI Startup School에서 발표한 “Software 3.0” 개념은 이러한 변화의 핵심을 명확히 보여줍니다.

소프트웨어의 진화: 1.0에서 3.0까지
Karpathy는 소프트웨어의 진화를 세 단계로 구분합니다.
Software 1.0은 개발자가 직접 작성하는 전통적인 코드입니다. Python, Java, C++ 등의 프로그래밍 언어로 작성된 명시적인 지시사항들이죠.
Software 2.0은 신경망의 가중치(weights)로 구성된 소프트웨어입니다. 개발자가 직접 코드를 작성하는 대신 데이터셋을 준비하고 최적화 알고리즘을 실행하여 신경망의 파라미터를 학습시킵니다. Hugging Face가 Software 2.0 시대의 GitHub 역할을 하고 있다고 볼 수 있습니다.
Software 3.0은 대규모 언어모델(LLM)이 가능하게 한 새로운 패러다임입니다. 가장 혁신적인 점은 영어로 프로그램을 작성할 수 있다는 것입니다. “가장 핫한 새로운 프로그래밍 언어는 영어”라는 Karpathy의 유명한 트윗이 현실이 된 것이죠.
현재 우리는 Software 3.0이 기존의 1.0과 2.0을 대체해가는 과정을 목격하고 있으며, 엄청난 양의 소프트웨어가 다시 쓰여질 예정입니다.
LLM: 새로운 형태의 컴퓨터

Karpathy는 LLM을 단순한 도구가 아닌 새로운 형태의 컴퓨터로 바라봅니다. 전기나 파워 도구의 비유보다는 운영체제(OS)에 가깝다고 설명합니다. LLM 자체가 CPU 역할을 하고, 컨텍스트 윈도우가 메모리 역할을 하며, 다양한 문제 해결을 위해 메모리와 연산을 orchestrate합니다.
흥미롭게도 현재 LLM 생태계는 1960년대 컴퓨팅 환경과 유사합니다. 연산 비용이 높아 중앙화된 클라우드에서 시분할(time-sharing) 방식으로 사용하고 있으며, 개인용 컴퓨팅 혁명은 아직 일어나지 않았습니다.
LLM의 한계: 들쭉날쭉한 지능과 기억상실증
LLM을 “사람 정신의 확률적 시뮬레이션”이라고 표현하는 Karpathy는 두 가지 주요 한계점을 지적합니다.
Jagged Intelligence (들쭉날쭉한 지능)
LLM은 복잡한 수학 문제는 풀면서도 “9.11과 9.9 중 어느 것이 더 큰가?”와 같은 단순한 문제에서 실수를 범합니다. 인간의 지능이 선형적으로 발달하는 것과 달리, LLM은 예측하기 어려운 영역에서 뛰어나거나 실패합니다.
Anterograde Amnesia (전향성 기억상실증)
LLM은 영화 ‘메멘토’나 ’50번째 첫 키스’의 주인공처럼 장기 기억을 형성하지 못합니다. 훈련이 끝난 후에는 새로운 지식이나 전문성을 축적할 수 없고, 오직 컨텍스트 윈도우라는 단기 기억에만 의존합니다.
이러한 한계를 극복하기 위해서는 더 정교한 “인지적 자기 인식(cognitive self-knowledge)” 능력과 “시스템 프롬프트 학습(system prompt learning)” 같은 새로운 학습 패러다임이 필요합니다.
부분 자율성: 실용적 접근법의 핵심

Karpathy는 아이언맨 슈트를 이상적인 AI 제품의 비유로 사용합니다. 아이언맨 슈트는 두 가지 방식으로 사용자를 돕습니다:
- 증강(Augmentation): 사용자에게 힘, 도구, 센서, 정보를 제공
- 자율성(Autonomy): 때로는 독립적으로 행동
중요한 것은 자율성 슬라이더(Autonomy Slider) 개념입니다. 상황에 따라 자율성 수준을 조절할 수 있어야 합니다:
- Cursor: Tab → Cmd+K → Cmd+L → Cmd+I (에이전트 모드)
- Perplexity: 검색 → 리서치 → 딥 리서치
- Tesla Autopilot: 레벨 1부터 레벨 4까지
완전한 자율성보다는 부분 자율성(Partial Autonomy)이 현실적입니다. Karpathy는 2013년 Waymo 프로토타입을 탔을 때 완벽한 주행을 경험했지만, 12년이 지난 지금도 완전 자율주행은 실현되지 않았다고 지적합니다. “데모는 works.any(), 제품은 works.all()”이라는 그의 표현이 이를 잘 보여줍니다.
Vibe Coding: 새로운 개발 패러다임
“Vibe Coding”은 Karpathy가 만든 용어로, 자연어로 대화하듯 코딩하는 방식을 의미합니다. 이제 누구나 영어를 할 수 있다면 프로그래머가 될 수 있는 시대가 왔습니다.

하지만 Vibe Coding에도 한계가 있습니다. Karpathy가 개발한 MenuGen 앱의 경우, 기본 기능은 몇 시간 만에 구현했지만 실제 배포를 위한 인증, 결제, 도메인 설정 등은 일주일이 걸렸습니다. 현재의 웹 개발 생태계는 여전히 전문가를 위해 설계되어 있어 AI가 접근하기 어렵습니다.
Agent-First 설계의 필요성
앞으로는 세 가지 정보 소비자를 고려해야 합니다:
- 인간 (GUI를 통해)
- 컴퓨터 (API를 통해)
- 에이전트 (컴퓨터이지만 인간과 같은 새로운 카테고리)
에이전트를 위한 설계 원칙들이 등장하고 있습니다:
- llms.txt 파일: 웹사이트의 robots.txt처럼 LLM에게 도메인 정보를 제공
- 마크다운 형태의 문서: HTML보다 LLM이 파싱하기 쉬움
- 프로그래밍 가능한 액션: “여기를 클릭하세요” 대신 LLM이 직접 실행할 수 있는 명령 제공
Vercel이나 Stripe 같은 회사들이 이미 LLM 친화적인 문서화에 나서고 있으며, Model Context Protocol 같은 표준도 개발되고 있습니다.
새로운 시대의 기회
Software 3.0 시대는 엄청난 기회를 제공합니다. 기존 소프트웨어의 상당 부분이 다시 작성될 것이며, 전문가뿐만 아니라 일반인도 소프트웨어 개발에 참여할 수 있게 되었습니다.
성공하는 제품들의 공통점은 다음과 같습니다:
- 효과적인 컨텍스트 관리
- 여러 LLM 호출의 오케스트레이션
- 애플리케이션별 특화된 GUI
- 빠른 생성-검증 사이클
- 적절한 자율성 슬라이더
중요한 것은 AGI 2027 같은 화려한 데모보다는 실용적인 부분 자율성 제품을 만드는 것입니다. 사용자가 AI 생성 결과를 빠르게 검증할 수 있는 GUI를 제공하고, AI를 적절히 통제할 수 있는 장치를 마련해야 합니다.
결론: Iron Man Suit에서 Iron Man까지
Karpathy는 향후 10년간 자율성 슬라이더가 왼쪽에서 오른쪽으로 이동할 것이라고 예측합니다. 현재는 Iron Man 로봇보다는 Iron Man 슈트를 만드는 것이 현실적이지만, 점진적으로 더 높은 자율성을 가진 제품들이 등장할 것입니다.
Software 3.0 시대에 진입한 지금, 개발자와 기업들은 에이전트를 위한 제품 설계에 진지하게 임해야 합니다. 영어가 프로그래밍 언어가 된 세상에서, 인간과 AI가 협력하는 새로운 방식을 모색해야 할 때입니다.
참고자료:
Comments