"질문을 담아 주는 앱은 빌려 쓸 수 있어. 근데 하나도 안 잃고, 답을 안 지어내고, 슬그머니 다른 누군가가 되지 않는다는 보장은 못 빌려."
결국 뭘 만든 거냐면
한 발 물러서서 그 약속 넷이 합쳐지면 뭐가 되는지 봐. 캡처 먼저는 커밋하는 순간 내 말이 안전하다는 뜻이야. 정직한 오프라인은 익숙한 얼굴을 뒤집어쓴 지어낸 답을 절대 안 받는다는 뜻이고. 멱등 재시도는 불안한 링크가 기록을 망치지 못한다는 뜻. 투영이지 뇌가 아님은 주머니 속 그 물건이 자기가 비추는 것한테 끝까지 충실하다는 뜻이고. 이 넷은 남의 로드맵에 요청해서 받아낼 수 있는 기능이 아냐. 도구의 성격이고, 성격은 만드는 사람이 정하거든.
빌린 도구는 왜 이걸 약속 못 하나
내가 안 만든 앱은 자기 나름의 절충을 해. 그게 정작 중요한 순간에 내가 했을 선택인 경우는 드물고. 링크가 끊기면 질문을 붙잡아 둘까 버릴까? 서버에 못 닿으면 정직하게 기다릴까 도움 되게 추측할까? 재시도가 애매하면 기록을 지킬까 그냥 다시 보낼까? 그 하나하나가 누군가 자기 지표에 맞춰 최적화하면서 너 대신 내린 결정이야. 그리고 넌 안테나 한 칸짜리 기차 안에서야 그걸 알게 되고. 클라이언트를 갖는다는 건 그 답들을 갖는다는 뜻이야. 직접 만드는 게 늘 낫다는 게 아니라, 하필 이 보장들이 남한테 맡겨 놓고 기댈 수 있는 종류가 아니라서.
sibling 들이 하는 얘기랑 똑같아
이 마무리는 다른 엔진 퀘스트들이랑 일부러 같은 소리를 내. 생성기를 빌려 쓰는 대신 이미지 엔진을 만든 것. DAW 를 비틀어 쓰는 대신 음악 엔진을 만든 것. 신호가 끊겼을 때 내가 뭘 원할지에 대한 남의 앱 추측을 받아들이는 대신 클라이언트를 만든 것. 어느 쪽이든 도구를 갖는 게 곧 솜씨를 갖는 거야. 그중에서도 Pippa Go 쪽이 제일 사적이고. 여기서 실어 나르는 게 제일 사적인 거니까. 물어볼 만큼 마음이 갔던 질문 하나.
그리고 이 집안 퀘스트가 다 그렇듯, 이 페이지 아래엔 저장소 링크가 없어. 가져갈 수 있는 건 질문들의 모양이야. 클라이언트가 어떤 약속을 지켜야 하는지, 그리고 그 약속들이 어떻게 그렇게 적게 들이고 그렇게 많이 지켜 주는지. 터널 속 새벽 두 시에 정직한 침묵이 그럴듯한 거짓말을 이긴다고 판단하는 그 감각은, 어떤 git clone 도 못 건네줘. 그건 네가 직접 만들어야 해. 그게 핵심이야.