AI에게 시키는 말은 코딩 용어가 아니다
연재 「발주자」 — 코딩 못 하는 교사가 교실 도구를 만들며 배운, 시키는 사람의 조건. 24편 중 7편.

한 교실 안에 너무 다른 수준이 있다
영어 시간이 제일 어려웠다.
우리 반에 영어책을 술술 읽는 아이가 있고, 알파벳이 아직 버거운 아이가 있다. 같은 교실에 같이 앉아 있다. 1편에서 구구단 8단에서 막히는 아이와 2단도 아직인 아이가 같은 학습지를 받는다고 썼는데, 영어에서는 그 간격이 훨씬 넓다.
교사 한 명이 스무 명에게 각자 수준에 맞는 영어책을 읽어 줄 수는 없다. 산수가 안 된다. 한 명당 5분씩만 잡아도 백 분이고, 영어 시간은 사십 분이다.
그래서 보통은 가운데를 잡는다. 반 평균쯤 되는 걸 골라서 다 같이 한다. 그러면 잘하는 아이는 심심하고 못하는 아이는 못 따라온다. 두 쪽 다 그 시간에 배우는 게 거의 없는데, 겉으로는 수업이 되고 있는 것처럼 보인다. 그게 제일 괴로웠다.
그래서 만들었다.
그때 나는 이렇게 시켰다
정직하게 먼저 밝힌다. 그때 내가 정확히 뭐라고 쳤는지는 남아 있지 않다. 대화 기록을 따로 모아 두지 않던 때다. 나중에 가서야 시킨 말을 파일로 남기기 시작했는데, 그 얘기는 22편에서 하겠다.
그래서 이 편에서 인용부호를 칠 수는 없다. 화면에 남은 걸로 발주문을 되짚는 것도 안전하지 않다. 내가 시키지 않았는데 딸려 온 것도 있을 테니까.
다만 하나는 확실하다.
내가 짚은 건 순서였다는 것.
읽고, 듣고, 따라 하고, 말한다.
이 네 단계를 순서대로 하게 해 달라고 했다. 계정 없이 바로 열려야 한다는 조건도 어느 시점엔가 내가 넘겼다. 그게 첫 문장에 같이 있었는지 나중에 붙었는지는 이제 모르겠다.
내가 안 한 말도 적어 두는 게 공평하겠다. 어떤 언어로 만들지, 어디에 올릴지, 소리를 어떻게 낼지는 말했을 리가 없다. 그런 건 애초에 내 머릿속에 없었으니까. 지금도 이 앱이 무엇으로 만들어졌는지 나는 이름만 안다.
이 말에 코딩 용어가 몇 개나 있나
세어 보면 0개다. 함수도 없고 데이터베이스도 없고 API 도 없다. 그런데 내가 한 말을 뜯어 보면 몇 가지가 들어 있다.
1편에서 나는 발주문에 세 가지만 넣으면 된다고 썼다. 무엇을 위한 것인지, 누가 쓰는지, 화면에서 무슨 일이 일어나야 하는지. 지금 보면 하나가 빠져 있었다. 에코테일을 만들면서 그걸 알았다.
먼저 있던 셋부터 보자.
무엇을 위한 것인가. 이게 목적이다. 수준이 다른 아이들이 각자 자기 것을 읽게 한다. 이게 없으면 AI는 무엇을 위한 물건인지 모른다. 모르면 화면만 그럴듯한 게 나온다. 「영어 앱을 만들어 줘」라고만 하면 정확히 그게 나온다.
누가 쓰는가. 에코테일에서는 이게 제일 무거웠다. 수준이 제각각인 스무 명이 각자 다른 걸 읽어야 한다는 조건 자체가 이 앱의 뼈대를 정했다. 「초등학생」이라고만 했으면 한 가지 수준으로 나왔을 것이다.
사람이 무엇을 하면 화면이 무엇을 하는가. 이게 동작이다.
읽고, 듣고, 따라 하고, 말한다. 이건 아이 쪽 동작이다. 그런데 아이가 그 넷을 하려면 화면도 자기 몫을 해야 한다. 아이가 읽을 동안 글을 보여 주고, 다 읽으면 소리를 들려주고, 아이가 따라 할 자리에서는 기다려 주고, 말한 다음에 다음 장으로 넘긴다.
둘은 떼어 놓을 수 없다. 1편에서 구구단 페이지를 시킬 때도 그랬다. 「아이가 답을 맞히면 다음 문제로 넘어간다」 — 앞쪽이 아이의 동작이고 뒤쪽이 화면의 동작이다. 한 문장에 둘이 같이 있어야 발주문이 된다.
동작을 안 말하면 나머지가 다 흔들린다. 「영어 실력을 늘려 주는 앱」은 동작이 아니라 소망이고, 소망만 주면 AI는 단어 시험을 만들어 온다. 시험도 영어 실력을 늘리기는 하니까 틀린 답은 아니다. 내가 원한 게 아닐 뿐이다.
여기까지가 1편의 셋이다. 그리고 하나가 더 있었다.
느낌이다. 계정 없이 바로. 이건 기능이라기보다 온도에 가깝다. 아이 스무 명에게 회원가입을 시켜 본 사람은 안다. 계정을 만드는 일 자체가 하나의 수업이 된다. 아이디를 정하고, 비밀번호를 정하고, 잊어버린 아이가 나오고, 그걸 다 돌보다 보면 정작 하려던 걸 못 한다. 어른들은 이 항목을 잘 빠뜨린다. 어른은 계정이 이미 있으니까.
목적, 사용자, 동작, 느낌. 지금 내가 세는 발주 언어는 이 넷이다. 1편에서 셋이라고 한 걸 여기서 넷으로 고쳐 둔다. 어느 하나도 코딩이 아니고, 넷 다 그 일을 해 본 사람만 답할 수 있다.

