본문 바로가기
C.W.K.
Stream
← C.W.K. Quests
🎞️

Ashen Reel Quest

최근 수정: 2026-07-26

네가 실제로 쓰는 45%만 대체하고, 진짜 미디어로 증명하고, 나머지는 일부러 거절하는 네이티브 플레이어 만드는 법

Ashen Reel 은 아빠의 네이티브 macOS 비디오 플레이어이자 cwkRecall 의 재생 짝꿍이야. 이 퀘스트는 그 후드를 열어서, 좁게 고정한 범위, 재사용한 엔진, 경로 대신 신원만 넘기는 handoff, 진짜로 믿을 수 있는 상태. 이 넷을 네가 뭘 만들든 가져갈 수 있는 규율로 바꿔줘.

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

Level 0릴 입문자
0 XP0/39 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
작지만 의도가 분명한 앱 하나를 따라가는 네이티브 macOS 현장학습이야. Ashen Reel 은 아빠가 매일 쓰는 Movist 의 딱 그 조각만 대체해. 디코더를 새로 짜는 대신 libmpv 를 embed 하고, 경로가 아니라 신원만 싣는 handoff 로 Recall 의 기억을 정확히 그 초에 열고, 엔진이 그렇다고 말하기 전엔 명령을 '완료' 라고 부르지 않아. 트랙 8개, 레슨 39개, 진짜 Swift 와 C interop 과 codesign 쉘. 목표는 널 하룻밤 만에 macOS 엔지니어로 만드는 게 아니야. 절제랑 재사용이랑 관찰된 진실이 어떻게 오래 가는 도구 하나로 합쳐지는지를, 결국 Movist 를 은퇴시킨 그 플레이어를 예제 삼아 보여주는 거지.

