프론티어노트
ESSAY · Issue 06 · 2026. 09. 17.

초대장은 이미 와 있었다

내가 이런 것도 하는 사람이었나

리텐션 0짜리 앱

8월, 삿포로 여행을 앞두고 여행 일정 앱을 하나 만들었다. 목표는 리텐션 0이었다.

여행하는 동안 잘 쓰고, 돌아오면 다시 열지 않아도 되는 앱이었다. 사용자를 다시 돌아오게 할 방법은 고민하지 않았다. 여행이 끝나면 할 일을 다한 셈이었다.

평소 서비스를 기획할 때라면 누가 얼마나 자주 쓸지, 계속 쓸 이유는 무엇인지부터 따졌을 것이다. 이번에는 그런 계산이 필요 없었다. 우리 가족의 이번 여행에 쓸모가 있으면 충분했다.

예전 같으면 메모장에 적고 말았을 일이다. 며칠 쓰려고 앱까지 만드는 건 수지가 맞지 않았으니까. 그런데 AI로 만드는 수고가 줄자, 그 정도 이유로도 앱을 만들 만해졌다.

사업이 될 필요는 없었다. 여행 준비물이면 됐다.

꽃밭에서 세상을 멸망시켰다

여행 중 아들을 안고 꽃밭에서 사진을 찍었다. 하늘은 파랬고, 꽃은 잔뜩 피어 있었다. 나는 선글라스를 쓰고 있었고, 아들은 내 품에 안겨 있었다.

이 사진을 ChatGPT와 Gemini에 넣었다. ChatGPT에는 이렇게 주문했다.

이거 뭔가 비장한 영화 포스터같이 만들어줘봐

꽃밭 위로 검은 구름이 몰려왔다. 사진 아래에는 FOR US라는 제목이 붙었다. 아들을 안은 자세는 그대로인데, 무슨 사연이 대단히 많은 부자처럼 보였다.

Gemini에는 좀 더 노골적으로 주문했다.

종말하는 세계에 남겨진 아빠와 아들 느낌의 영화 포스터로 이미지만들어줘

이번 결과물에는 꽃밭도 없었다. 도시는 불타고, 우리 옷에는 먼지가 묻어 있었다. 제목은 종말의 아침. 그 아래에는 이런 문구가 붙었다.

우리가 지켜야 할 단 하나의 이유

아들 안고 사진을 찍었을 뿐인데, 인류의 앞날까지 떠맡았다.

삿포로 여행 사진과 ChatGPT에 입력한 프롬프트, 생성된 영화 포스터
ChatGPT에 넣은 실제 사진과 프롬프트. 꽃밭은 남았지만 가족사진은 영화 포스터가 됐다.
같은 여행 사진과 Gemini에 입력한 프롬프트, 생성된 종말의 아침 포스터
Gemini에는 아예 종말을 주문했다. 원본에서는 아들을 안고 꽃밭에 서 있었다.

처음부터 게임을 만들려고 찍은 사진도, 세계관을 구상하려고 쓴 프롬프트도 아니었다. 그냥 여행 사진으로 장난을 쳤다.

그 장난이 지금 만드는 게임의 출발점이 됐다.

디아블로에 K팝을 넣었다

요즘 여러 해커톤에 참여하고 있다. 다른 해커톤 현장에서 만난 게임 개발자와 Codex 게임 해커톤에 함께 나가기도 했다. 실제 게임 비즈니스에 종사하는 분이었다.

우리가 출품한 게임의 컨셉은 이랬다.

디아블로식 전투에 K팝 데몬헌터스의 분위기와 K팝의 음악적 요소를 결합한 타격형 리듬 MMORPG.

써놓고 보니 짬뽕이다. 게임 하나를 설명하는 데 다른 작품과 장르가 줄줄이 나온다.

입상은 못 했다. 그래도 같이 만든 사람들끼리는 전체 구성과 컨셉이 아주 훌륭했다고 자평한다.

내 몫은 주로 배경과 서사였다. 처음 나온 아이디어를 어떻게 확장할지, 서로 다른 요소를 어떻게 한 세계 안에서 납득시킬지 고민했다.

K팝이 들어간다고 캐릭터에게 무대 의상을 입히고 음악을 틀어주면 충분할까. 리듬 게임이라는 이름을 붙이려면 전투와 박자는 얼마나 긴밀하게 연결돼야 할까.