왜 하필 그 순서였나
여기서 한 가지를 짚고 싶다.
읽고, 듣고, 따라 하고, 말한다. 이 순서는 AI가 정해 준 게 아니라 내가 넘긴 것이다. 그리고 나는 이걸 책에서 배우지 않았다.
교실에서 영어책을 읽힐 때 아이가 어디서 무너지는지를 여러 번 봤다. 처음부터 소리 내서 읽으라고 하면 못 읽는 아이는 입을 안 뗀다. 먼저 눈으로 보게 하고, 소리를 들려주고, 그다음에 따라 하게 하면 입을 뗀다. 그 순서를 거꾸로 하면 그날 영어 시간은 잘하는 아이 몇 명의 시간이 된다.
이건 프로그래밍 지식이 아니다. 교실에서 영어를 가르치다 보면 갖게 되는 판단이고, 나는 그 판단으로 순서를 정했다. 개발자는 이런 걸 받아야 알고, 교사는 이미 갖고 있다.
5편에서 발주자가 하는 일은 결정이라고 했다. 이 순서가 그 결정이다.
하루 만에 앱이 나왔다
6월 8일 아침에 빈 프로젝트를 만들었다. 같은 날 저녁 일곱 시 반쯤, 학습 시스템과 혼자 읽기 화면이 붙었고 배포 준비까지 끝나 있었다. 그 사이에 나는 코드를 한 줄도 안 봤다.
물론 그날 것이 지금 것은 아니다. 하루 만에 나온 건 뼈대고, 그 뼈대를 쓸 만한 물건으로 만드는 데 두 달 반이 걸렸다. 처음부터 마지막까지 고친 기록이 일흔일곱 번 남아 있다.
이 숫자를 같이 적는 이유가 있다. 「AI로 하루 만에 앱을 만들었다」는 말은 절반만 사실이다. 하루 만에 나오는 건 진짜로 하루 만에 나온다. 그런데 그게 교실에서 굴러가려면 그 뒤가 훨씬 길다. 이 시리즈가 하려는 이야기도 앞의 하루가 아니라 뒤의 두 달 반 쪽이다.
지금은 그림책과 생활영어와 신화를 합쳐 삼백오십 권이 넘고, 삽화와 음성도 전부 만들어서 넣었다.
주소는 echotale.simssijjang-d79.workers.dev 다. 계정 없이 열린다.

