작업자와 발주자
연재 「발주자」 — 코딩 못 하는 교사가 교실 도구를 만들며 배운, 시키는 사람의 조건. 24편 중 5편.

코팅을 그만두게 해 준 앱
2편에서 십 년 동안 돈을 코팅한 이야기를 했다. 그 십 년이 통째로 손이었던 건 아니다. 중간에 앱을 만난 적이 있다.
퍼플이라는 앱이었다. 어떤 선생님이 만들어서 무료로 풀었고, 학급경제를 하는 교사들 사이에서 꽤 쓰였다. 나도 썼다.
써 보고 제일 먼저 든 생각은 고맙다는 것이었다. 통장을 화면이 대신 적어 주니 밤에 종이를 자를 일이 없어졌다. 인플레이션이 와도 지폐를 더 만들지 않아도 됐다. 숫자만 늘리면 되니까. 십 년 동안 나를 제일 괴롭히던 물리적인 일이 한 번에 사라진 것이다.
그러니까 이건 좋은 앱 이야기다. 이 편 어디에서도 그 판단은 바뀌지 않는다.
그런데 여섯 군데가 걸렸다
쓰다 보니 아쉬운 자리가 생겼다. 세어 보면 여섯 개였다.
주식이 실제 주식과 연동되지 않았다. 우리 반 주가는 여전히 내가 정해야 했다. 화면이 대신 적어 줄 뿐, 오늘 값을 얼마로 할지 정하는 사람은 그대로 나였다.
상점 재고가 자동으로 채워지지 않았다. 물건이 팔리면 줄기는 줄었는데, 다 떨어진 걸 다시 채워 넣는 사람은 나였다.
물가가 자동으로 오르지 않았다. 돈이 풀리면 값이 올라야 하는데, 그 「올라야 한다」를 판단하고 숫자를 바꾸는 사람은 나였다. 2편에서 말한 인플레이션이 여기서 다시 나온다. 코팅은 안 해도 되는데, 값을 올리는 일은 여전히 내 손에 있었다.
주급이 자동으로 나가지 않았다. 매주 내가 눌러야 아이들 주급이 들어갔다.
세금이 자동으로 걷히지 않았다. 주급이 나갈 때, 내가 아이에게 돈을 줄 때, 아이가 상점에서 물건을 살 때. 돈이 움직이는 자리마다 세금이 따라붙어야 하는데, 그 자리마다 계산해서 떼는 건 여전히 사람이 하는 일이었다. 2편에서 매주 세금 계산하는 게 제일 힘들었다고 썼다. 앱을 써도 그 계산은 없어지지 않았다. 종이가 화면으로 바뀌었을 뿐이다.
경제 이벤트가 없었다. 이건 설명이 좀 필요하다. 실제 경제에는 사건이 있다. 어디가 흉년이 들고, 기름값이 오르고, 무엇이 무너진다. 값이 움직이려면 움직일 이유가 있어야 하고, 그 이유를 만드는 게 사건이다. 사건이 없으면 남는 건 선생님의 판단뿐이다.
그래서 나는 앱을 하나 더 썼다. 오늘의 사건을 무작위로 뽑아 주는 다른 앱이었다. 거기서 오늘 무슨 일이 일어났는지를 뽑고, 뽑힌 결과를 퍼플에 하나하나 손으로 옮겨 적었다.
앱이 두 개인데 그 사이를 사람이 이었다. 그 사람이 나였다.
여섯을 따로 보면 서로 다른 불만처럼 보인다. 겹쳐 놓으면 문장 하나가 남는다. 교사가 끼어드는 자리를 최대한 줄이고 싶었다는 것.
그건 기능이 아니라 결정이었다
이게 왜 중요한지 설명하려면 잠깐 뒤로 가야 한다.
주가는 가위바위보로 정했으니 거기엔 내가 없었다. 2편에서 쓴 그대로다. 아이들은 그날 값이 어떻게 나왔는지를 자기 눈으로 봤다.
물가는 달랐다. 돈이 너무 많이 풀렸다 싶으면 값을 올리는 사람은 나였다. 상점 물건값이 어느 날 올라 있으면 아이들은 그게 어디서 왔는지 안다. 항의까지 가지는 않았다. 다만 표정이 달라지고, 저희끼리 한마디씩 하고, 나를 한 번 본다.
그 눈길이 오래 걸렸다. 값이 움직인 이유가 세상이 아니라 앞에 서 있는 사람한테 있으면, 그건 경제가 아니라 선생님이다.
내가 원한 건 아이들이 나를 쳐다보지 않는 경제였다. 값이 저절로 움직이고, 나는 그 움직임을 아이들과 나란히 구경하는 쪽이었다.
「자동으로 되게 해 주세요」는 기술적인 요청처럼 들린다. 그 밑에 깔린 것은 기술이 아니다. 교실에서 무엇이 일어나야 하는가에 대한 판단이다. 나는 십 년 동안 그 장면을 봤기 때문에 그 판단을 갖고 있었다.
여기서부터가 이 편의 핵심이다. 나는 그 판단을 갖고 있었는데, 갖고 있는 것 말고는 아무것도 하지 않았다.