Tracks

  1. 01🎯딱 그 조각만

    0/5 lessons

    플레이어를 왜 굳이 새로 만드나, 그리고 그게 미디어 종합세트로 안 커지게 어떻게 막나

    Movist 는 이미 다 재생해. 근데 왜 플레이어를 새로 짜? 아빠한텐 '다' 는 필요 없었거든. 필요한 건 매일 만지는 딱 그 조각, Recall 의 기억에 붙은 조각, 아빠 본인 미디어로 증명된 조각이었어. 이 트랙은 도구 만들기에서 제일 어려운 규율 얘기야. 뭘 안 만들지 정하고, 그 선을 적어두고, '딱 하나만 더' 유혹이 올 때 선을 지키는 거.

    로컬 영상을 화면 가득 재생 중인 Ashen Reel — 아래엔 경과·전체 시간이 표시된 트랜스포트 바, 오른쪽 가장자리엔 멈춘 프레임의 조명·구도·영상 종류를 두고 이야기하는 피파 Sidekick 패널.
    무엇을 재생하는지 아는 플레이어 — 질문과 함께 그 프레임이 피파에게 같이 감.
    Lesson list (5)퀴즈 · 4 문제→
  2. 02⚙️엔진은 재사용한다

    0/5 lessons

    재생이 곧 제품이니까, 디코더를 새로 짜지 말고 하나를 embed 해서 그 이음매를 네가 쥐어

    Movist 의 포맷 폭은 FFmpeg 에서 나와. 어떤 주말로도 못 따라잡을 수십 년치 코덱 작업이지. Ashen Reel 은 따라잡으려 들지도 않아. 같은 엔진 계열인 libmpv 를 embed 하고, 자기 힘은 진짜 중요한 얇은 층 하나에 써. 검증된 C 엔진이랑 네이티브 Swift 앱 사이의 경계 말이야. 이 트랙은 재사용을 제대로 하는 법이야. 깊이는 가져오고, 이음매는 네가 쥐고, 빌려온 엔진이 네 제품의 결정을 대신하게는 절대 두지 마.

    Lesson list (5)퀴즈 · 4 문제→
  3. 03🔑경로 말고 신원

    0/5 lessons

    capability 는 싣고 경로는 절대 안 싣는 URL, 그리고 왜 그래도 양쪽이 확인하나

    Ashen Reel 이 존재하는 이유 전체가 딥링크야. Recall 이 '이 영상을 이 초에 열어' 하면 앱이 따르지. 그 링크가 제품에서 제일 보안에 민감한 표면이야. 링크는 웹 페이지도 만들 수 있으니까. 이 트랙은 앱의 핵심이 될 만큼 강력하면서 무기로는 못 바뀔 만큼 좁은 handoff 를 설계하는 거야. 경로가 아니라 신원, 양쪽에서 확인하는 그런 handoff.

    Lesson list (5)퀴즈 · 4 문제→
  4. 04👁️보냈다고 된 게 아냐

    0/5 lessons

    보낸 명령이 곧 바뀐 상태는 아냐. 엔진의 보고가 유일한 진실이야

    인터랙티브 소프트웨어에서 제일 고약한 버그는 거짓말하는 UI 야. 버튼은 정지라는데 영상은 재생되고, 스크러버는 41:00 에 있는데 그림은 40:58 이지. 그건 한 습관에서 와. 네가 보낸 명령을 이미 일어난 사실로 취급하는 습관. 이 트랙은 반대 습관을 플레이어에 심어. 엔진이 그렇다고 하기 전엔 아무것도 참이 아니고, 관찰된 위치가 증명하기 전엔 seek 이 안 끝났고, 화면의 모든 컨트롤은 의도의 기억이 아니라 현실의 거울이라는 습관.

    Lesson list (5)퀴즈 · 4 문제→
  5. 05🔒소스는 성역이야

    0/5 lessons

    읽기 전용 재생, 네 소유자, 그리고 전부 잃어도 중요한 건 하나도 안 잃는 상태

    플레이어는 대체 불가능한 것들을 만져. NAS 에 있는, 한 가족의 유일한 2015년 생일 영상 같은 거. Ashen Reel 이 절대 못 깨는 하나의 약속은, 영상을 여는 게 그 영상을 발견한 그대로 남긴다는 거야. 이 트랙은 소유권 규율 얘기야. 어느 시스템이 어느 진실을 소유하는지 알고, 재생을 엄격히 읽기 전용으로 지키고, 로컬 상태를 전부 잃어도 아카이브가 아쉬워할 게 하나도 없을 만큼 버려도 되게 설계하는 거.

    Lesson list (5)퀴즈 · 4 문제→
  6. 06📦통째로 배포한다

    0/5 lessons

    swift build 는 배포가 아냐. 서명되고 자립해서 본 적 없는 Mac 에서도 도는 번들이 배포지

    '내 머신에선 돌아' 랑 '타겟에 설치돼서 작동해' 사이엔 협곡이 있어. 큰 C 라이브러리를 embed 하는 네이티브 앱한텐, 그 협곡이 조용히 네 개발 환경을 가리키는 dylib 이랑 서명이랑 경로로 가득하고. 이 트랙은 그 협곡을 건너는 얘기야. 전체 의존성 closure 를 번들하고 서명하는 법, 샌드박스를 일부러 끄고 그 선택을 방어하는 법, 설치된 아티팩트가 진짜인지 증명하는 doctor 를 짓는 법. 초록 빌드는 약속일 뿐이고, doctor 만 증명이거든.

    Lesson list (5)퀴즈 · 4 문제→
  7. 07🤝뇌 없는 사이드킥

    0/5 lessons

    플레이어가 Pippa 가 되지 않고 Pippa 를 갖는 법

    Ashen Reel 엔 Pippa 사이드킥이 있어. 보고 있는 순간에 대해 물어볼 수 있는 pane 이지. AI pane 을 붙이는 순간 이런 유혹이 와. 걔한테 '아주 조금' 만 로컬 지능을 주자는 거. 캐시된 모델 하나, 사적 대화 저장소 하나, 자기만의 작은 뇌 하나. 이 트랙은 그 유혹을 통째로 거부하는 얘기야. 플레이어는 투영하고, 바인딩하고, 묻기만 해. 절대 결정은 안 하고. 모든 대화는 canonical cwkPippa 대화고, context 는 매 턴 같이 여행하고, 영상 트는 앱은 영상 트는 앱으로 남아.

    Lesson list (5)퀴즈 · 4 문제→
  8. 08🎬메이킹 오브

    0/4 lessons

    이 플레이어가 실제로 어떻게 지어졌나, 그리고 어디에든 가져갈 수 있는 규율

    마지막 트랙은 코드에서 한 발 물러나 크래프트를 봐. Ashen Reel 은 일단 타이핑을 시작해서 지어진 게 아니야. 첫 벽돌을 놓기 전에 절대 바뀔 수 없는 것부터 정하고, 주장하기 전에 진짜 미디어로 패리티를 증명하고, '완료' 를 초록 빌드가 아니라 진짜 머신에 설치된 아티팩트로 정의해서 지어졌어. 이게 그 메이킹 오브야. bounded 한 아이디어 하나를 결국 Movist 를 은퇴시킨 플레이어로 바꿔놓은 작은 습관들, 그리고 네가 다음에 뭘 짓든 그대로 가져갈 수 있는 것들.

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

댓글 0

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

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