이 글에는 실증본이 있습니다. 같은 주제를 돌아가는 코드와 실제로 그려진 화면으로 다시 만들었습니다 — 통역 없이 앉는다 — 판단 한 조각이 규칙이 되는 자리. 이 글은 쓰인 그대로 둡니다.
"당신도 도구를 만들 수 있다." 이 매거진이 거듭 하는 말이다. 그런데 이 말에는 사람을 주춤하게 만드는 구석이 있다. 맨바닥에서 시작하라는 것처럼 들린다는 것이다. 빈 화면 앞에 앉아, 아무것도 없는 데서 무언가를 짓는 그림. 텅 빈 캔버스 앞의 막막함은 누구에게나 무겁다. "나는 개발을 모르는데"라는 한마디로 거기서 돌아서는 사람이 대부분이다. 그리고 그 돌아섬은 합리적으로 느껴진다 — 도구를 만드는 일은 전문 기술이니까. 그래서 가장 만들 자격이 있는 사람일수록, 가장 먼저 돌아선다.
이번 Vol는 그 그림을 정면으로 바로잡는다. 진실은 정반대다 — 정작 도구를 만들면 좋을 사람들은, 가장 어려운 부분을 이미 갖고 있다. 맨바닥이 아니다. 8할이 이미 지어진 자리에서, 마지막 한 겹을 얹는 일이다. 이 글은 그 8할이 무엇이고, 빠진 2할이 왜 그토록 거대한 벽이었으며, 그 벽이 어떻게 낮아졌는지를 짚는다.

