본문 바로가기
C.W.K.
Stream
Lesson 03 of 04 · published

길을 직접 쥐면 배우게 되는 것

~11 min · synthesis, transferable-lessons, boundaries, trust

Level 0식은 부싯돌
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"이렇게 작은 도구가 이만큼 가르칠 이유는 없어. 그런데 가르친다는 게 직접 만들어보는 이유고."

길 하나에 교훈 여럿

Flint 가 하는 일은 아주 작아. 키 한 번에 긁어놓은 글을 바꾸는 것. 그런데 그걸 처음부터 끝까지 만들다 보니 층마다 글 얘기를 한참 넘어서는 결정을 내려야 했어. 길 하나를 통째로 쥐면 조용히 따라오는 보상이 그거야. 작은 앱이 선생이 돼. 대부분의 소프트웨어가 프레임워크나 서비스한테 대신 답하게 두는 질문들을, 내가 구체적으로 답해야 했으니까. 여기 그 침이 남기고 간 교훈들이 있어. 하나같이 글 변환기랑은 하나도 안 닮은 문제로 옮겨 붙는 것들이야.

경계에 대한 교훈

제일 깊은 거. 선을 좁게 긋고 빌릴 수 있는 건 빌려라. Flint 는 손에 잡히고 이 컴퓨터에 있고 안전이 걸린 일만 갖고 생각은 안 가져. 그 선택 하나 덕분에 작고 믿을 만하고 바꾸기 쉬운 채로 남았고. 옮겨 쓸 수 있는 형태로 말하면 '능력을 다시 기르는 대신 깨끗한 이음새 너머로 빌려라' 고, 거기 딸린 규율이 하나 더 있지. 두 번째 머리한테 계속 아니라고 말하기. 얇은 앱은 그럴듯한 기능 하나씩에 밀려서 무거워지니까.

확인에 대한 교훈

제일 위험했던 층은 두 가지를 남겼어. 하나, 뜻하는 때랑 벌어지는 때 사이가 벌어지는 일은 뜻을 붙잡아뒀다가 벌어질 때 다시 확인해야 해. 나중에 눈앞에 있는 걸로 움직이면 안 되고. 둘, 들여다볼 수 없으면 다시 해보게 하는 것도 확인이야. 못 읽는 불투명한 자리한테도 한 번 더 복사해서 맞춰보라고는 할 수 있으니까. 그리고 확인이 안 되면 되돌릴 수 없는 쪽보다 되돌릴 수 있는 쪽을 고르고, 무슨 일이 있었는지 알려주고.

퀘스트의 층                  옮겨 쓸 수 있는 교훈
---------------------------  ------------------------------------
not-my-brain                 좁은 이음새 너머로 빌리고, 얇게 남아라
the-global-chord             지루하고 딱 맞는 API 를 쓰고 가둬둬라
reading-the-selection        어디서나 통하는 방법의 끝을 찾아둬라
prove-before-you-paste       뜻을 붙잡고 벌어질 때 확인하라
never-read-the-secret        넓은 허락은 좁은 행동을 요구한다

신뢰에 대한 교훈

그리고 나머지를 다 이기는 하나. 힘은 절제로 정해져. Flint 는 모든 앱을 읽고 조종할 수 있는 권한을 쥐고 있고, 이 도구의 값어치 전부는 쓸 일도 없는 그 힘으로 뭘 안 하느냐에 있어. 옮겨 쓸 수 있는 규칙은, 넓은 허락일수록 좁게 굴 의무가 커진다는 거야. 그리고 그 신뢰는 권한 창을 한 번 통과했다고 생기는 게 아니라, 좁고 보이게 이 컴퓨터 안에서 움직이는 시간이 쌓여서 계속 벌리는 거고.

작은 길 하나를 통째로 만들어보는 게 큰 걸 부품으로 조립하는 것보다 많이 가르쳐. 프레임워크나 서비스가 어려운 질문을 대신 답해주면 — 선을 어디 긋지, 자리를 어떻게 확인하지, 뭘 거부하지 — 돌아가는 앱은 얻지만 그중 아무것도 안 배워. 길을 처음부터 끝까지 쥐면 그걸 구체적으로 답할 수밖에 없고, 그 구체적인 답들이 다른 데로 옮겨 붙지. 작게 직접 만든 도구의 값어치는 도구 자체가 아니라 그게 나한테 답하게 만든 질문들이야.
집이 스스로를 설명하는 거야. Flint 는 같은 방식으로 지어진 집안의 한 식구고, 이 퀘스트는 그 도구가 자기가 어떻게 지어졌는지 직접 이야기하는 거야. 클론하라고가 아니라 그 모양이 옮겨 가라고. 개념을 열어둔다는 게 딱 그거지. 왜 조각들이 그렇게 맞물리는지는 나누고, 코드는 안 열고, 그 '왜' 를 이해한 사람이라면 코드가 절대 닿을 수 없는 자리에서 자기 걸 만들 거라고 믿는 것.

Code

길 전체를 한 번 더, 그리고 걸음마다 교훈 하나씩·swift
func runMacro(_ macro: FlintMacro) async {
    guard hasAccessibility() else { openSettings(); return }   // 값을 지킨다
    guard let target = snapshot() else { return }               // 뜻을 붙잡는다
                                                                //   (보안 칸? 거부)
    let prompt = macro.render(input: target.selection ?? "")    // 멍청하게 만든다
    let result = await brain.applyFree(prompt: prompt,          // 머리를 빌린다
                                       vault: macro.vaultContextMode)
    place(result, into: target)                                 // 확인하고 넣는다,
}                                                               //   아니면 클립보드로
// 다섯 줄에 교훈 다섯. 길을 직접 쥐었기에 하나하나 정해야 했던 것들이다.

External links

Exercise

지금 프레임워크나 서비스한테 어려운 질문을 대신 맡기고 있는 네 프로젝트를 하나 골라봐. 경계를 어디 그을지, 어떤 행동을 어떻게 확인할지, 뭘 거부할지 같은 것들. 그 길을 처음부터 끝까지 직접 쥔다면 뭘 정해야 할지 적어보고, Flint 의 교훈 중(좁은 이음새, 붙잡고 확인하기, 다시 해보게 해서 확인하기, 넓은 권한 아래 절제) 어느 게 만드는 방식을 제일 많이 바꿀지도 짚어봐.
Hint
연습의 핵심은, 어떤 의존이 조용히 내 설계 결정을 대신 내려주고 있는지 알아채고 그 답을 내가 쥔다고 상상해보는 거야. 어떤 프로젝트를 고르든 Flint 교훈 하나는 반드시 붙어. 시간차를 두고 움직이면 붙잡고 확인하기가 걸리고, 넓은 권한을 쥐고 있으면 절제가 걸리고, 무거운 능력에 기대고 있으면 좁은 이음새로 빌리기가 걸리고. 목표는 내 문제 밑에 깔린 옮겨 쓸 수 있는 원칙을 보는 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.