최근 한 컨퍼런스에서 안드레 카파시가 발표한 흥미로운 내용을 접했다. AI 시대에 소프트웨어가 어떻게 변화하고 있는지, 그리고 이것이 개발자들에게 어떤 의미인지에 대한 깊이 있는 통찰이었다. 특히 지금 업계에 진입하려는 학생들에게는 매우 특별한 시기라는 점이 인상적이었다.
소프트웨어의 진화: 1.0에서 3.0까지
발표자는 소프트웨어가 70년 만에 가장 근본적인 변화를 겪고 있다고 주장했다. 이를 세 단계로 구분해서 설명하는데, 이 분류가 상당히 설득력 있다.
Software 1.0은 우리가 전통적으로 알고 있는 코드다. 개발자가 직접 컴퓨터에게 명령을 내리는 방식이다. C++, Java, Python 같은 언어로 작성하는 모든 코드가 여기에 해당한다.
Software 2.0은 신경망의 가중치(weights)를 의미한다. 개발자가 직접 코드를 작성하는 것이 아니라, 데이터셋을 조정하고 학습을 통해 신경망의 파라미터를 만들어내는 방식이다. 이미 많은 분야에서 이런 패러다임 전환이 일어났다.
그런데 여기서 흥미로운 점은Software 3.0의 등장이다. 대규모 언어모델(LLM)이 등장하면서 신경망이 프로그래밍 가능해졌다는 것이다. 이제 프롬프트가 LLM을 프로그래밍하는 코드가 되었고, 놀랍게도 이 프롬프트는 영어로 작성된다.
개인적으로 이 분류는 매우 통찰력 있다고 생각한다. 실제로 GitHub을 보면 순수한 코드만 있는 것이 아니라 영어와 코드가 섞여 있는 경우가 많아졌다. 이는 단순한 변화가 아니라 프로그래밍 패러다임 자체의 전환을 의미한다.
테슬라 오토파일럿에서 본 패러다임 전환
발표자가 테슬라에서 오토파일럿을 개발할 때의 경험담이 특히 인상적이었다. 초기에는 C++ 코드(Software 1.0)가 대부분이었고, 일부 신경망(Software 2.0)이 이미지 인식을 담당했다고 한다.
그런데 시간이 지나면서 신경망의 능력이 향상되고 크기가 커지면서, 기존의 C++ 코드들이 점점 삭제되고 그 기능들이 신경망으로 이전되었다는 것이다. 예를 들어, 여러 카메라의 이미지를 시간축으로 연결하는 작업도 신경망이 담당하게 되었다.
이는 매우 중요한 관찰이다. Software 2.0이 단순히 새로운 도구가 아니라, 기존의 소프트웨어 스택을 '먹어치우는' 형태로 발전한다는 것이다. 그리고 지금 우리는 같은 현상이 LLM과 함께 다시 일어나는 것을 목격하고 있다.
LLM: 새로운 형태의 유틸리티
발표자는 LLM을 전기에 비유했는데, 이는 매우 적절한 비유라고 생각한다. OpenAI, Google, Anthropic 같은 회사들이 LLM을 훈련시키기 위해 막대한 자본을 투자하는 것은 전력망을 구축하는 것과 같다. 그리고 API를 통해 이 '지능'을 토큰당 과금 방식으로 제공하는 것은 전기 요금과 유사하다.
실제로 최근 주요 LLM 서비스들이 다운되었을 때 많은 사람들이 업무를 못하는 상황을 봤다. 이는 정말로 '지능의 정전'이라고 할 수 있다. 전력망이 불안정하면 전압이 떨어지듯이, LLM이 불안정하면 전 세계가 조금 더 '바보'가 되는 셈이다.
LLM의 특성: 인간 같은 영혼들
LLM을 '사람 같은 영혼들(people spirits)'이라고 표현한 것이 인상적이었다. 인간의 데이터로 훈련되었기 때문에 인간과 유사한 심리학적 특성을 보인다는 것이다.
LLM의 장점은 명확하다:
- 방대한 지식과 기억력
- 개별 인간보다 훨씬 많은 정보를 학습
- 특정 영역에서는 초인적 능력
하지만 인지적 결함도 많다:
- 환각(hallucination) 현상
- 자기 인식 부족
- 들쭉날쭉한 지능 (9.11이 9.9보다 크다고 주장하거나, strawberry에 'r'이 두 개 있다고 하는 등)
- 전향성 기억상실증 (새로운 정보를 장기적으로 학습하지 못함)
이런 특성들을 이해하고 활용하는 것이 중요하다. LLM은 초인적이면서도 결함이 있는 존재로, 이를 염두에 두고 협업해야 한다.
모든 사람이 프로그래머가 되는 시대
가장 혁명적인 변화는 프로그래밍 언어가 영어가 되었다는 점이다. 이제 자연어를 구사할 수 있는 모든 사람이 잠재적 프로그래머가 되었다. 과거에는 소프트웨어 개발을 위해 5-10년의 학습이 필요했지만, 이제는 그렇지 않다.
'Vibe Coding'이라는 개념이 등장한 것도 이런 맥락이다. 정확한 문법이나 구조를 모르더라도 '감'으로 코딩하는 것이 가능해졌다. 아이들이 자연스럽게 AI와 대화하며 프로그래밍하는 영상을 보면, 이것이 소프트웨어 개발의 진입장벽을 얼마나 낮췄는지 알 수 있다.
발표자가 Swift를 모르면서도 하루 만에 iOS 앱을 만들었다는 경험담도 인상적이다. 과거라면 며칠간 Swift를 공부해야 했을 텐데, 이제는 AI의 도움으로 바로 시작할 수 있다.
에이전트를 위한 소프트웨어 설계
발표에서 가장 흥미로운 부분은 에이전트를 위한 소프트웨어 설계에 대한 아이디어였다. 기존에는 인간(GUI를 통해)과 컴퓨터(API를 통해)만이 디지털 정보를 소비하고 조작했다. 하지만 이제 에이전트라는 새로운 카테고리가 등장했다.
에이전트는 컴퓨터이지만 인간과 같은 특성을 가진다. 이들을 위한 인프라를 구축해야 한다는 제안이 매우 설득력 있다. 예를 들어:
- `robots.txt`처럼 `ai.txt` 파일을 만들어 LLM에게 도메인 정보를 제공
- 문서를 LLM이 읽기 쉽게 만들기
- API뿐만 아니라 에이전트가 직접 상호작용할 수 있는 인터페이스 제공
구글 로그인을 웹페이지에 추가하는 복잡한 과정을 예로 든 것도 공감이 간다. "이 URL로 가서, 이 드롭다운을 클릭하고, 이걸 선택하고..." 같은 지시사항들을 보면, 정말 컴퓨터가 인간에게 일을 시키고 있다는 느낌이다. 에이전트가 이런 작업을 대신할 수 있다면 얼마나 좋을까?
개발자의 미래: 아이언맨 슈트 비유
발표자는 개발자의 미래를 아이언맨 슈트에 비유했다. 완전히 AI가 대체하는 것이 아니라, AI가 개발자의 능력을 증강시키는 도구가 된다는 것이다. 앞으로 10년간 이 슬라이더가 왼쪽(순수 인간)에서 오른쪽(AI 증강)으로 이동할 것이라고 예측했다.
이는 매우 현실적이고 균형 잡힌 관점이다. AI가 개발자를 완전히 대체한다는 극단적인 시나리오보다는, 협업과 증강의 관점에서 접근하는 것이 더 합리적이다.
결론적으로
이 발표는 AI 시대의 소프트웨어 개발에 대한 포괄적이고 통찰력 있는 관점을 제시한다. 특히 소프트웨어의 진화를 1.0, 2.0, 3.0으로 구분한 프레임워크는 현재 일어나고 있는 변화를 이해하는 데 매우 유용하다.
지금은 정말 소프트웨어 업계에 진입하기에 흥미진진한 시기다. 엄청난 양의 코드를 새로 작성하고 다시 작성해야 하고, 전문 개발자와 일반인 모두가 이 과정에 참여할 수 있다. LLM이라는 새로운 형태의 '동료'와 협업하는 방법을 배워야 하고, 에이전트를 위한 인프라도 구축해야 한다.
무엇보다 중요한 것은 이런 변화를 두려워하지 않고 적극적으로 받아들이는 것이다. 아이들이 자연스럽게 AI와 대화하며 코딩하는 모습을 보면, 미래에 대해 낙관적이 될 수밖에 없다. 이는 소프트웨어 개발의 민주화이자, 창의성과 혁신의 새로운 시대의 시작이다.