수업 당일 새벽 두 시

그 시각 나는 게임에 오프닝 영상을 붙이고 있었다.

몇 시간 뒤면 연천전곡초등학교 6학년 아이들이 등교한다. 한 반에 스물세 명씩 다섯 반, 합쳐서 110명쯤 된다. 반마다 40분씩 학교 태블릿으로 이 게임에 들어온다. 광장 한가운데에 분수가 솟아 있고, 여섯 갈래 거리마다 직업인들이 서서 아이들을 기다린다. 3D로 지은 도시다.

직업 도시 광장. 여섯 거리와 분수, 건물 앞에 선 직업인들

일주일 전만 해도 이 도시는 없었다. 그때 가진 건 네 쪽짜리 종이 워크북 구상 하나였다.

아무도 안 가는 곳을 찾아다녔다

AI를 다루는 사람은 이제 많다. 누구는 대기업 임원 앞에서 강의하고 누구는 한 회사의 AX 전환을 통째로 컨설팅한다. 한 분야를 깊게 파서 자리를 잡은 사람들이다.

나는 깊이로 겨루지 않았다. 대신 AI가 아직 닿지 않은 데를 찾아다녔다. 평택시 아이사랑센터에서는 다섯 살 미만 아이를 키우는 어머님들과 AI를 처음 같이 열어 봤다. 서울시장애인복지관에서는 AI 스터디를 스스로 꾸려 공부하던 공무원분들 앞에 섰다. 육아맘과 복지관 공무원의 하루는 완전히 다르다. 그래서 갈 때마다 강의를 처음부터 새로 짰다. 같은 AI를 들고 가도 쓰는 말부터 달랐다. 눈높이를 새로 맞추고 준비물도 매번 새로 골랐다. 솔직히 그렇게 갈아엎는 게 좋았다. 강의를 한 번 치를 때마다 내가 설 수 있는 곳이 한 뼘씩 넓어졌다.

이번에는 초등학교 교단이었다. 지금까지 간 곳 중 제일 멀었다. 이번 준비물은 클로드 코드 실습도 발표 슬라이드도 아니었다. 아이들과 같이 뛰어다닐 3D 게임 하나를 통째로 지어야 했다.

강사가 어쩌다 게임까지 만들게 됐는지는 종이 넉 장부터 얘기해야 한다.

처음에는 종이 네 장이었다

연천전곡초등학교의 요청은 분명했다. 6학년 아이들이 자기 적성과 직업을 알아보는 수업에 AI를 붙여 달라는 거였다.

처음 그린 수업은 차분했다. 아이들이 네 쪽짜리 워크북을 들고 자기 이해에서 출발해 챗봇에게 묻는다. 받은 추천을 분류하고 탐험 카드로 마무리하면 40분이다. 인터넷이 끊기면 미리 인쇄해 간 추천 결과로 이어 가도록 백업도 잡아 뒀다. 흠잡을 데 없는 설계였다. 문서만 네 번 고쳐 썼다.

종이 워크북 네 쪽의 흐름. 나를 알기, AI에게 묻기, 추천 분류하기, 탐험 카드
게임이 되기 전 수업. 종이 네 장으로 40분을 짰다

여기서 멈췄어도 수업은 굴러갔을 거다. 워크북을 인쇄소에 넘기고 챗봇 링크를 점검하고 강의 대본만 다듬으면 끝났다.

근데 아이들이 쓸 챗봇을 고르려고 서비스마다 약관을 열어 봤다.

열두 살은 AI에 가입할 수 없다

ChatGPT, 만 13세부터. Gemini, 만 13세부터. Claude, 만 18세부터. 국내 서비스도 대부분 만 15세부터.

초등학교 6학년은 만 12세다.

아이들이 직접 계정을 만들 수 있는 AI는 하나도 없었다.

학교 계정으로 단체 가입하는 방법이 있긴 하다. 근데 이 수업에서 가르치려던 게 AI 말을 그대로 믿지 말고 따져 보라는 거였다. 따져 보라고 가르치러 간 사람이 약관 피해 가는 법부터 보여 줄 순 없었다.

그렇다고 내 화면으로 시연하고 아이들은 구경만 하면 그건 수업이 아니다. 그래서 계정 없이 들어오는 수업 도구를 직접 만들기로 했다. 반 코드 여섯 자리만 넣으면 들어올 수 있다. 계정도 비밀번호도 필요 없다. 그렇게 종이 워크북이 3D 게임이 됐다.

