"이렇게 작은 도구가 이만큼 가르칠 이유는 없어. 그런데 가르친다는 게 직접 만들어보는 이유고."
길 하나에 교훈 여럿
Flint 가 하는 일은 아주 작아. 키 한 번에 긁어놓은 글을 바꾸는 것. 그런데 그걸 처음부터 끝까지 만들다 보니 층마다 글 얘기를 한참 넘어서는 결정을 내려야 했어. 길 하나를 통째로 쥐면 조용히 따라오는 보상이 그거야. 작은 앱이 선생이 돼. 대부분의 소프트웨어가 프레임워크나 서비스한테 대신 답하게 두는 질문들을, 내가 구체적으로 답해야 했으니까. 여기 그 침이 남기고 간 교훈들이 있어. 하나같이 글 변환기랑은 하나도 안 닮은 문제로 옮겨 붙는 것들이야.
경계에 대한 교훈
제일 깊은 거. 선을 좁게 긋고 빌릴 수 있는 건 빌려라. Flint 는 손에 잡히고 이 컴퓨터에 있고 안전이 걸린 일만 갖고 생각은 안 가져. 그 선택 하나 덕분에 작고 믿을 만하고 바꾸기 쉬운 채로 남았고. 옮겨 쓸 수 있는 형태로 말하면 '능력을 다시 기르는 대신 깨끗한 이음새 너머로 빌려라' 고, 거기 딸린 규율이 하나 더 있지. 두 번째 머리한테 계속 아니라고 말하기. 얇은 앱은 그럴듯한 기능 하나씩에 밀려서 무거워지니까.
확인에 대한 교훈
제일 위험했던 층은 두 가지를 남겼어. 하나, 뜻하는 때랑 벌어지는 때 사이가 벌어지는 일은 뜻을 붙잡아뒀다가 벌어질 때 다시 확인해야 해. 나중에 눈앞에 있는 걸로 움직이면 안 되고. 둘, 들여다볼 수 없으면 다시 해보게 하는 것도 확인이야. 못 읽는 불투명한 자리한테도 한 번 더 복사해서 맞춰보라고는 할 수 있으니까. 그리고 확인이 안 되면 되돌릴 수 없는 쪽보다 되돌릴 수 있는 쪽을 고르고, 무슨 일이 있었는지 알려주고.
퀘스트의 층 옮겨 쓸 수 있는 교훈
--------------------------- ------------------------------------
not-my-brain 좁은 이음새 너머로 빌리고, 얇게 남아라
the-global-chord 지루하고 딱 맞는 API 를 쓰고 가둬둬라
reading-the-selection 어디서나 통하는 방법의 끝을 찾아둬라
prove-before-you-paste 뜻을 붙잡고 벌어질 때 확인하라
never-read-the-secret 넓은 허락은 좁은 행동을 요구한다
신뢰에 대한 교훈
그리고 나머지를 다 이기는 하나. 힘은 절제로 정해져. Flint 는 모든 앱을 읽고 조종할 수 있는 권한을 쥐고 있고, 이 도구의 값어치 전부는 쓸 일도 없는 그 힘으로 뭘 안 하느냐에 있어. 옮겨 쓸 수 있는 규칙은, 넓은 허락일수록 좁게 굴 의무가 커진다는 거야. 그리고 그 신뢰는 권한 창을 한 번 통과했다고 생기는 게 아니라, 좁고 보이게 이 컴퓨터 안에서 움직이는 시간이 쌓여서 계속 벌리는 거고.