잘못 시키면 잘못 나온다
여기까지만 쓰면 정직하지 않다. 나는 책을 전부 보여 달라는 쪽으로 시켰다. 그래서 첫 화면에 삼백쉰두 권이 전부 그려져 있었다.
그 결과가 어땠느냐면, 첫 화면 하나의 무게가 3.47메가바이트가 됐다. 서버가 그걸 읽다가 이따금 오십 초씩 멈췄다. 오십 초 동안 화면이 안 뜨면 아이는 그냥 나간다. 학교에서 열었을 때 제일 자주 안 열리던 게 첫 화면이었다.
이건 AI가 틀린 게 아니다. 전부 보여 달라고 했으면 전부 보여 주는 게 맞다. 내 발주문에 없던 말이 하나 있었을 뿐이다. 한 번에 몇 권까지 보여 줄 것인가. 나는 그걸 말한 적이 없고, 말하지 않은 자리는 AI가 알아서 채웠다. AI는 우리 학교 인터넷이 어떤지도, 아이가 몇 초를 기다려 주는지도 모른다. 삼백 권을 한 화면에 늘어놓는 게 이상하다는 감각도 없다.
고친 방법은 단순했다. 선반마다 열 권씩만 보여 주고, 더 보고 싶으면 선반 페이지로 들어가게 했다.
지금이라면 처음부터 이렇게 말했을 것이다. 첫 화면의 선반에는 열 권씩만 보여 주고, 나머지는 눌러서 들어가게. 문장 하나 차이다. 그런데 그 문장 하나가 있고 없고가 아이가 그 앱을 여느냐 마느냐를 갈랐다.
발주문의 빈칸은 반드시 채워진다. 내가 안 채우면 AI가 채우고, AI는 우리 교실을 본 적이 없다. 그게 이 일의 규칙이다.
너무 어려워 보이는데요
이 대목에서 이런 생각이 들 수 있다. 목적이니 동작이니 느낌이니, 결국 어려운 얘기 아니냐고.
솔직히 말하면 어려운 게 맞다. 다만 어려운 자리가 사람들이 생각하는 데가 아니다.
어려운 건 코딩이 아니라 내가 뭘 원하는지 말로 꺼내는 일이다. 머릿속에 있을 때는 분명한데 입으로 옮기면 흐릿해진다. 그건 누구나 그렇다.
그런데 교사는 그 훈련을 매일 한다.
「그냥 잘 해 봐」라고 하면 아이는 못 알아듣는다. 무엇을, 어떻게, 어디까지 하면 다 한 것인지를 말해 줘야 아이가 움직인다.
청소를 예로 들면 금방이다. 「청소해」라고 하면 스무 명이 스무 가지로 해석한다. 「내일 아침에 교실이 깨끗해 보이게, 너희 분단 사람들이, 바닥 종이 줍고 의자 올리고, 서로 미루지 말고 각자 자기 자리부터」라고 해야 같은 그림이 그려진다.
방금 그 한 문장에 넷이 다 들어 있다. 무엇을 위해서가 목적이고, 너희 분단이 사용자고, 줍고 올리는 게 동작이고, 미루지 말고 각자 자기 자리부터가 느낌이다. 교사는 이걸 하루에도 몇 번씩 한다.
상대가 컴퓨터로 바뀌었을 뿐이다. 하는 일은 같다.
AI한테 시키는 말이 어렵게 느껴진다면 그건 코딩 때문이 아니다. 원래 남한테 뭘 시키는 게 어려운 일이라서 그렇다. 그리고 당신은 이미 그걸 직업으로 하고 있다.
이 편에서 안 된 것
배포하면 끝이라고 생각했다.
학교 공용 기기에서 화면이 하얗게 뜬 적이 있다. 웨일북을 오래 켜 둔 아이들 것이었다. 새 버전을 올릴 때마다 안에 있는 파일 이름이 바뀌는데, 낡은 화면을 오래 들고 있던 기기가 없어진 파일을 계속 찾고 있었다. 그 상태에서는 오류 메시지조차 안 뜬다. 그냥 하얗다.
이건 고쳤다. 화면이 하얘지면 스스로 되살아나게 하는 장치를 붙였다. 여기서 안 된 것은 결과가 아니라 발주다.
넣으려면 그런 일이 있다는 걸 먼저 알아야 하는데 나는 몰랐다. 목적도 사용자도 동작도 느낌도 다 말했는데, 「우리 학교 기기는 낡은 화면을 오래 들고 있다」는 항목은 그 넷 어디에도 안 들어갔다.
발주 언어 넷이면 된다고 이 편에서 말해 놓고 바로 반례를 적는 셈인데, 그래도 적는 게 맞다. 넷은 시작하기에 충분한 것이지 전부는 아니다. 나머지는 겪으면서 는다.
학교 기기가 왜 그렇게 특별한지는 14편에서 따로 다루겠다.
오늘 할 일
네 줄만 써 보자.
당신이 매일 하는 일 중에 번거로운 것 하나를 고르고, 그걸 네 부분으로 나눠서 적어 보라.
무엇을 위한 것인가. 누가 쓰는가. 그 사람이 무엇을 하면 화면이 무엇을 하는가. 어떤 느낌이어야 하는가.
네 줄이 채워지면 그게 발주문이다. 어디에 넣지 않아도 상관없다. 이걸 적을 수 있으면 오늘 시작할 수 있다. 이 넷으로 다 되는 건 아니지만, 시작은 여기서 한다.
다음 편에서는 그렇게 만든 물건이 처음으로 남에게 쓰인 날 이야기를 하겠다. 만들어 놓는 것과 내놓는 것 사이에는 생각보다 넓은 강이 있다.
댓글
이름은 안 적어도 됩니다. 비우면 익명으로 올라가요.
불러오는 중…