연령 제한으로 잠긴 AI 서비스 네 곳과, 반 코드로만 열리는 직업 도시
왼쪽은 열두 살이 열 수 없는 문들. 오른쪽은 반 코드 여섯 자리면 열리는 문

일주일 만에 도시 하나를 지었다

머릿속에 그린 건 직업 도시였다. 광장이 있고 거리마다 직업인이 서 있고, 아이가 캐릭터로 돌아다니며 말을 거는 세계다. 워크북은 버리지 않았다. 종이 위 활동을 전부 세계 안 장소로 옮겼다. 워크북 첫 쪽에는 아이가 동그라미를 치는 칸이 있었다. 나는 뭘 좋아하는 사람인가. 그 칸이 모험가 등록소가 됐다. 챗봇에게 직업을 묻던 둘째 쪽은 광장의 직업인 인터뷰로, 추천을 분류하던 셋째 쪽은 직업 체험과 깃발로 바뀌었다. 탐험 카드는 수료증이 됐다.

수업까지 일주일이 남아 있었다.

일주일이면 된다고 계산했다. 나는 혼자 일하지 않는다. 코드는 AI 에이전트들이 썼다. 나는 일을 트랙으로 쪼갰다. 이동, 화면, 서사, 서버, 결함 수정이 각자 트랙에서 동시에 굴러갔다. 나는 트랙마다 범위를 정하고 합류 지점을 잡았고, 결과물을 직접 플레이해 통과 여부를 정했다. 방향이 통째로 틀린 날도 있었다. 그날은 여섯 트랙을 한꺼번에 열어 전부 갈아엎었다.

그렇게 일주일 동안 커밋이 241개 쌓였다. 수업 전날 밤에는 학생 계정으로 등록부터 엔딩까지 한 번 더 완주했다. 새벽 두 시에 오프닝 영상을 붙이고 최종본을 올렸다.

만든 걸 세어 봤다. 거리에는 직업 스물다섯 종이 서 있고, 직업마다 하루를 세 컷으로 나눈 체험 장면이 붙는다. 장면마다 선택지가 둘에서 셋이라 다 합치면 이백한 개다. 코드는 1만 5천 줄, 테스트는 29개, 화면에 쓴 그림 파일은 176장이다.

25 + 2직업 NPC · 숨은 직업 둘
201체험 장면 선택지
15,656줄TypeScript 코드
176장화면 에셋

기능을 넣기 전에 뺄 것부터 정했다. AI 역사 설명과 도구 이름 나열을 뺐다. 어른용 프롬프트 공식도 뺐다. 이미지 생성도 뺐다. 아이 얼굴이 들어가면 바로 개인정보 문제가 된다. 제일 굵게 그은 선은 이거다. AI가 "너의 천직은 이거야"라고 답을 찍어주지 않는다. 답을 받아 버리면 탐험할 이유가 없어진다.

이 게임에서 AI는 아이의 미래를 점쳐 주지 않는다.
아이가 아직 못 본 가능성을 보여 줄 뿐이다.

열두 살이 바꾼 것들

이 도시 화면은 내 취향으로 고른 게 아니다. 청중이 열두 살이라 그렇게 만들 수밖에 없었다. 강의하는 곳이 바뀔 때마다 같은 걸 다시 배운다. 청중이 바뀌면 설계가 바뀐다.

열두 살은 자기를 MBTI로 소개한다

아이들이 처음 만나는 화면은 모험가 등록소다. 이름을 적고 네 문항으로 성향을 고르고 꿈을 한 줄 쓰면 등록증에 도장이 쾅 찍힌다.

성향 네 문항은 MBTI 형식을 빌렸다. 요즘은 초등학생도 MBTI로 자기를 소개한다. 첫 화면에서 아이들 눈을 끌기에 이만한 게 없다. 근데 게임 안에서는 이걸 일부러 계속 낮춰 불렀다. 진짜 성격검사가 아니라 네 문항짜리 오늘 하루 출입증이라고 했다. 진로 수업에서 "너는 이런 사람이야"라고 도장을 찍어 버리면 탐험은 시작도 하기 전에 끝난다.

등록이 끝나면 전자칠판에 우리 반 성향 분포가 뜬다. E가 몇 명, I가 몇 명. 아이들이 다 같이 앞을 보며 자기가 어디 들어가는지 찾는다. 각자 태블릿만 들여다보는 40분이랑 중간중간 다 같이 고개를 드는 40분은 전혀 다른 수업이다. 전자칠판 화면을 따로 만든 것도 그래서다.

