처음 코딩을 시작했을 때를 기억한다.
그때는 "개발자가 되려면 코딩을 잘 해야 한다"는 게 당연한 진리였다. 얼마나 빠르게 알고리즘을 짜는지, 어떤 언어를 쓰는지, 자료구조를 얼마나 꿰고 있는지. 코딩 실력이 곧 개발자 실력이었다.
그 진리가 지금 흔들리고 있다.
코딩은 문지기였다
사실 오래 생각해보면 코딩 자체가 목적인 적은 없었다. 코딩은 항상 수단이었다. 앱을 만들기 위해, 서비스를 만들기 위해, 내 머릿속의 아이디어를 현실로 끌어내기 위해. 그런데 그 수단의 장벽이 너무 높다 보니, 장벽을 넘는 것 자체가 능력처럼 보였다.
판타지 세계로 치면 이렇다. 마법을 쓰려면 먼저 룬 문자를 수년간 익혀야 했다. 그게 마법사가 되는 전제 조건이었다. 세계를 만들고 싶어도, 룬 문자를 모르면 아예 시작할 수 없었다.
코딩이 그랬다. 세계를 만들고 싶으면, 먼저 코드를 써야 했다.
이런 소식, 남들보다 먼저 받으실 분?
직접 돌려보고 되는 것만 골라 매주 보내드립니다. 광고성 하이프는 거릅니다.
사역마가 룬 문자를 배웠다
그런데 이제 사역마가 룬 문자를 읽고 쓴다.
AI에게 "이런 화면을 만들어줘"라고 말하면, AI가 코드를 작성한다. "이 기능에서 버그를 찾아줘"라고 말하면, AI가 원인을 짚어낸다. 직접 마법 문자를 새기지 않아도, 세계에 변화를 일으킬 수 있게 됐다.
이 시리즈의 1편에서 이런 말을 했다.
"AI는 주문을 실행하는 사역마다. 개발자는 세계의 규칙을 설계하는 존재."
그 사역마가 이제 룬 문자까지 쓸 수 있다. 개발자가 해야 할 일이 하나 줄어든 게 아니라, 개발자의 역할 자체가 달라지고 있다.
앱 두 개를 만들었다
나는 혼자서 앱을 두 개 플레이스토어에 출시했다.
하나는 담임노트 — 어린이집 선생님이 원아를 관찰하고 기록하는 앱이다. 하나는 FieldMark — 현장 점검 업무를 앱으로 처리하는 도구다. 둘 다 처음부터 내가 모든 코드를 직접 짠 게 아니다.
내가 한 건 이런 것들이다. 어떤 화면이 필요한지 그렸다. 데이터베이스가 어떤 구조를 가져야 하는지 설계했다. 사용자가 어떤 순서로 앱을 사용하는지 상상했다. 버그가 생겼을 때 어디서 무슨 이유로 생겼는지 추론했다. 그리고 AI에게 구체적인 지시를 내렸다.
코드를 타이핑하는 시간보다, 세계를 상상하는 시간이 훨씬 더 많았다.
게임 디자이너는 코드를 짜지 않는다
게임 디자이너를 생각해봤다. 스타크래프트의 저그, 테란, 프로토스를 설계한 사람. 각 종족의 장점과 단점, 유닛의 체력과 공격력, 지형의 전략적 의미. 이 모든 걸 만든 게임 디자이너는 실제로 C++ 코드를 타이핑하지 않는다.
그렇다고 세계를 만든 게 아닌가? 분명히 만들었다. 수십억 시간의 게임을 만든 세계를.
던전마스터 이야기
던전 앤 드래곤(D&D)에는 던전마스터(DM)라는 역할이 있다. 플레이어들이 모험할 세계를 만들고, 이야기의 흐름을 지휘하고, 비밀 상자 안에 뭐가 들었는지 정하는 사람이다.
DM은 프로그래머가 아니다. 규칙집을 달달 외울 필요도 없다. 중요한 건 "이 세계는 어떻게 돌아가는가"를 상상하고, 플레이어들이 그 안에서 살아있다는 느낌을 받게 만드는 것이다.
AI 시대의 개발자는 점점 DM을 닮아간다. 세계의 규칙을 정하고, 사역마(AI)에게 구체적인 지시를 내리고, 결과를 보면서 방향을 조정한다. 주문을 직접 외우는 마법사에서, 마법사들을 지휘하는 대마법사로.
월드 빌더에게 필요한 것
그렇다면 월드 빌더에게 필요한 건 무엇인가. 이 시리즈를 쓰면서 내가 느낀 세 가지다.
-
세계를 상상하는 능력
어떤 문제를 풀 것인가. 사용자는 어떤 경험을 갖게 되는가. 이 앱 안에서 데이터는 어떻게 흐르는가. 코드를 쓰기 전에 세계를 머릿속에서 먼저 돌려보는 힘이다. 이건 프로그래밍 언어와 관계없다. -
도구를 지휘하는 능력
API를 불러오고, AI에게 지시하고, 라이브러리를 엮는다. 어떤 사역마를 언제 소환할지 아는 것. 이건 1편에서 말한 소환술이다. 직접 마법을 쓰는 게 아니라, 어떤 마법이 필요한지 아는 것. -
세계를 일관되게 유지하는 능력
이 시리즈에서 다룬 것들이 여기에 모인다. Git으로 타임라인을 관리하고(3편), 데이터베이스로 법칙을 기록하고(4편), 메모리 시스템으로 맥락을 이어간다. 세계는 한 번에 만들어지지 않는다. 매 세션, 매 커밋, 매 배포로 조금씩 쌓인다.
코딩은 끝나지 않았다
오해하지 않으면 좋겠다. 코딩이 쓸모없어졌다는 얘기가 아니다.
코딩의 정의가 바뀌었다.
예전의 코딩은 좁았다. 코드를 정확하게 타이핑하는 것, 알고리즘을 빠르게 짜는 것. 지금의 코딩은 넓다. 문제를 발견하고, 세계를 설계하고, AI를 지휘하고, 결과를 검증하고, 세계를 유지하는 전체 과정이 코딩이다.
예전엔 코드 한 줄을 쓰는 속도가 중요했다. 지금은 어떤 한 줄을 왜 써야 하는지 아는 게 더 중요하다.
그래서 월드 빌더 시대다
1편을 쓸 때 마지막 단락에 이런 말을 남겼다.
"우리는 단순히 프로그램을 만드는 사람이 아니다. 세계를 만든다."
그때는 조심스럽게 한 말이었다. 지금은 확신한다.
AI가 사역마가 된 이 시대에, 개발자의 가장 강력한 능력은 코드 한 줄을 정확하게 타이핑하는 것이 아니다. 세계를 상상하는 것이다. 존재하지 않는 것을 머릿속에 먼저 만들고, 그것을 현실로 소환하는 것.
나는 여전히 개발자다. 다만 이제는 손으로 마법을 시전하는 사람에서, 마법사들을 지휘하는 사람으로 조금씩 바뀌어가고 있다. 코딩을 포기한 게 아니라, 코딩의 범위가 넓어진 것이다.
그리고 그게 나쁘지 않다.
월드 빌더 시대가 오고 있다. 이미 와 있는지도 모른다.