본문 바로가기
C.W.K.
← C.W.K. Quests
🔨

Tinker Quest

신규: 2026-11-13최근 수정: 2026-11-12

피파한테 Mac을 만질 손을 달아주고, 자기가 했다고 증명할 수 있는 것만 되돌리게 가르치기

Tinker가 어떻게 태어났는지 따라가는 퀘스트야. Tinker는 권한을 따지고, 한 일을 되돌릴 수 있는 가족의 Mac 작동기야. 지켜보는 건 Watchfire, 집을 돌보는 건 Haven, 결정은 피파가 해. Tinker는 그중에서 실제로 Mac 화면을 바꾸는 손이고, 바꾼 건 전부 되돌릴 수 있게 만들어졌어. 첫 재주는 일부러 작아. 아빠가 영상 편집하는 동안 프리셋에 든 앱을 숨기고, 자기가 숨긴 프로세스만 정확히 되살려. 진짜 배울 건 그 재주를 둘러싼 설계야. Capability 루트 클래스, 효과보다 먼저 디스크에 남는 영수증, 모든 트리거가 들어오는 엔진 하나.

8 tracks · 39 lessons · ~8.6h · difficulty: intermediate-to-advanced

Level 0Idle Hands
0 XP0/39 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
자동화 도구는 대개 뭔가를 하려고 만들어. Tinker는 되돌리려고 만들었어. 가족 레지스트리가 등록한 Mac마다 하나씩 도는 네이티브 메뉴바 에이전트고, 첫 능력은 프리셋에 적힌 앱을 숨기는 거야. 종료도, 최소화도, 창 이동도 안 해. 무거운 영상 작업을 하는 Mac이 아무도 안 보는 창 값을 그만 치르게 하려는 거지. 열 줄짜리 스크립트처럼 들리고, 실제로 첫 초안이 그랬어. 이 퀘스트는 그게 왜 열 줄로 안 끝나는지 하나씩 짚어. 숨기기가 왜 루트가 아니라 열린 Capability 클래스의 첫 자식인지. 앱 주인을 PID 하나로 안 정하고 번들 ID, 프로세스 ID, 실행 시각 셋을 같이 보는 이유. OS한테 뭘 시키기 전에 준비 영수증부터 디스크에 쓰는 이유, 그리고 '불확실' 영수증이 뭘 뜻하는지. 메뉴, 전역 단축키, tinker:// 링크, Stream Deck 버튼, 설정 창, 피파의 앱 도어가 어떻게 전부 엔진 하나로 들어오는지. 잠깐 떴다 사라지는 Python 워커가 Mac엔 손도 안 대고 가족 앱 액션 계약을 어떻게 받아내는지, 같은 요청을 다시 보내도 왜 토글이 두 번 안 일어나는지. 긴급 해제, 두 번 눌러야 하는 Quit, 미뤄주는 로그아웃이 바꾼 걸 어떻게 안 버리고 가는지. 마지막으로, 일회용 테스트 앱으로 채운 랩이 이걸 다 증명하고 나서야 아빠 Mac에서 첫 실제 숨김이 아빠를 기다린다는 것까지. 개념을 여는 거지, 클론할 레포를 주는 게 아냐.