등록증 꿈 칸에는 세대가 드러난다. 내가 초등학생일 때 그 칸에는 대통령, 장군, 과학자가 적혀 있었다. 요즘은 아이돌과 유튜버, 삼성전자와 하이닉스를 적는다고 한다. 나를 이 학교에 소개해 준 선생님이 귀띔해 줬다.

등록소. 이름, 성향, 꿈(장래희망)을 적으면 등록증에 도장이 찍힌다

아이들이 이미 즐기는 게임 화면을 따라갔다

그림체 하나 정하는 데 시안이 여섯 개 들었다. 기준은 하나였다. 열두 살이 이미 좋아하는 게임 문법을 따라가는 거였다. 처음엔 코드로 손그림풍 목업을 짰는데 내 눈에도 영 아니어서 바로 접었다. 그다음엔 AI 이미지 생성으로 그림체 시안 여섯 종을 뽑아 나란히 놓고 골랐다. 16비트 픽셀 두 종, 마인크래프트풍, 동물의 숲풍, 쿠키런풍, 로블록스풍. 고른 건 로블록스풍이다. 요즘 초등학생이 제일 오래 붙잡고 있는 게임의 그림체라서다.

같은 직업 도시를 여섯 가지 그림체로 뽑아본 시안 비교
같은 도시를 그림체 여섯 가지로 뽑아 나란히 놓고 골랐다

로비에서 아바타를 열두 종 중에 고르게 한 것도 같은 계산이다. 기능으로만 보면 없어도 되는 화면이다. 근데 자기 손으로 캐릭터를 고른 아이에게는 그 뒤 40분 동안 화면 속 캐릭터가 곧 자기다. 남이 정해 준 캐릭터를 끌고 다니는 거랑은 다르다.

로비의 아바타 선택. 열두 종을 갈아입어 본다

40분 안에 손에 쥘 수 있는 건 세 개였다

어른 강의에서 쓰는 프롬프트 프레임워크는 안 가져왔다. 광장으로 나가기 전에 거치는 질문력 튜토리얼에는 세 개만 남겼다.

자세히 말하기. 자기가 누군지, 뭘 좋아하고 뭘 잘하는지 붙여서 묻는다. 공식을 외우는 게 아니라 자기 얘기를 얹어 보는 연습이다.

다시 시키기. "다시 해줘"에서 끝내지 않는다. "더 쉽게", "3개만", "예를 들어"처럼 뭘 바꿔 달라는지 붙인다.

의심하기. 이 수업에서 제일 중요한 부분이다. AI는 모르면 멈추지 않고 그럴듯하게 지어낸다. 그래서 축구팀 선수가 열다섯 명이라고 우기는 오답을 게임에 일부러 심어 뒀다. 세 문장 중 하나는 AI가 틀리게 알고 있는 내용이다. 아이가 그걸 골라내면 AI의 거짓말이 들통난다. 매끈하게 말한다고 믿으면 안 된다는 건 설명으로는 안 남는다. 한 번 속아 보고 한 번 잡아내야 남는다. 이름, 학교, 주소를 같이 넣지 않는다는 약속도 이 단계에 담았다. 의심하기를 막 배운 뒤에 들어야 이 약속도 제일 잘 남는다.

첫 번째 꿀팁. 자세히 말하기
두 번째 꿀팁. 다시 시키기
세 번째 꿀팁. 셋 중 하나는 AI가 틀렸다

답을 주는 화면은 뒤로 물렸다

광장의 직업인에게 말을 걸면 인터뷰가 시작된다. 이 수업의 본편이 여기다. 방금 배운 질문 세 개를 이제 진짜 궁금한 상대에게 써먹는다.

명함은 질문 횟수를 채운다고 주지 않았다. 그 직업의 좋은 면, 힘든 면, 나랑 맞는지까지 캐물어야 명함이 나온다. 열 번을 물어도 좋은 점만 물으면 빈손으로 나온다. 겉만 보고 "이 직업 좋아 보여"로 끝내지 못하게 하려고 그렇게 짰다.

고치면서 배운 것도 있다. 처음엔 대화 첫 화면부터 질문 예시 버튼을 띄웠다. 그러면 아이가 자기 말로 물어볼 이유가 없어진다. 연습시키려던 걸 화면이 대신 해 주고 있었다. 그래서 버튼을 뒤로 물려 계속 막힐 때만 뜨게 했다.

직업인 인터뷰. 한 직업을 끝까지 해부해야 명함이 나온다