여기서부터 질문이 늘어난다. 음악으로 싸우는 세계라면 노래를 잘하는 사람은 어떤 대우를 받을까. 공연의 절정과 전투의 절정을 겹치면 어떨까. 여러 명이 함께 싸우는 일이 합주와 닮아 있다면, 각자의 역할은 어떻게 나뉘어야 할까.

이런 질문을 던지다 보면 설정을 고치려고 시작한 이야기가 전투 방식까지 건드린다. 전투를 바꾸면 인물의 역할도 다시 따져야 한다. 음악을 빼도 똑같이 돌아가는 게임이라면, 아직 음악을 충분히 넣지 못한 것이다.

현업 게임 제작자들은 내가 이런 식으로 아이디어를 확장하는 것을 좋아했다. 내가 보탤 수 있는 일이 생각보다 많았다. 코드를 짜지 않아도 게임을 만드는 데 할 일이 있었다.

코덱스에게 휴가를 주는 법

별도로 참가했던 OpenAI Build with Codex 해커톤에서도 비슷한 접근을 했다. 주제는 코덱스를 쉬게 해주는 것이었다. 나는 코덱스가 쉴 수 있는 환경을 만들어, 강제로 쉬게 하자는 아이디어를 냈다. 그 아이디어로 3위를 했다.

여기에는 한 가지 역설이 있었다. 코덱스에게 쉬라고 시키면, 쉬는 것조차 수행해야 할 과제가 된다. 휴식을 위한 무언가를 주고 반응을 요구하면 또 그 요구를 처리해야 한다.

쉬게 해준다면서 일을 하나 더 주고 있는 셈이다.

그래서 코덱스가 휴식을 잘 수행하도록 만드는 대신, 더는 일하지 않도록 바깥의 조건을 바꾸기로 했다. 안에서 아무리 일을 하려고 해도, 주변 환경이 강제로 쉬게 하는 방식이다.

나는 이런 접근을 ‘메타 레이어를 씌운다’고 표현한다. 주어진 문제에 답을 하나 더 보태기 전에, 그 문제를 만든 조건부터 바꿔보는 것이다.

평소에도 생각을 점검할 수 있는 환경을 먼저 만들려 한다. 지금 당연하게 받아들인 전제는 무엇인지, 다른 관점에서 보면 어디가 어긋나는지, 질문 자체를 바꿔야 하는 것은 아닌지 확인한다. 내가 ‘사고폭발’이라고 부르는 질문들도 대체로 여기서 시작한다.

게임에서도 같은 방식을 썼다. 설정을 하나 추가하는 데서 끝내지 않고, 그 설정이 사실이라면 세계 전체가 어떻게 달라져야 하는지 물었다.

코덱스를 쉬게 할 때는 코덱스에게 일을 시키는 환경을 바꿨다. 게임에서는 각각의 설정이 성립할 수 있도록 세계의 규칙을 짰다. 전혀 다른 작업인데, 질문하는 방식은 닮아 있었다.

이번에는 서울을 만들고 있다

그 개발자와는 해커톤이 끝난 뒤에도 반쯤 취미로 여러 게임을 만들고 있다. 지금 만드는 서울켄시에는 삿포로에서 만든 포스터 속 부자를 데려왔다.

세상은 무너졌다. 나는 어린 아들과 그 이후의 서울을 살아가는 아빠가 됐다.

현재 제작 중인 서울켄시 게임 커버
「서울켄시」 게임 커버. 꽃밭에 있던 부자는 무너진 서울로 왔다. 아이 손에는 서울 지하철 노선도가 들려 있다. 실제 플레이 화면은 아니다.

커버 속 아빠의 어깨에는 무전기가 달려 있다. 아이는 품에 안겨 노선도를 들고 있다. 뒤로는 서울역과 한강이 보인다. 도시는 무너졌지만 역 안에는 불이 켜져 있고 사람들이 모여 있다.

이제 사진에는 없던 사정들을 만든다. 누가 전력을 공급할까. 어느 길로 가야 강을 건널 수 있을까. 이 아빠는 어떻게 지금까지 살아남았을까.

해커톤에서 만난 개발자들도 재미로 한두 명씩 등장인물로 추가하고 있다. 물론 먼저 동의를 받는다. 그 인물을 그리스 신화의 신과 결합하기도 하고, 중학교 때 재미있게 읽었던 퓨전 판타지 소설의 구조를 빌려오기도 한다.

