한 사람을 위해 만든 데스크톱

1 day ago 3
  • 25년 만에 일상 프로그램 대부분이 직접 설계한 도구로 바뀌었고, Claude Code에 기능 추가와 버그 수정을 맡기며 기존 범용 도구를 하나씩 대체함
  • 전체 환경은 libc 없이 순수 x86_64 어셈블리로 픽셀과 키 입력을 다루는 CHasm 기반 계층과, crust 위의 Rust 애플리케이션 계층인 Fe₂O₃ 로 나뉨
  • CHasm 계층에서는 i3-wmtile로, kittyglass로, zshrshbare로, lessshow로 바뀜
  • 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에서 scribe로 바뀜
  • 파일 관리자는 rangerRTFM을 거쳐 pointer가 됨
  • 이메일, RSS, 채팅은 mutt, newsbeuter, 여러 웹 로그인에서 kastrup으로 바뀜
  • 캘린더는 Google과 MS 웹에서 tock으로 바뀜
  • 천문 패널은 astropanel에서 astro로 바뀜
  • 영화와 시리즈 도구는 IMDB-terminal에서 watchit로 바뀜
  • 아직 남은 외부 도구는 IRC와 다른 채팅용 WeeChat, 정기적으로 쓰는 유일한 GUI 프로그램인 Firefox뿐임

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) 가 더 현실적인 길이 됨
  • 전체 데스크톱을 대체하지 않더라도, 일상 작업 흐름의 도구 하나만 정확히 맞아도 주말을 쓸 가치가 있음
Read Entire Article