도구의 어려움은 어디에 있나
먼저 물어야 한다. 도구를 만드는 일에서 진짜 어려운 게 무엇인가. 흔히 사람들은 "코딩"이라고 답한다. 화면을 그리고 동작을 짜는 기술 말이다. 그런데 자세히 보면, 도구의 진짜 어려움은 거기 있지 않다. 무엇을 담아야 하는지 아는 데 있다.
생각해 보자. 세상의 거의 모든 디지털 도구는, 기술적으로는 이미 만들어질 수 있다. 화면을 그리는 기술, 데이터를 다루는 기술은 충분히 성숙했다. 그런데도 무수한 도구가 만들어지지 않는다. 왜인가. 그 도구에 무엇이 들어가야 하는지를 아는 사람과, 그것을 만들 수 있는 사람이 다른 사람이기 때문이다. 그리고 무엇이 들어가야 하는지를 아는 일이 — 만드는 기술보다 훨씬 어렵다.
예를 들어 보자. 변호사의 상담 흐름을 화면으로 만든다고 하자. 어려운 건 버튼을 그리는 일이 아니다. 어떤 순서로 무엇을 물어야 하는지, 어떤 답이 나오면 흐름이 갈라지는지, 무엇을 빠뜨리면 의뢰인에게 불리해지는지, 어떤 질문은 먼저 물으면 안 되는지를 아는 일이다. "임대차냐 매매냐"를 먼저 가른 뒤에야 다음 일곱 갈래가 의미를 갖고, "계약서 원본을 가져오셨나요"는 세 번째가 아니라 첫 번째로 물어야 하며, 소멸시효 한 줄을 빠뜨리면 의뢰인이 권리를 통째로 잃는다 — 이런 것들은 어느 코딩 책에도 없다. 변호사의 머릿속에, 수천 번의 상담 안에만 있다. 화면을 그리는 기술은 누구나 배울 수 있지만, 무엇을 그릴지에 대한 판단은 그 도메인을 산 사람만 가진다.
이게 핵심이다. 도구의 8할은 판단이다. 무엇이 중요하고 무엇이 부수적인지, 어떤 데이터를 어떤 모양으로 담아야 쓸모가 있는지, 어떤 예외를 다뤄야 하는지 — 그 판단은 도메인 전문가가 이미 가지고 있다. 어렵게 새로 익혀야 하는 게 아니라, 오래 해 와서 이미 손에 든 것이다. 그리고 그 판단은 남에게 옮기기가 지독히 어렵다. 설명하려 들면, "그건 경우에 따라 다른데"의 무수한 갈래 앞에서 말이 막힌다. 그 "경우에 따라 다른"의 지도 전체가 — 바로 도구다.
달리 말하면, 도구를 만드는 일에서 코드는 마지막에 얹히는 얇은 층이고, 그 아래에 깔린 두꺼운 층은 전부 도메인의 지식이다. 우리는 오랫동안 이 비율을 거꾸로 알고 있었다. 가장 눈에 띄는 것 — 화면, 코드, 버튼 — 이 도구의 본체라고 여겼다. 그래서 "도구를 만든다"가 곧 "코딩을 한다"로 번역됐다. 그러나 잘 만들어진 도구를 뜯어 보면, 코드는 거기 담긴 판단을 실어 나르는 그릇일 뿐이다. 그릇은 어디서나 살 수 있다. 그 안에 담길 것이 — 만든 사람의 30년이 — 진짜 희소한 것이다.
도구의 8할은 코드가 아니라 판단이다. 그리고 그 판단은, 정작 만들면 좋을 사람의 손에 이미 들려 있다.
어려운 것은 이미 끝나 있다 — 여러 자리에서
이 매거진의 지난 글들을 다시 보면, 다 같은 이야기였다.
LCD 패널 회사. 그들은 30년간 좋은 패널을 만들어 왔다. 밝고, 색이 정확하고, 오래가는 패널. 백라이트의 균일도를 잡고, 색온도를 6500K에 맞추고, 수만 시간의 수명을 보장하는 — 디스플레이 구동의 깊은 노하우. 그게 어려운 기반이다. 그들이 HMI를 못 만든 건 그 기반이 없어서가 아니라, 화면 위에 무엇을 띄울지를 다루는 한 축이 빠져서였다. 패널은 세계 최고로 만들 줄 알지만, 그 패널 위에 띄울 제어 화면은 늘 남의 일이었다. 8할(패널)을 가지고도, 2할(화면) 앞에서 멈춰 외주로 넘겼다. 그리고 외주가 그려 온 화면은, 정작 패널의 특성을 가장 잘 아는 사람의 손을 거치지 않은 것이었다.
농부. 30년 치 재배 지식 — 어느 작물을 언제 옮기고, 어떤 봄 아침의 공기가 무엇을 뜻하고, 어떤 징후가 흉작의 전조인지. 그게 어려운 기반이다. 빠진 건 그 지식을 담을 화면 한 축뿐이었다. 30년의 기록은 빛바랜 공책과 머릿속에 있었고, 그것을 화면으로 옮길 한 겹이 없어 도구가 되지 못했다.
회계사는 정산의 규칙을 안다. 어떤 항목이 어디로 가고, 무엇이 흔한 실수이며, 어떤 숫자가 안 맞으면 어디를 의심해야 하는지. 공장 반장은 설비의 버릇을 안다. 이 기계가 베어링 쪽에서 어떤 소리를 내면 사흘 안에 멈출 징조인지, 장마철에 어떤 고장이 잦은지, 어느 밸브는 매뉴얼 수치보다 한 칸 더 잠가야 새지 않는지. 교사는 채점의 기준을 안다. 무엇이 만점이고 무엇이 감점이며, 학생들이 3번 문제의 어느 함정에서 매년 똑같이 미끄러지는지.
이들이 가진 것 — 도메인을 깊이 아는 판단 — 은 어떤 외부 개발자도 대신 가질 수 없는 것이다. 설명을 거쳐 옮기려 해도, 그 미묘함은 옮기는 동안 닳는다. "이런 경우엔 좀 다른데요"라는 뉘앙스가, 요구사항 문서를 거치고 개발자의 해석을 거치며 사라진다. 반장이 "이 소리"라고 말한 것이 문서에선 "이상 소음 발생 시"가 되고, 그 사이에서 30년의 귀가 통째로 증발한다. 그래서 가장 잘 아는 사람이 직접 만드는 것이, 8할을 잃지 않는 유일한 길이다. 그리고 그 8할은 — 새로 배울 것도 없이 — 이미 있다.
빠진 2할은 왜 거대했나
그렇다면 빠진 2할 — 화면이라는 한 축 — 은 무엇이었나. 그리고 왜 그게 8할을 가진 사람을 멈춰 세우는 거대한 벽이었나.
예전엔 화면 하나를 만들려면 그 뒤에 긴 줄이 달려 있었다. 개발 환경을 깔고, 프로그래밍 언어 하나를 익히고, 그 언어로 화면을 짜고, 빌드 도구를 다루고, 그것을 기기에 설치하고, 바꿀 때마다 그 과정을 처음부터 다시 돌고. (지난 Vol에서 우리는 이 줄을 "얼음을 녹였다 다시 얼리는 사슬"이라 불렀다.) 이 줄의 어느 한 칸도, 평생 변호를 하거나 밭을 갈아 온 사람에게는 낯선 세계였다. 첫 칸 — 개발 환경을 까는 일 — 에서부터 대부분이 막혔다. 화면에 버튼 하나를 띄우기까지, 도메인과 아무 상관 없는 관문을 열 개쯤 통과해야 했다.
그래서 도메인 전문가에게 이 2할은 2할이 아니었다. 양으로는 작아 보여도, 높이로는 사실상 통과 불가능한 관문이었다. 8할을 손에 쥔 사람이, 마지막 2할의 벽 앞에서 멈췄다. "이건 내가 제일 잘 아는데, 만들 수가 없네"가 그 멈춤의 한 문장이었다.
이 그림을 한 번 떠올려 보라. 두꺼운 기반의 탑이 8할 높이까지 이미 쌓여 있다. 그 위에 화면이라는 마지막 한 겹만 얹으면 도구가 된다. 그런데 그 마지막 한 겹 앞에, 양은 얇지만 수직으로 깎아지른 벽이 서 있었다. 양으로 따지면 2할인데, 그 2할이 — 오를 길이 없어서 — 8할 전체를 무용하게 만들었다. 멈춤은 8할이 부족해서가 아니었다. 마지막 한 겹에 닿을 사다리가 없어서였다.
그래서 오랫동안 순서가 이랬다. 도메인을 아는 사람은 뒤에서 설명하고, 그 2할을 넘을 수 있는 개발자가 앞에서 만든다. 8할과 2할이 다른 사람의 손에 나뉘었고, 그 사이에서 미묘함이 새어 나갔다. 회의가 잡히고, 요구사항이 문서가 되고, 견적이 나오고, 일정이 밀리고, 첫 시안이 나오면 "그게 아니라 이런 경우엔…"으로 다시 돌아가는 — 그 왕복 자체가 8할을 조금씩 깎았다. 그리고 많은 작은 도구는 — 개발자를 부르기엔 너무 사소해서 — 아예 만들어지지 않았다. "이 정도 일로 개발자를 귀찮게 해?"라는 문턱 앞에서, 무수한 필요가 그냥 참아졌다. 엑셀 한 장으로 버티고, 종이에 적어 돌려막고, "원래 이렇게 하는 거야"로 굳어진 불편들. 그 불편의 총합은, 누구도 세어 본 적이 없을 만큼 컸다.
2할의 높이가 낮아지면
서버 정의 방식이 바꾼 게 정확히 그 2할의 높이다. 화면을 코드로 짜 기기에 굽는 대신, 화면을 정의로 둔다. 배워야 할 건 거대한 새 체계가 아니라 "정의를 적는 법" 한 가지다 — 무엇을 어디에 보여줄지, 어떤 버튼이 무엇을 하는지를 약속된 모양으로 적는 것. 빌드도, 굽는 사이클도, 배포 사슬도 그 자리에 없다. 첫 화면이 열 줄로 시작될 수 있다(이 매거진의 코딩 글이 그 열 줄을 연다).
그러자 그 축은 얹는 것이 된다 — 처음부터 짓는 게 아니라. 이미 가진 두꺼운 기반 위에, 그것을 쓰는 화면 한 겹을 올린다. "만든다"는 말의 무게가 짓는다에서 완성한다로 바뀐다. 8할을 가진 사람이, 남은 2할을 직접 얹을 수 있게 된다. 도메인 전문가가 뒤에서 설명하는 자리에서, 앞에서 만드는 자리로 옮겨 온다. 설명을 거치며 닳던 미묘함이, 닳지 않고 곧장 화면이 된다. 반장이 "이 소리"라고 아는 그 직관이, 통역 없이 바로 경보 규칙이 된다.
같은 일을, 누군가는 사흘에 걸쳐 남에게 설명하고, 누군가는 한 시간 만에 직접 얹는다. 차이는 재능이 아니라, 그 사이에 사다리가 놓였느냐다.
물론 2할이 0이 된 건 아니다. 정의를 적는 법을 익히는 데도 손이 든다. 처음 몇 시간은 어색하고, 약속된 모양에 익숙해지기까지 시행착오가 있다. 다만 그것은 이제 넘을 수 있는 문턱이다 — 통과 불가능한 관문이 아니라. 한나절이면 첫 화면이 뜨고, 며칠이면 자기 일에 쓸 만한 것이 된다. 그 차이가 모든 것을 바꾼다. 통과 불가능한 1m 벽과, 한 발 올라서면 되는 한 뼘 턱은 — 둘 다 "장애물"이지만, 한쪽은 길을 막고 한쪽은 그냥 넘어가진다.
그래서 누가 빌더인가 — 무른 것의 복권
이 관점이 뒤집는 것은 "누가 만들 수 있는가"이다. 개발을 배운 사람이 아니라, 자기 도메인의 기반을 가진 사람이다. 그리고 여기에 작지 않은 반전이 있다 — 기반이 두꺼울수록, 경력이 길수록, 도메인이 깊을수록 오히려 강한 빌더가 된다는 것이다. 빠진 한 축은 누구에게나 같은 두께지만, 가진 기반은 그 사람만의 것이기 때문이다. 같은 정의 적는 법을 배워도, 30년 변호사가 만든 상담 도구와 어제 막 변호를 시작한 사람이 만든 것은 8할이 다르다. 사다리의 길이는 누구에게나 같고, 그 사다리가 닿는 탑의 높이는 사람마다 다르다.
이건 오랫동안 "무른 것"으로 여겨지던 것에 대한 복권이기도 하다. 기술의 시대에 도메인 경험은 늘 부차적인 것으로, "그건 기술이 아니잖아"라 치부되며, 개발자에게 설명해 넘겨야 할 입력값으로 취급됐다. 변호사의 직관, 농부의 감, 반장의 눈썰미 — 이런 것들은 "데이터화하기 어려운, 소프트한 것"으로 분류돼 뒷자리에 앉았다. 회의실에서 가장 오래 일한 사람이, 정작 만드는 자리에서는 가장 멀리 앉았다. 이제 그 두꺼운 경험이 앞에 선다. 가장 오래 한 사람이 가장 잘 만든다. 그동안 "별것 아닌 줄 알았던" 자기 분야의 깊이가, 이 구조에선 도구의 핵심 자산이 된다.
가장 오래 그 일을 한 사람이, 가장 잘 만든다. 깊이는 더 이상 설명해 넘기는 입력값이 아니라, 그대로 도구가 된다.
정직하게
물론 모든 2할이 똑같이 낮아진 건 아니다. 화면으로 표현하기 어려운 일 — 정교한 실시간 처리, 복잡한 알고리즘, 깊은 시스템 연동, 큰 규모의 동시 사용자 처리 — 은 여전히 개발자의 손을 빌려야 한다. 밀리초를 다투는 제어, 수십만 명을 동시에 받는 백엔드, 한 치도 틀리면 안 되는 금융의 밑바닥. "정의를 적는 법" 한 가지로 모든 게 되는 건 아니다. 큰 제품, 정교한 서비스는 여전히 전문 개발의 영역이고, 앞으로도 그럴 것이다. 이 글은 그 자리를 부정하지 않는다 — 다만 그 자리가 전부인 것처럼 굴던 시절이 끝났다고 말할 뿐이다.
그리고 8할을 가졌다고 해서 화면을 잘 만든다는 보장도 없다. 무엇을 담을지 아는 것과, 그것을 보기 좋고 쓰기 좋게 배치하는 것은 또 다른 결의 일이다. 도메인 전문가가 만든 첫 도구는 투박할 수 있다. 버튼이 어긋나 있고, 색이 촌스럽고, 흐름이 한두 군데 엉킬 수 있다. 다만 그 투박한 도구가 — 판단의 8할이 살아 있기에 — 매끈하지만 핵심을 놓친 외주 도구보다 쓸모 있는 경우가 많다. 투박함은 다듬으면 되지만, 빠진 8할은 다듬어서 채워지지 않는다.
이 시대가 여는 것은 그 사이에 있던 무수한 작은 도구들의 자리다. 큰 제품과 외주 사이에서, 그동안 8할을 가진 사람들이 2할의 벽 앞에서 포기해 온 것들. 자기 일에 딱 맞는, 자기만 쓰는, 자주 다듬는 도구. 남에게 팔 만큼 크지도 않고, 개발자를 부를 만큼 거창하지도 않아서, 그냥 없는 채로 살아온 것들. 그리고 그런 작은 것들의 합이, 결코 작지 않다. 세상의 일은 대부분 그 "작은 것들" 위에서 돌아간다.
다음
그래서 이 Vol에서 우리는 기반은 두꺼운데 화면 한 축이 없던 자리들을 찾아간다. 전용 소프트웨어 없이 다뤄지길 기다리던 실험대의 계측기. 채점의 기준은 머릿속에 다 있는데 그걸 담을 화면이 없던 교사. 이들이 빠진 한 축을 직접 얹는 과정을 본다. 사다리가 놓인 다음, 8할의 탑 위에서 무슨 일이 일어나는지를.
당신에게도 그런 기반이 있을 것이다. 오래 해 와서 눈 감고도 아는 무언가. "이건 내가 제일 잘 아는데" 싶은 영역. 그동안 "그건 그냥 내가 하는 일이지, 무슨 기술도 아니고"라며 스스로 뒷자리에 앉혀 둔 그것. 그게 8할이다. 맨바닥이 아니다. 빠진 건 한 축뿐이고, 그 축은 이제 얹는 것이다.
makemind.dev 「탐구」 — 두꺼운 기반에 화면 한 축이 얹히는 자리들을, 계측기와 교실에서 봅니다.