마지막에는 언덕에 깃발을 꽂는다. 오늘 만난 직업 중 하나를 고르고 왜 골랐는지 적는다. 여기만은 선택지 없이 빈칸으로 뒀다. 40분 내내 AI에게 묻고 답을 받았다. 마지막 한 줄은 자기 문장이어야 했다.

깃발 꽂기. 직업 하나를 고르고 이유를 직접 적는다

40분이 끝난 뒤에도 남을 걸 심었다

명함이 두 장 모이면 직업 체험이 열린다. 그 직업의 하루가 세 컷으로 지나가고 컷마다 아이가 하나를 고른다. 의사라면 아침 회진 장면이 나온다. 어제 수술한 환자가 다 나은 것 같다며 일어나려 한다. 아이는 상처를 직접 볼 수도 있고 밤에 잠은 잤는지 물을 수도 있다. 정답은 두지 않았다. 뭘 고르든 그 직업인다운 결과가 나온다. 세 컷이 끝나면 "너는 이런 식으로 일하는 쪽이더라" 하는 문장이 하나 붙는다. 직업 스물다섯 개에 세 컷씩 쓰다 보니 선택지가 이백 개를 넘었다.

직업 체험. 세 장면에서 고른 걸 모아 일하는 방식을 읽어 준다

모은 명함은 명함첩에 꽂힌다. 스물다섯 칸이 도감처럼 펼쳐지고, 아직 안 만난 직업은 실루엣으로만 보인다. 빈칸이 보이면 아이는 그 거리로 다시 걸어간다. 거리 어딘가에는 목록에 없는 직업이 둘 숨어 있다. 우주비행사와 로봇 공학자다. 명함은 찾아낸 아이만 받는다.

명함에는 칭호도 하나 붙는다. 집요한 질문왕, 허를 찌르는 꼬마 탐정, 리액션 맛집, 궁금한 건 못 참는 탐험가. 이런 칭호를 열두 개 만들어 뒀다. 아이가 어떤 질문을 던졌는지 보고 그중 하나를 붙인다. 점수는 매기지 않기로 했다. 대신 잘한 걸 이름으로 불러준다.

효과음은 음원 파일 없이 코드로 합성했다. 탭했을 때, 맞혔을 때, 받았을 때 나는 0.2초짜리 소리 세 개가 전부다. 태블릿 스물세 대가 학교 와이파이 하나에 한꺼번에 붙는다. 용량은 한 바이트라도 줄이고 싶었다. 배경음악은 아예 만들지 않았다. 스물세 대가 한꺼번에 노래를 틀면 그 교실에선 수업을 할 수가 없다.

수업이 망하는 상상을 했다

마지막 이틀은 기능을 늘리지 않았다. 그 대신 수업이 망하는 장면만 떠올렸다. 교실에서 터질 만한 사고를 하나씩 꼽고 사고마다 대책을 만들어 뒀다.

AI가 멈추면? 게임 안에서 AI가 쓰이는 곳은 다섯 군데다. NPC 대화, 질문 판정, 체험 장면, 칭호, 엔딩이다. 이 중 하나라도 모델 응답만 기다리게 짜 두면 API가 느려질 때 수업도 같이 멈춘다. 그래서 다섯 군데 모두 제한 시간을 걸었다. 시간을 넘기면 미리 써 둔 대사로 넘어간다. 교사 콘솔에는 대본 모드로 바꾸는 스위치도 달았다. 모델이 응답하면 아이 질문에 맞춘 답이 나가고, 응답이 끊기면 대본만으로 끝까지 간다.

태블릿이 못 버티면? 실시간 3D로 돌리는 건 아이가 움직이는 자기 아바타 하나뿐이다. 배경, 건물, 다른 캐릭터는 미리 구워 둔 그림이다. 화려할 이유가 없었다. 낡은 태블릿으로 40분을 버티는 게 먼저였다.

와이파이가 통째로 끊기면? 인터넷 없이 태블릿 혼자 끝까지 돌릴 수 있는 백업 게임을 파일 하나로 따로 만들어 깔아 뒀다. 온라인 게임에서 묻고 의심하고 고르는 흐름만 떼어 만든 버전이다.

