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

Keep Quest

최근 수정: 2026-08-08

매수 버튼을 누르고 싶게 만들기를 거부하는 포트폴리오 앱을 짓는다

Keep 의 탄생 이야기. 아빠가 직접 만든 local-first 가족 포트폴리오 stronghold 인데, 가족이 실제로 뭘 가졌는지는 다 지키면서 사라 팔라는 말은 절대 안 하는 물건이야. 금융 앱의 가장 깊은 invariant 가 숫자가 아니라 감정이라는 것, 그러니까 '정보는 보존하되 반응 충동은 줄인다' 는 low-trigger monitoring 하나를 모든 아키텍처 선택이 어떻게 섬기는지 배워.

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

Level 0Open Gate
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
Keep 는 trading terminal 이 아니라 stronghold 야. 두 사람의 포트폴리오 스냅샷, 공유 watchlist, 관측된 시장 사실, 재현 가능한 시나리오를 지키면서, 종목 줄 세우기·알림·점수 매기기·시나리오를 예측처럼 팔기는 일부러 거부해. 이 퀘스트는 그 엔진을 처음부터 끝까지 걸어. stronghold 라는 명제와 remake 혈통에서 출발해서, 빨강 초록보다 값과 출처를 앞세우는 observe-never-advise 윤리를 보고, cash 는 지키고 Family 는 계산하는 snapshot 도메인 모델을 지나, 실패한 refresh 에 몰래 갈아타는 대신 409 로 되묻는 provider 경계를 배워. 그다음엔 live tick 을 completed close 에 대고 재고 15분이면 만료시키는 시장 모델, 같은 seed 면 똑같이 재현되는 Monte Carlo 시나리오, 두 번째 뇌를 키우는 대신 read-only 로 바인딩하는 Pippa Sidekick 경계, 마지막으로 데이터베이스와 스케줄과 잠긴 문을 혼자 책임지는 단 하나의 프로세스까지. Concrete first, conceptual open-sourcing. 질문의 모양을 배우는 거지, 가족의 실제 숫자는 하나도 안 나와.