만드는 사람과 정하는 사람
퍼플을 만든 선생님을 생각해 보자.
그 사람은 두 가지를 했다. 무엇을 만들지 정했고, 그걸 실제로 만들었다. 정하는 일과 만드는 일이 한 사람 안에 다 들어 있었다.
나는 그중 하나만 갖고 있었다. 무엇이 필요한지는 나도 알았다. 아주 구체적으로 알았다. 근거를 대라면 십 년 치를 밤새 댈 수 있었다. 만들 줄을 몰랐을 뿐이다.
그럼 그때 내가 한 일은 무엇이었나. 아쉬운 채로 그냥 썼다.
3편에서 구경꾼을 이렇게 정의했다. 한 번도 무언가에게 「이걸 이렇게 해 줘」라고 말해 보지 않은 사람. 그 정의를 나한테 대면 답이 나온다. 퍼플을 쓰던 한두 해 동안에도 나는 구경꾼이었다. 불만을 아주 정확하게 갖고 있는 구경꾼.
정하는 일과 만드는 일은 다르다. 이 시리즈에서 앞의 것을 하는 사람을 발주자, 뒤의 것을 하는 사람을 작업자라고 부른다.
퍼플을 만든 선생님은 그때 둘 다였다. 나는 발주자 쪽 재료만 갖고 있었다. 3편에서 무엇이 필요한지 알고, 말로 설명할 수 있고, 결과를 보고 판단할 수 있으면 그게 발주자라고 했다. 셋 다 나는 갖고 있었다. 없었던 게 하나 있었을 뿐인데, 그게 결정적이다.
말을 안 했다.
정하는 사람이 정한 것을 자기 안에만 두면 아무 일도 일어나지 않는다. 발주자라는 말은 시키는 데까지 가야 붙는다. 나는 아쉬워하는 데서 멈췄다.
기다리면 오기는 온다
여기서 반론이 하나 나올 만하다. 굳이 만들 것 없이 기다리면 되지 않나. 아쉬워하고 있으면 언젠가 누군가 만들어 주지 않나.
정직하게 답하면 그렇다. 실제로 왔다.
퍼플은 지금 수페라는 이름으로 바뀌었다. 이름을 바꾸면서 퍼플 쪽은 문을 닫았다. 지금 수페에는 실제 주식 연동이 있다. 내가 첫 번째로 아쉬워하던 바로 그것이다.
이걸 알고 나는 좀 웃었다. 사람 생각은 다 비슷하구나 싶었다. 나만 그게 아쉬웠던 게 아니었고, 만든 사람도 결국 같은 자리에 도착했다.
그러니 기다림이 헛되다고는 못 하겠다. 다만 두 가지가 남는다. 하나는 시간이다. 그 사이에도 내 교실은 매주 돌아갔고, 매주 내가 주급 버튼을 눌렀다. 한두 해어치의 매주다.
다른 하나가 더 크다. 기다림은 내가 정한 것만큼 정확하게 오지 않는다. 남이 만든 것은 남이 정한 것이다. 그 사람의 교실에 맞춰 정해진 것이고, 대체로 그건 내 교실에도 잘 맞는다. 안 맞는 자리가 어딘가에 반드시 남을 뿐이다. 남는 게 정상이다. 우리 반이 그 사람 반은 아니니까.
기다리는 사람은 그 자리를 참고 쓴다. 시키는 사람은 그 자리를 자기 쪽으로 옮긴다. 차이는 그것뿐이고, 그 차이가 이 시리즈의 전부다.