게임 속 서울에 아는 사람이 하나씩 늘어난다.

여기서도 신의 이름만 붙이고 끝내면 재미없다. 그런 힘을 가진 사람이 서울에 있다면, 주변 사람들은 무엇을 부탁하고 무엇을 두려워할까. 그 사람은 누구를 돕고, 누구와 부딪힐까. 인물을 하나 추가했는데 그 주변의 사정도 다시 짜야 한다.

해커톤에서 만난 사람, 중학생 때 읽은 소설, 매일 돌보는 아들이 한 게임에 들어왔다. 게임을 만들려고 모아둔 재료는 하나도 없었다.

아빠가 나가면 아이는 누가 보나

내 이름을 넣은 인물에게는 과거를 줬다. 기동잔존대 특수회수반에서 일했지만, 마지막 회수 임무에서 명부 밖 피난민을 포기하지 못해 조직과 결별했다. 지금은 강남구청에서 옛 전우와 주민들의 응답을 기다린다.

여기서 전우를 찾으러 떠나는 사건을 구상했다. 목적지와 위험, 보상을 정하기 전에 해결해야 할 일이 있었다.

아빠가 나가 있는 동안 아이는 누가 돌보지?

지역 사건 초안에는 동행하기 전에 아이의 돌봄 당직과 보급, 돌아올 시간부터 합의하도록 적었다. 아이를 지키겠다는 비장한 대사만으로는 부족했다. 세상이 망해도 아이 맡길 사람부터 구해야 한다.

다른 선택지도 있었다. 플레이어가 동행을 거절하는 경우다.

초안에는 이렇게 적혀 있다.

플레이어가 거절해도 신종목은 생활권 호위와 무전 당직을 계속한다.

거절했다는 이유만으로 아이가 죽거나 사건이 자동으로 실패하지 않도록 했다.

선택할 수 있다고 해놓고, 거절하면 아이를 죽여 죄책감을 주는 식으로 만들고 싶지는 않았다. 플레이어가 도와주지 않아도 이 아빠는 자기 할 일을 한다. 아이를 돌보고, 주변을 지키고, 무전을 받는다.

플레이어가 관심을 거둬도 이 사람의 하루는 계속돼야 했다.

서울켄시의 지역 사건 강남구청의 마지막 수신 초안
「강남구청의 마지막 수신」 사건 초안. 동행에 앞서 아이의 돌봄을 합의하고, 동행을 거절해도 인물의 생활은 이어진다.

내가 주로 하는 일은 이런 것이다. 인물을 만들고, 그 인물에게 생길 일을 묻고, 선택지를 만든 뒤 그 선택이 누구에게 어떤 결과를 남길지 다시 따져본다. 게임 전체의 규칙이 인물의 사정과 어긋나면 둘 중 하나를 고친다.

아들을 안은 사진 한 장이, 모험을 떠나는 조건과 거절하는 선택지까지 바꿔놓고 있었다.

이 과정이 너무 재미있다. 게임을 만드는 동안에도 게임을 하는 기분이 든다. 다만 이번에는 정해진 선택지 중 하나를 고르는 대신, 선택지부터 만들고 있다.

내가 가진 능력의 다른 용도

게임을 만들면서 새로 발견한 것은 취미 하나만이 아니었다. 나는 게임 제작에 쓸 수 있는 능력을 이미 다른 일에서 쓰고 있었다.

맥락을 따지고, 전제를 바꾸고, 서로 다른 아이디어를 연결하는 방식은 전에도 쓰고 있었다. 게임에서는 그 방식으로 인물과 세계의 앞뒤를 맞췄다. 현업 제작자들도 그 작업을 좋아했다.

새로 쓰게 된 것은 사고방식만이 아니었다. 중학생 때 읽은 소설의 구조가 게임의 구상에 쓰였다. 해커톤에서 만난 사람들이 등장인물이 됐다. 아이와 사는 일상은 모험을 떠나기 전에 돌봄부터 합의해야 한다는 규칙으로 들어갔다.

하지만 그런 경험이 있다고 저절로 게임이 만들어지는 것은 아니다. 머릿속에 장면이 있는 것과, 그 장면을 보여주고 다른 사람과 함께 발전시키는 것은 별개의 일이다.

