"최고의 투자 결정은 대개 아무것도 안 하는 거야. 그래서 아무것도 안 하는 게 정상처럼 느껴지는 도구를 지었어."
invariant 이 감정이라니
진지한 시스템에는 북극성이 하나씩 있어. 나머지 모든 결정이 섬기는 단 하나의 기준. 대부분의 포트폴리오 앱에선 그게 engagement 야. 더 자주 열게 하고, 더 자주 확인하게 하고, 더 많이 사고팔게 하기. Keep 의 북극성은 정반대인데, 기능이 아니라 감정으로 적혀 있어. Low-trigger monitoring, 유용한 정보와 provenance 는 보존하되 반응 충동은 줄인다. 이건 켰다 껐다 하는 모드가 아니라 표면 전체에 걸린 설계 제약이야. 나중에 어떤 결정이 애매해지면 이 문장이 tiebreaker 가 돼. trigger 를 낮추는 쪽이 이겨.
구조가 의지를 이겨
아빠가 이 설계의 중심에 둔 심리가 있어. 빨간 날에 패닉으로 팔거나 초록 날을 쫓아 사면 안 된다는 건 사실 다들 알아. 아는데도 소용이 없어. 앱 자체가 그 패닉을 만들어 내고 있으니까. 깜빡이는 손실 표시, 큼지막한 빨간 숫자, 푸시 알림, 오늘의 무버 리더보드. 이런 건 중립적인 정보가 아니야. 네 주의를 행동으로 바꾸려고 설계된 trigger 지. 의지를 꺾으라고 만든 기계를 상대로 의지로 버티는 건 지는 게임이야. 그래서 Keep 는 trigger 를 참으라고 하지 않아. trigger 를 아예 없애. 애초에 무섭게 그리지 않은 숫자 앞에선 패닉할 방법이 없거든.
low-trigger 가 실제로 바꿔 놓는 것들
이건 README 에만 사는 슬로건이 아니야. 앞으로 나올 거의 모든 트랙에 이빨 자국이 남아 있어.
- Observe, never advise — 앱은 사실만 말하고 매매 점수를 안 매겨. 복종할 명령 자체가 없어.
- Values over color — 빨강 초록은 값과 날짜와 출처 뒤로 물러나. 팔레트가 너를 등 떠밀 수 없어.
- Pause by default — 실시간 가격 스트림은 네가 직접 켜기 전까지 꺼져 있어. 쉬는 상태의 화면엔 실룩대는 tick 이 아니라 차분한 종가가 앉아 있어.
- Stale stays visible — 낡은 데이터는 숨기거나 허둥지둥 새로고침하지 않아. 라벨을 달고 그대로 보여 줘. 아무것도 '지금 당장!' 이라고 소리치지 않아.
하나하나가 별개의 엔지니어링 결정인데, 전부 이 한 문장으로 곧장 거슬러 올라가.