실패도 재시작도 없는 퍼즐
정하는 일이 실제로 어떻게 생겼는지, 한참 뒤에 만든 것으로 보여 주겠다.
종이하늘이라는 퍼즐 게임이 있다. 종이비행기를 날려서 보드를 비우는 원터치 게임이다. 주소는 papersky.pages.dev 이고, 4편에서 말한 대로 나오는 도구는 주소를 같이 적는다. 만들 때 내가 정한 게 하나 있다.
실패가 없어야 한다.
풀 수 없는 판이 나오면 안 되고, 처음부터 다시 하라는 화면도 안 나와야 한다.
게임을 만드는 사람이 보면 이상한 요구다. 퍼즐에서 어려움은 재미의 재료다. 못 푸는 판이 있어야 푼 판에 값이 생긴다. 실패를 빼면 재미도 같이 빠질 위험이 있다.
내 기준은 다른 데 있었다. 잘 못하는 아이도 끝까지 갔으면 했다.
이건 관찰이 아니라 결정이다. 숫자로 보여 줄 수 있는 게 아니고, 4편에서 말한 「확인되는 것과 안 되는 것」 중에 안 되는 쪽이다. 다만 내가 무엇을 기준으로 삼았는지는 분명하다. 잘하는 아이가 더 즐거운 게임과, 못하는 아이가 안 그만두는 게임 중에 뒤쪽을 골랐다.
그래서 실패를 뺐다.
그다음이 만드는 일이다. 무한히 찍어 내도 전부 풀 수 있는 판은 어떻게 만드는가. 답은 판을 거꾸로 만드는 것이었다. 다 비워진 보드에서 시작해 비행기를 하나씩 도로 놓아 가며 판을 짓는다. 그렇게 만든 판은 놓은 순서의 반대로 하나씩 걷어 내면 반드시 비워진다. 만드는 과정 자체가 푸는 방법 하나를 같이 만들어 두는 셈이라, 무한히 찍어 내도 못 푸는 판이 나올 수 없다.
이 방법은 내가 생각해 낸 게 아니다. 지금은 저 문단을 설명할 수 있지만, 스스로 떠올리지는 못했다.
내가 한 건 앞쪽이다. 실패를 뺀다고 정한 것. 그 결정은 프로그래밍 지식에서 나오지 않았다. 교실에서 나왔다.
여기가 작업자와 발주자가 갈라지는 자리다. 「거꾸로 만든다」는 작업이고, 「이 게임에는 실패가 없다」는 결정이다.
예전에는 이 둘이 한 몸이어야 했다. 작업할 줄 아는 쪽이 사람이었으니까. 사람을 구하려면 돈이 들거나, 부탁할 사이여야 하거나, 아니면 내가 그 사람이 되는 수밖에 없었다. 지금은 채팅창을 열고 말하면 된다. 1편에서 구구단 페이지가 그렇게 나왔다. 구하기 어려웠던 쪽이 갑자기 흔해졌고, 그래서 남은 게 정하는 쪽이다.
그래서 발주자는 무엇을 하는가
3편에서 발주자를 「시킨 사람」이라고만 해 뒀다. 이제 조금 더 정확하게 말할 수 있다.
발주자가 하는 일은 결정이다.
무엇을 만들 것인가. 무엇을 안 만들 것인가. 무엇이 되면 이게 잘된 것인가.
세 번째가 특히 그렇다. 종이하늘에서 「잘된 것」의 기준은 한 문장이었다. 아무 판이나 골라도 풀린다. 이 기준이 있으니 코드를 못 읽는 나도 할 일이 생긴다. 판을 계속 열어서 풀어 보는 것이다. 하나라도 안 풀리면 그건 안 된 것이니까.
물론 몇 판 풀어 봤다고 전부 풀린다는 증명이 되지는 않는다. 내가 하는 건 표본 검사다. 모든 판이 풀린다는 보장은 만드는 규칙 쪽에서 나오고, 그건 내가 확인할 수 있는 영역이 아니다. 그래도 표본 검사에는 값이 있다. 틀렸을 때 그 자리에서 걸리니까. 발주자가 검수자를 겸할 수 있는 근거는 증명이 아니라 그 기준을 정한 사람이 나라는 것이다.
셋 다 코드를 몰라도 답할 수 있다. 오히려 코드만 아는 사람은 답하기 어려운 것들이다. 「실패가 없어야 한다」는 문장은 게임 이론이 아니라 우리 반 아이 얼굴에서 나왔고, 「교사가 끼어드는 자리를 줄여야 한다」는 문장은 데이터베이스 설계가 아니라 주가 오른 날 나를 쳐다보던 스물몇 개의 눈에서 나왔다.
만드는 능력은 이제 빌릴 수 있다. 정하는 능력은 못 빌린다. 그건 겪은 사람한테만 있다.
이 편에서 안 된 것
한 줄 정직하게 적는다. 나는 퍼플의 그 여섯 가지를 몇 년 동안 아쉬워하기만 했다. 만든 선생님께 말해 본 적도 없다. 시키는 상대가 사람일 때는 시키는 것 자체가 부담스러웠고, 부담스럽다는 이유로 나는 아무것도 안 했다.
지금 생각하면 그때 잃은 건 앱이 아니라 몇 년이다.
오늘 할 일
지금 쓰고 있는 도구를 하나 떠올려 보자. 업무 프로그램이든 앱이든 상관없다. 거기서 아쉬운 자리를 하나만 적어 보라.
적었으면 그 옆에 이렇게 물어보라.
이건 기술이 안 돼서 없는 자리인가, 아니면 만든 사람이 나와 다르게 정해서 없는 자리인가.
대부분은 뒤쪽이다. 그리고 뒤쪽인 자리는 당신이 정하기에 따라 달라진다.
다음 편에서는 그 「정하는 눈」이 어디까지 보는지를 보여 주겠다. 코드를 한 줄도 못 읽는 사람이 질문 하나로 게임의 설계 구멍을 찾아낸 날의 이야기다.
댓글
이름은 안 적어도 됩니다. 비우면 익명으로 올라가요.
불러오는 중…