삿포로 사진에서는 그 차이가 분명했다. 내가 한 일은 사진을 고르고 짧게 주문한 것이었다. ChatGPT와 Gemini는 그 주문을 받아, 같은 자세의 부자를 전혀 다른 세계에 세워줬다. 나는 머릿속으로 상상하는 데서 그치지 않고 실제로 나온 이미지를 놓고 다음 이야기를 생각할 수 있었다.

사진을 변형하는 능력은 도구가 보탰다. 그 이미지를 게임으로 이어갈 이유는 내 쪽에서 생겼다. 아들을 안고 있는 사람이 나였기 때문이다.

그렇다고 내가 혼자 게임 제작의 모든 일을 하게 된 것도 아니다. 게임은 현업 개발자와 함께 만든다. 내가 주로 맡는 것은 배경과 서사다. AI의 도움을 받고 개발자와 협업하면서, 내가 할 수 있는 일이 실제 제작에 쓰이기 시작했다.

그래서 속도가 빨라졌다는 말만으로는 설명이 부족하다. 나는 여행 앱을 더 빨리 만든 게 아니라, 예전 같으면 만들지 않았을 앱을 만들었다. 게임 개발 업무를 더 효율적으로 처리한 게 아니라, 원래 내 일이 아니었던 게임 제작에 참여했다.

만드는 것이 달라지니 질문도 달라졌다.

포스터에는 아빠가 아이를 안고 있으면 됐다. 게임에서는 그 아빠가 아이를 돌보면서 다른 일을 할 수 있어야 했다. 그래서 돌봄 당직과 돌아올 시간이 필요해졌다. 인물을 그럴듯하게 세워두는 것으로는 부족했다. 그 사람이 어떻게 하루를 사는지까지 정해야 했다.

AI가 생각을 대신해준 만큼 내가 생각할 일이 줄어든 것은 아니었다. 한번 만들어놓으면 다음에 물을 것이 생겼다. 이미지를 만들고 나니 이야기가 필요했고, 이야기를 게임으로 옮기려니 규칙이 필요했다. 그 규칙을 따지면서 전에는 하지 않았던 생각을 했다.

나는 이런 경험을 두고 AI가 인간의 창의성을 ‘언락한다’고 말하고 싶다. 갑자기 없던 재능이 생겼다는 뜻도, 원래 있던 재능을 확인하기만 했다는 뜻도 아니다.

내가 해오던 생각으로 전에 못 하던 일을 하게 됐다. 그 일을 하다 보니 전에는 하지 않던 생각도 하게 됐다.

다른 사람이 쓴 판타지 소설을 읽던 중학생이, 이제는 그때 읽은 이야기를 참고해 자기 게임을 만들고 있다. 그 사이에 살아온 시간도 함께 쓰고 있다.

마법의 서울행

6월 13일, OpenAI Experience Lab에서 열린 콘테스트에 참가했다. ChatGPT 이미지 생성으로 서울을 표현하는 개인전이었다. 나는 그날 1등을 했다.

출품한 이미지에는 지하철이 나온다. 전철 문 너머에는 보랏빛으로 빛나는 서울이 펼쳐져 있다. 전광판에는 ‘마법의 서울행’이라고 적혀 있다. 그 아래에는 현실로 돌아가는 막차 안내도 있다.

수상하고 받은 카드를 손에 들고 사진을 찍었다. 내가 만든 이미지와 그 사진을 나란히 올려뒀다.

서울을 표현한 출품 이미지와 OpenAI Experience Lab 수상 당시 사진
2026년 6월 13일 OpenAI Experience Lab. ChatGPT 이미지 생성으로 서울을 표현하는 개인 콘테스트에서 1등을 했다. 왼쪽은 출품 이미지, 오른쪽은 수상 후 받은 카드를 들고 찍은 사진이다.

지금 다시 보니, 그림 속 사람도 작은 카드를 들고 열린 전철 문 앞에 서 있다. 내가 손에 든 카드 옆에, 내가 그린 다른 세계의 입구가 있었다.

그때는 서울을 한 장 그렸다. 지금은 아들과 살아갈 서울을 만들고 있다.

이미지에 담는 것으로 끝났던 상상을 게임의 이야기와 규칙으로 옮기고 있다. 해보고 나서야 내가 이런 일도 하는 사람이라는 걸 알았다.

초대장은 이미 와 있었다.