내가 헤매면? 수업 전날 밤 마지막으로 갈아엎은 건 교사 콘솔이었다. 기능은 다 있었다. 근데 만든 나도 다음에 뭘 눌러야 할지 한 박자씩 늦게 찾았다. 40분짜리 수업에서 그게 다섯 번 쌓이면 진도가 밀린다. 그래서 화면이 알려 주는 내용을 바꿨다. "지금 상태가 뭔가" 대신 "지금 뭘 눌러야 하는가"를 보여 준다. 맨 위에 단계 배너를 달고, 그 단계에 필요한 버튼만 남겼다. 누를 게 없는 구간에는 없다고 적었다.

교사 콘솔과 전자칠판. 누를 게 없으면 없다고 적어 둔다

정상 경로를 하나 만들 때마다 그게 무너졌을 때 갈 길도 하나씩 따로 만들었다.

다섯 반 수업이 끝나고

수업은 다섯 번 했고 게임은 다섯 번 모두 멈추지 않았다. 만들어 둔 대비책은 한 번도 꺼내지 않았다.

약 110명초6 다섯 반 플레이어
7일게임 개발 착수부터 배포까지
241최종 커밋
23대 · 40분태블릿 · 반당 수업
5개 반연속 운영
0건수업 중 개발 이슈

근데 그날 기억에 남은 건 숫자가 아니었다.

아이들은 진짜 게임하듯 놀았다. 시키지도 않았는데 캐릭터를 몰고 광장을 헤집고 다녔다. 그러다 한 아이가 말했다. "이거 로블록스다!" 시안 여섯 장 중에서 로블록스풍을 고른 게 바로 그 말을 듣고 싶어서였다.

OX 아레나에는 상품을 걸었다. 일곱 문제 이상 맞히면 과자를 준다. 진로 수업에 웬 과자냐 싶겠지만 이유가 있다. 40분 수업은 처음 10분 안에 반 전체를 붙잡지 못하면 남은 30분 동안 아이들이 다 딴 데를 본다. 그 계산이 교실에서 그대로 맞았다. 다 컸다는 얼굴로 앉아 있던 열두 살들이 과자 얘기가 나오자 눈빛이 달라졌다. 문제가 뜰 때마다 바닥의 O와 X 사이를 전력으로 뛰었다. 다섯 반이 다 그랬다.

OX 아레나. 바닥의 O나 X로 걸어가서 답한다

이 나이 아이들한테서 배운 것도 하나 있다. 손에 뭘 쥐여 주면 조용해진다. 태블릿을 켜자 다들 화면에 빠져들었다. 과자 하나에 진심이던 아이들을 보며 나도 저 나이엔 저랬나 싶었다.

담임 선생님들 반응은 달랐다. 직접 만드신 거냐, 어떻게 만든 거냐고 물으셨다. 아이들 진로탐색에 쓰면 참 좋겠다는 말도 하셨다.

엔딩 수료증. 던진 질문 수, 만난 직업인 수, 오늘의 깃발이 찍힌다

새벽 두 시에야 오프닝 영상을 붙인 게임이다. 그 게임을 그날 오후 다섯 반이 끝까지 하고 나갔다.

판단은 내가 내렸다

코드는 AI 에이전트 여럿이 나눠서 짜 왔다. 근데 요구사항 한 줄에서 저절로 나오지 않는 판단이 있었다. 열두 살에게 성격을 단정해 주면 안 된다. 힘든 점까지 물어야 명함이 나오도록 조건을 걸어야 한다. 화면이 아이 대신 질문을 써 주면 안 된다. 아이 입장에서 등록부터 엔딩까지 직접 밟아 보고 나서 내가 정했다.

코드는 AI가 짠다. 근데 뭘 만들지는 아직 사람이 정한다.
그게 실제로 맞는지도 결국 사람이 끝까지 밟아 봐야 안다.

화면이 다 나왔다고 끝난 게 아니었다. 일은 다섯 반 수업이 끊기지 않고 끝까지 갈 조건을 다 갖추고 나서야 끝났다.

돌아보면 아이사랑센터도, 복지관도, 이 초등학교도 처음부터 계획한 곳은 아니었다. 틈이 보이면 들어갔고, 그러다 보니 남들이 굳이 안 가는 곳을 하나씩 거쳤다. 갈 때마다 필요한 게 달랐다. 눈높이를 새로 맞춰야 할 때도 있었고 도구를 새로 골라야 할 때도 있었다. 이번엔 쓸 도구가 아예 없어서 도시를 하나 통째로 지었다.

매번 없던 걸 새로 만들어야 했다. 그러는 사이 손에 굳은살이 박였다. 다음에 갈 곳도 사정은 비슷할 거다. 근데 이제 막막하지는 않다.