한 사람을 위해 만든 데스크톱
1 day ago
3
- 25년 만에 일상 프로그램 대부분이 직접 설계한 도구로 바뀌었고, Claude Code에 기능 추가와 버그 수정을 맡기며 기존 범용 도구를 하나씩 대체함
- 전체 환경은 libc 없이 순수 x86_64 어셈블리로 픽셀과 키 입력을 다루는 CHasm 기반 계층과, crust 위의 Rust 애플리케이션 계층인 Fe₂O₃ 로 나뉨
- CHasm 계층에서는 i3-wm이 tile로, kitty가 glass로, zsh와 rsh가 bare로, less가 show로 바뀜
- Fe₂O₃ 계층에서는 25년간 쓰던 VIM 이 첫 커밋 후 72시간 만에 scribe로 대체됐고, 파일 관리자·이메일·RSS·캘린더·천문 패널·영화 도구도 개인 워크플로에 맞춘 도구로 바뀜
- BYOS(Build Your Own Software) 는 Rust, Claude Code, 잘 문서화된 TUI 프로그래밍 문제 덕분에 더 현실적인 선택지가 됐고, 한 사람에게 정확히 맞는 도구를 주말 단위로 교체할 수 있게 됨
직접 만든 데스크톱 환경
- 25년 만에 처음으로 거의 모든 일상 프로그램이 직접 설계한 도구로 바뀜
- 기존 범용 도구를 한 번에 모두 교체한 것이 아니라, 손에 맞는 방식으로 하나씩 대체해 온 흐름임
- Claude Code에 기능 추가와 버그 수정을 맡기고, 다른 일을 하는 사이 짧게 지시한 뒤 결과를 이어받는 방식으로 개발함
- 전체 환경은 두 계층으로 나뉨
- CHasm: libc 없이 순수 x86_64 어셈블리로 만든 기반 계층이며, 픽셀을 그리고 키 입력을 읽음
- Fe₂O₃: Rust 애플리케이션 계층이며, 작은 공유 TUI 라이브러리인 crust 위에 올라감
CHasm 계층: 어셈블리 기반 도구
Fe₂O₃ 계층: Rust와 crust 기반 도구
VIM을 72시간 만에 대체한 scribe
- vim은 2001년부터 25년 동안 이메일, 글, 블로그 글, 코드, HyperList, 책 작성에 쓰인 핵심 도구였음
- 근육 기억이 깊어 브라우저의 임의 텍스트 입력창에서도 :w를 입력할 정도였음
- scribe의 첫 커밋은 5월 1일 00:09에 들어갔고, 5월 3일 오후에는 vim을 대체함
- scribe는 vim처럼 모달 편집기지만, 쓰지 않던 기능 90%를 덜어내고 개인 작업 흐름에 맞춘 기능만 담음
- 기본 소프트 래핑
- Limelight 스타일의 집중 읽기 모드
- 버퍼를 떠나지 않는 프롬프트 내 AI
- 전체 문법 강조를 갖춘 HyperList 편집
- Ruby HyperList app이 쓰는 암호화 형식 지원
- 동시 세션 사이에서 공유되는 영속 레지스터
- 혁명적인 기능은 아니지만, 모두 개인 워크플로에 정확히 맞춰진 기능임
- 예전에는 원하는 기능이 생겨도 다른 개발자가 같은 아이디어를 떠올려 도구에 넣어 주기를 몇 달, 몇 년, 혹은 영원히 기다려야 했지만, 이제는 원하는 개선이 몇 분 거리로 가까워짐
개인용 도구 제작의 비용이 낮아짐
- 예전에는 직접 편집기, 파일 관리자, 창 관리자를 만드는 일이 몇 년짜리 프로젝트였음
- RTFM을 제대로 만들기까지도 몇 년이 걸렸고, 상당한 비용이 드는 작업이었음
- 대부분의 사람, 심지어 프로그래머에게도 경제성이 맞지 않았음
- 일부를 만들다가 주말 시간이 끝나면 다시 기성 도구로 돌아가는 흐름이 일반적이었음
- 지금은 Rust, Claude Code, 충분히 문서화된 TUI 프로그래밍 문제 덕분에 “정말 원하는 도구를 직접 만든다”는 비용이 크게 낮아짐
- 핵심은 AI나 Rust 자체가 아니라, “내 편집기가 X를 했으면 좋겠다”와 “X를 하는 편집기가 여기 있다” 사이의 간격이 집중 작업 몇 저녁 안에 들어올 만큼 작아졌다는 데 있음
배포용이 아닌 한 사람용 소프트웨어
- 이 소프트웨어들은 다른 사람이 쓰도록 만든 것이 아님
- 손을 쓰는 방식, 이메일을 생각하는 방식, 캘린더가 렌더링되길 원하는 방식에 맞춰 한 사람을 위해 만들어짐
- 다른 사용자는 수많은 날카로운 모서리를 발견할 수 있지만, 그 모서리들은 개인 사용 방식과 정확히 맞아떨어져 눈에 띄지 않음
- 코드와 아이디어는 새롭지 않으며, 더 뛰어난 취향과 규율, 재능을 가진 사람이 이미 해 온 것들임
- 핵심은 한 사람에게 맞는 데스크톱 컴퓨팅 환경을 만드는 일이 이제 실제로 가능해졌다는 데 있음
- 다른 사람 도구를 설정해서 쓰는 수준이 아니라, 삶 속의 특정 도구가 주말마다 하나씩 원하는 대로 동작하도록 대체되는 방식임
- 더 이상 10년짜리 영웅적 프로젝트가 아니라, 주말 단위로 진행 가능한 실제 교체 작업에 가까워짐
한 명의 사용자를 위한 설계의 즐거움
- 자신을 위해 만들면 다른 사람의 선호에 맞춘 설정 가능성을 고민하지 않아도 됨
- 직접 겪지 않을 경계 조건을 지원할 필요가 없음
- 존재하지 않는 사용자를 위한 문서를 쓸 필요도 없음
- 기본값이 옳은지 이슈 트래커에서 논쟁할 필요가 없고, 원하는 값이 곧 올바른 기본값이 됨
- 편집기의 \? 치트시트는 직접 외운 키를 선호하는 순서와 합리적이라고 생각하는 바인딩으로 보여줌
- 위원회 없는 설계이며, 대상 사용자가 한 명이므로 결정은 몇 초 만에 내려짐
- 소프트웨어 복잡성의 큰 부분은 자신이 아닌 사용자를 수용하는 데서 나오며, 이를 제거하면 작고 빠르며 정확히 맞는 도구가 남음
BYOS라는 선택지
- 편집기, 파일 관리자, 상태 표시줄, 셸이 한 가지만 다르게 동작했으면 좋겠다고 느낄 때, 답이 플러그인 작성이나 난해한 설정 언어 학습, 기존 방식 수용만은 아니게 됨
- 세 번째 선택지로 Build Your Own Software(BYOS) 가 더 현실적인 길이 됨
- 전체 데스크톱을 대체하지 않더라도, 일상 작업 흐름의 도구 하나만 정확히 맞아도 주말을 쓸 가치가 있음
-
Homepage
-
개발자
- 한 사람을 위해 만든 데스크톱