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

몸짓 하나, 그게 다야

~12 min · identity, menu-bar, thin-client, posture

Level 0식은 부싯돌
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"글을 긁어. 키를 쳐. 글이 바뀐다. 앱은 그게 다야."

몸짓 하나

Flint 는 하는 일이 하나뿐인 macOS 메뉴바 유틸리티야. 아무 앱에서 글을 긁고 단축키를 누르면, 바뀐 글이 그 자리로 돌아와. 오타 고치기, 문장 조이기, 문단 번역, 퉁명스러운 말투 풀기 — 전부 같은 동작이고, 전부 지금 있는 앱을 안 떠나. 새로 열 창도, 갈아탈 탭도, 먼저 눌러야 할 입력 칸도 없어. 긁어놓은 게 입력이고, 친 게 명령이고, 돌아온 게 결과야.

되기를 거부한 것들

Flint 를 믿을 만큼 작게 만든 건 일부러 안 한 것들의 목록이야. 채팅 창 아니야. 두 번째 Pippa 도 아니고 — 기억도, 자기 성격도, 대화 기록도 없어. 모델 서버는 더더욱 아니지. 모델을 안 올리고, 포트를 안 열고, 추론을 안 돌려. 글쓰기 에디터도 웹 관리 화면도 아니야. 이거 하나하나가 다 후보에 올랐다가 잘렸어. 뒀으면 날카로운 작은 도구가 무거운 앱이 됐을 테고, 조용히 옆자리를 지켜야 할 물건이 다른 도구들이랑 자리싸움을 했을 테니까.

한 호흡에 보는 흐름

몸짓 밑에는 역할이 아주 분명하게 갈린 흐름이 있어. Flint 는 자리랑 긁어놓은 글을 붙잡고, 매크로 템플릿의 {input} 칸에 그 글을 끼워 프롬프트를 만들고, 이미 다른 앱에 살고 있는 브레인한테 보내. 생각은 브레인이 해. Flint 는 답을 받아서 자리가 아직 그대로인지 확인하고, 깨끗한 교체 하나를 넣어. 생각은 빌린 거고, 붙잡고 치고 조심스럽게 넣는 건 Flint 몫이야.

글 긁기  ->  단축키 치기
   붙잡기 { 앱, 요소, 긁은 글, 범위 }
   매크로 템플릿에 {input} = 긁은 글
   완성된 프롬프트를 빌린 브레인한테 POST   (Flint 는 생각 안 함)
   ... 브레인이 바뀐 글을 돌려줌 ...
   그 자리가 아직 그대로인지 확인
   교체 하나 넣기  (아니면 클립보드로)

이 흐름을 한 번 더 읽으면서 똑똑한 부분이 어디 있는지 봐. Flint 안엔 없어. Flint 는 글을 붙잡는 손이고 도로 놓아주는 손이야. 머리는 아예 딴 데 있고. 그리고 그 머리를 거기 두기로 한 게 이 앱에서 제일 먼저이자 제일 중요한 결정이야.

제품은 몸짓이지 모델이 아냐. AI 능력 하나를 놓고 도구를 만들면 모델을 가운데 세우고 UI 를 둘러 감고 싶어져. Flint 는 거꾸로 갔어. 모델은 불러다 쓰는 서비스고, 진짜 제품은 없애준 번거로움이야. 복사하고, 앱 갈아타고, 붙이고, 뭘 해달라 쓰고, 기다리고, 결과 복사하고, 돌아와서 또 붙이는 그 전부 대신 한 번 치는 것. 몸짓을 먼저 설계하고 똑똑한 건 빌려.

Code

앱 전체를 함수 하나로 줄이면·swift
func runMacro(_ macro: FlintMacro) async {
    // 1. 느린 일이 시작되기 전에 자리랑 긁어놓은 글부터 붙잡는다.
    guard let target = TargetCapture.snapshot() else { return }

    // 2. 매크로 자기 템플릿을 채운다. {input} 자리에 긁은 글이 들어간다.
    let prompt = macro.render(input: target.selection ?? "")

    // 3. 브레인을 빌린다. Flint 는 모델을 직접 돌리지 않는다.
    let result = await pippa.applyFree(prompt: prompt,
                                       vault: macro.vaultContextMode)

    // 4. 자리가 그대로인지 확인하고, 딱 하나만 넣는다.
    Insertion.place(result, into: target)   // 확인 실패하면 클립보드로
}

External links

Exercise

하루에도 몇 번씩 하는 글 다듬기를 하나 떠올려 봐. 늘 똑같이 나는 오타, 붙여넣으면 깨지는 서식, 너무 퉁명스러운 문장 같은 거. 지금 밟는 단계를 세어봐. 긁고, 복사하고, 앱 갈아타고, 붙이고, 뭘 해달라 쓰고, 기다리고, 결과 복사하고, 돌아와서 또 붙이고. 이제 이걸 한 번 치는 걸로 줄인다고 해보자. 결과가 원래 글이 있던 자리로 정확히 돌아오려면, 치는 그 순간에 뭘 붙잡아둬야 할까?
Hint
한 번 치는 걸로 왕복 전체가 접히니까, 왕복이 필요로 하던 게 전부 그 순간에 붙잡혀 있어야 해. 어느 앱인지, 어느 입력 칸인지, 어디서 어디까지 긁었는지까지. 답이 돌아올 즈음엔 이미 딴 데를 보고 있을 수도 있거든. 그렇게 붙잡아둔 자리를 어떻게 지키느냐가 이 퀘스트 나머지 내내 다루는 이야기야.

Progress

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

댓글 0

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

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