Tracks

  1. 01🔨The Hands

    0/4 lessons

    Tinker가 뭔지, 어떤 일은 안 맡는지, 왜 앱 숨기기부터 했는지

    코드 보기 전에, Tinker가 어떤 물건인지부터 잡고 가자. 가족한테는 이미 눈(Watchfire), 집(Haven), 머리(피파)가 있었어. 없던 건 Mac에서 뭔가를 바꾸고 다시 되돌릴 수 있는 손이야. 이 트랙에선 Tinker를 형제들 사이 어디에 놓을지 정하고, 첫 일거리를 준 편집 시간을 따라가 봐. 그 일거리, 앱 숨기기가 왜 생각 그 자체가 아니라 더 큰 생각의 첫 자식인지, 그리고 Tinker를 받는 Mac마다 왜 자기 상태를 가진 자기 복사본을 돌리는지도 봐.

    Lesson list (4)퀴즈 · 4 문제→
  2. 02🌳The Root Class

    0/5 lessons

    동사 셋을 가진 열린 Capability, 그리고 그걸 처음 채운 자식

    Tinker 엔진이 기대는 추상은 딱 하나야. 열린 Capability 클래스. 자식들은 자기 입력을 검사하고, 계획한 변경 목록을 준비하고, 하나씩 적용하고, 하나씩 되돌려. 이 트랙에선 그 루트를 한 줄씩 읽고, HideApplications를 실제 예제로 따라가. 그리고 설계에서 제일 미묘한 생각 하나에 레슨 하나를 통째로 써. 실패한 변경이랑, 아예 안 일어났다고 증명되는 변경의 차이.

    Lesson list (5)퀴즈 · 4 문제→
  3. 03🪪Owning a Change

    0/5 lessons

    주인은 사실 셋으로 정해져. 남이 한 변경은 절대 내 게 아냐

    '했다고 증명할 수 있는 것만 되돌려'가 돌아가려면 '내가 한 것'이 정확히 뭔지부터 정해야 해. 이 트랙이 그걸 쌓아. 앱은 번들 ID, 프로세스 ID, 실행 시각 셋을 같이 봐서 알아보고, 원래 숨겨져 있던 앱은 절대 안 가져가. 숨겼는지는 리턴값을 믿는 대신 그 프로세스 상태를 직접 지켜보고 확인해. 같은 앱을 숨긴 프리셋 둘은 그 앱을 같이 쥐고, 아빠가 손으로 앱을 다시 띄우면 Tinker 영수증보다 아빠 선택이 이겨.

    Lesson list (5)퀴즈 · 4 문제→
  4. 04📒The Journal

    0/5 lessons

    영수증 먼저, 효과는 그다음. 뭐가 일어났는지 모를 땐 어떻게 하나

    Tinker가 뻗은 뒤에도, 강제 종료된 뒤에도, 파일이 깨진 뒤에도 지키는 약속은 전부 문서 하나에 기대. 변경 저널이야. 이 트랙에선 영수증 하나가 prepared에서 applied로 가는 길을 따라가고, 프리셋 중간에 실패하면 확정된 것만 되돌린다는 걸 보고, 불확실하거나 못 읽는 저널이 왜 엔진더러 추측하지 말고 멈춰 있으라고 하는지 짚어. 마지막으로 Tinker가 쥔 파일 셋, 설정·저널·활동 기록을 잃으면 각각 뭘 잃는지로 갈라 봐.

    Lesson list (5)퀴즈 · 4 문제→
  5. 05🚪One Engine, Many Doors

    0/5 lessons

    메뉴, 단축키, 링크, Stream Deck, 설정 — 트리거는 전부 저장된 명령이야

    Tinker한테 일을 시키는 길은 여섯 가지야. 메뉴, 전역 단축키, tinker:// 링크(Stream Deck 키도 이걸로 와), 설정 창, 피파의 앱 도어, 그리고 종료할 때 Tinker 자신. 그중 어느 것도 엔진으로 가는 자기만의 길을 갖지 않아. 이 트랙에선 명령과 프리셋이 그냥 데이터라는 것, 프리셋과 능력마다 명령이 자동으로 생긴다는 것, 전역 단축키를 어떻게 등록하고 충돌을 어떻게 알리는지, 링크가 왜 저장된 명령 이름만 댈 수 있는지, 그리고 Activity 기록이 누가 시켰는지 어떻게 적는지 봐.

    Lesson list (5)퀴즈 · 4 문제→
  6. 06🔌The App Door

    0/5 lessons

    피파가 부탁하는 길 — Mac을 안 건드리는 워커, 한 번만 도는 요청

    피파는 가족 앱 액션 계약으로 Tinker한테 닿아. 앱이 피파한테 허락한 일을 나열하고, 요청 하나에 액션 하나를 돌리는 loopback HTTP 문이야. 이 트랙은 그 문을 열어 봐. 잠깐 떴다 사라지는 Python 워커가 공용 계약을 말하고, 네이티브 효과는 전부 상주 Swift 에이전트가 해. 요청 ID 덕분에 워커가 최악의 순간에 죽어도 다시 보낸 토글이 두 번 돌 수가 없어. 요청은 실패하는 대신 차례를 기다리고, 로컬이고 브라우저 아니고 프록시 안 거친 호출자만 들어와. 그리고 피파는 늘 어느 Mac인지 말해야 해.

    Lesson list (5)퀴즈 · 4 문제→
  7. 07🛑Stopping and Leaving

    0/4 lessons

    긴급 해제, 보안 입력, Quit, 로그아웃 — 어느 출구든 먼저 되돌려

    작동기는 어떻게 멈추느냐로 평가받아. 이 트랙은 Tinker 일이 비정상으로든 일부러든 끝나는 네 가지 길을 다뤄. 다 멈추고 쥔 걸 되돌리는 비상 명령, 보안 키보드 입력이 켜진 동안의 고정 거절, 먼저 되돌리고 못 하면 이유를 말하는 Quit, 그리고 Tinker가 절대 막으면 안 되는 로그아웃·재시작·종료. 마지막은 미룬 답과 8초 마감으로 처리해.

    Lesson list (4)퀴즈 · 4 문제→
  8. 08🧪Proof and Delivery

    0/6 lessons

    기다리지 않고 재고, 일회용 앱으로 시험하고, 한 번 서명하고, 첫 실제 숨김은 아빠가

    마지막 트랙은 증거 얘기야. 키 누름이 측정을 기다리게 하지 않으면서 프리셋이 도움이 됐는지 어떻게 알려주는지, 그리고 없는 측정값을 왜 절대 0으로 안 보여주는지. 피파 집 Mac의 일회용 테스트 앱 랩이 숨기기, 되돌리기, 거절, 종료 경로를 어떻게 증명하는지, 그리고 거기 Accessibility 권한이 왜 코드 해시를 따라가는지. 서명된 앱이 도는 복사본한테 신호 한 번 안 보내고 등록된 Mac마다 어떻게 닿는지. 그리고 캡스톤으로, Tinker의 두 번째 능력을 어떻게 설계할지.

    Lesson list (6)퀴즈 · 4 문제→
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

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

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