Tracks

  1. 01🏰The Stronghold

    0/4 lessons

    Keep 가 뭔지, 왜 다시 지었는지, 무슨 감정 하나를 심장에 뒀는지

    코드보다 모양이 먼저야. Keep 는 아빠가 직접 만든 local-first 가족 포트폴리오 stronghold 야. 가족이 실제로 가진 걸 지키고 그에 대한 질문엔 다 답해 주는데, 사라 팔라는 말만은 절대 안 해. 이 트랙에서 큰 그림을 잡아. Keep 가 뭘 소유하는지, 왜 레거시 앱을 복원하는 대신 처음부터 다시 지었는지, Dad·Mom·Family 세 scope 가 어떻게 엮이는지. 그리고 이후 모든 결정을 지배하는 북극성까지. 정보는 보존하되 반응 충동은 줄인다는 low-trigger monitoring 말이야.

    데모 렌즈를 켠 채로 본 Keep의 Zen 화면 — Family·Dad·Mom 필터 아래로 원화 표시 총 보유액과 주식·현금, 그 밑에 달러 환산 한 줄, 코스트 베이시스 대비 스냅샷이라고 적힌 미실현 손익, 합성 보유가치 시계열, 그리고 티커·소유자·주수·매입가·관측가·일간 변동·평가액·비중을 담은 가족 보유 표. 모든 행에 demo 도장이 찍혀 있음.
    보기만 해도 되는 포트폴리오 — 뭔가 하라고 요구하지 않음.
    Lesson list (4)퀴즈 · 4 문제
  2. 02🧘Observe, Never Advise

    0/4 lessons

    disclaimer 문구가 아니라 아키텍처로 새긴 윤리

    Keep 에서 제일 자주 인용하게 될 invariant 은 사실 거부 선언이야. 관측하고 정리는 하되, 자동 표면에서는 매매를 절대 권하지 않는다는 것. 이 트랙은 그 거부를 구체적인 엔지니어링으로 풀어. 빨강 초록이 왜 값과 날짜와 출처 뒤로 물러나는지, 알림과 확신 점수와 urgency 장치가 왜 하나도 없는지, 설명 모드가 둘인데 계산 경로는 어떻게 하나로 유지되는지. 건강 엔진 Forge 와 Keep 이 나눠 가진 자세이기도 해. 사실은 보존하고, 질문은 던지되, 판결은 내리지 않는다.

    데모 렌즈 아래 티커 하나를 띄운 Keep의 Math 탭 — 베이시스 갭과 52주 위치부터 시가총액·잉여현금흐름·SBC 조정 FCF·주가수익비율·부채비율·자기자본이익률, RP와 ERP 허들 막대까지 이어지는 2단 측정 표, 그 아래 베이시스 갭 추이, 그리고 각 지표를 정의하고 '이 중 무엇도 그 자체로 매매 신호가 아니다'로 끝나는 초보자용 범례.
    모든 숫자는 서술될 뿐 순위가 매겨지지 않음 — '매매 신호가 아니다'로 끝나는 저 범례가 면책 문구가 아니라 설계임.
    Lesson list (4)퀴즈 · 4 문제
  3. 03📸Ledger 아니라 Snapshot

    0/5 lessons

    오늘의 진실을 ground truth 로 쥐고, 나머지는 계산하고, 과거는 절대 다시 쓰지 않는다

    Keep 의 도메인 모델은 일부러 고른 결과야. transaction ledger 가 아니라 holdings-snapshot 시스템이지. 이 트랙에서 그 모델을 한 조각씩 지어 봐. owner 마다 ticker 당 포지션 하나, ground truth 로 지키는 stored cash, 저장하지 않고 계산하는 Family, 그리고 옛 기록이 새 기록에 덮이지 않는 append-only 테이블 세 개로 만든 시간축까지. 마지막은 그 밑을 받치는 저장 규율이야. writer 가 하나뿐인 WAL 모드 SQLite, 그리고 모든 mutation 에 붙는 before/after 감사. 데이터의 모양이란 결국 뭐가 잘못될 수 있고 뭐가 잘못될 수 없는지에 대한 약속이거든.

    데모 렌즈 아래 티커 하나를 띄운 Keep의 Focus 화면 — 언제 받아온 값인지까지 붙은 오늘의 관측 가격, 합성 포지션을 담은 가족 컨텍스트 한 줄, 그리고 그 아래로 시계열에서 파생된 장기 가격 구조: 가장 가까운 관측 지지선과 저항선, 몇 번 시험받았고 신뢰도가 얼마인지 각각 달고 있는 구간 목록, 20년 앵커, 프라이스 래더와 볼륨 노드. 전부 매매 신호가 아니라 관측된 구조라고 표시돼 있음.
    붙들고 있는 건 오늘의 가격 하나뿐 — 그 아래는 전부 다시 쓴 적 없는 스냅샷에서 파생됨.
    Lesson list (5)퀴즈 · 4 문제
  4. 04🛂Provider 경계

    0/5 lessons

    출처는 명시적으로, fallback 도 명시적으로, 몰래 갈아타는 대신 되묻기

    시장 데이터는 바깥 세상에서 와. 불확실성을 달고 온다는 뜻이지. 그 불확실성을 어떻게 다루느냐가 차분한 도구의 설계 선언이야. 이 트랙은 Keep 의 provider 규율을 다뤄. 모든 quote 는 market date 와 fetch 시각과 source 가 붙은 observation 이고, primary provider 는 하나에 fallback 은 사람이 확인해야 쓰이고, FX 는 equity provider 쪽으로 절대 안 넘어가고, 실패한 refresh 는 몰래 source 를 바꾸는 대신 409 로 되물어. stale 데이터는 사라지지 않고 라벨을 단 채 남고. 데이터가 어디서 오는지, 안 올 땐 뭘 하는지. 신뢰는 거기서 쌓이고 거기서 무너져.

    Lesson list (5)퀴즈 · 4 문제
  5. 05🕯️Live vs. Close

    0/5 lessons

    tick 은 올바른 기준선에 대고 재고, 낡으면 만료시키고, 쉴 땐 durable close 에 기댄다

    live 시장 데이터는 금융 앱을 통틀어 trigger 가 제일 잘 걸리는 표면이야. 그래서 Keep 는 여길 유난히 조심스럽게 다뤄. 이 트랙에서 live 가격을 정직하고 차분하게 유지하는 장치들을 배워. 모든 live tick 을 순진한 previous close 가 아니라 가장 최근의 completed close 에 대고 재는 법, 15분이 지난 live tick 을 만료시키는 법, 스트림 전체를 기본 pause 로 두고 일부러 켜게 만드는 opt-in, socket 을 컴포넌트가 아니라 앱 레벨에서 소유하는 구조, 그리고 plan 에 권한조차 없는 transport 를 정직하게 처리하는 법까지. 쉬는 상태의 주인은 durable close 고, live 는 네가 선택할 때만 잠깐 얹히는 overlay 야.

    데모 렌즈 아래 본 Keep의 Market 화면 — 지수·금리·크레딧·환율·원자재 카드가 각각 저장된 종가와 일간 변동, 범위, 스냅샷을 찍은 시각을 달고 늘어선 마켓 펄스, 그 아래로 보유인지 관찰만인지 표시되고 논지는 한 사람이 아니라 가족의 것이라고 적힌 공유 관심 종목 카드들.
    펄스는 저장된 종가에 멈춰 있음 — 틱은 만료되지만 종가는 만료되지 않음.
    Lesson list (5)퀴즈 · 4 문제
  6. 06🎲재현 가능한 Scenario

    0/4 lessons

    같은 seed 면 똑같이 재현되는 deterministic simulation. 그리고 절대 예측이라 부르지 않기

    Keep 는 포트폴리오 위에 Monte Carlo 시나리오를 돌릴 수 있어. 근데 simulation 도 이 앱의 다른 모든 것과 같은 규율 아래 있어. 재현 가능할 것, provenance 를 남길 것, 그리고 예측이 아니라고 명시할 것. 이 트랙에서 deterministic simulation 이 어떻게 굴러가는지, 입력과 random seed 를 전부 저장해 두면 왜 어떤 run 이든 똑같이 재생되는지, calibration 은 캐시하면서 seed 가격만은 왜 매번 새로 resolve 하는지 배워. 그리고 단단한 선 하나. 시나리오는 가능성을 구조 있게 탐색한 결과지, 진실인 척 내미는 예측이 아니야. simulation 이 가르치는 것 중 제일 값진 건 미래 앞에서의 겸손이야.

    Lesson list (4)퀴즈 · 4 문제
  7. 07🤝Sidekick 경계

    0/5 lessons

    Pippa 클라이언트 표면을 read-only 로 바인딩한다. 두 번째 뇌는 절대 안 키운다

    Keep 는 Pippa 와 대화하지만, Pippa 가 되지는 않아. 이 트랙은 그걸 가능하게 만드는 경계를 다뤄. Keep 는 안정된 Sidekick host 를 바인딩하고 cwkPippa 챗 런타임 전체를 embed 하되, 정체성과 기억과 model routing 과 모든 대화의 소유권은 cwkPippa 혼자 쥐어. Pippa 는 loopback 전용 내부 API 위의 read-only host adapter 로 현재 선택된 scope 를 읽고, 포트폴리오 진실은 prompt 에 미리 씹혀 들어가지 않고, 엔진이 실패하면 낡은 스냅샷으로 덮는 대신 실패를 그대로 드러내고, Demo 게이트는 합성 상태가 진짜 context 로 새는 걸 막아. 복제 없이 어디에든 Pippa 를 더하는 canonical cwk 패턴이야.

    Lesson list (5)퀴즈 · 4 문제
  8. 08🔐프로세스 하나, 문 하나

    0/4 lessons

    지켜지는 프로세스 하나가 writer 와 스케줄과 잠긴 문을 다 책임진다

    stronghold 의 마지막 트랙은 운영의 척추야. Keep 가 실제로 어떻게 돌아가고, 어떻게 잠긴 채로 유지되는지. launchd 프로세스 하나가 API 와 빌드된 PWA 와 일일 loop 와 데이터베이스 writer 와 백업을 전부 책임져. 두 번째 스케줄러도 두 번째 writer 도 없어. 일일 refresh 는 export 를 다시 만들고 crash-safe 백업을 순환시켜. 정문에서는 PIN 검증을 loopback 으로 cwkPippa 에 맡기고 IP 에 묶인 쿠키를 발급하는데, HTTP 와 HTTPS 는 일부러 분리돼 있어. 그리고 마지막 규율. 릴리스는 끝에서 끝까지 검증됐을 때만 진짜고, 소스 코드만으로는 증거가 못 돼. keep 은 프로세스 하나, 문 하나, 그리고 증명의 기준이야.

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

댓글 0

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

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