이번 주는 새로 뭘 붙이기보다 이름을 바꾸고, 만들어둔 걸 다시 뜯어내는 데 대부분을 썼다. 코드가 늘기보다 줄어든 주에 가깝다.
가장 큰 건 abyss를 hyper로 바꾼 일이다. 몇 달을 붙잡고 있던 프로젝트인데, 어느 날 abyss(심연)라는 이름이 갑자기 무겁게 느껴졌다. 뭔가 계속 아래로 가라앉는 느낌이랄까. hyper가 heg랑도 결이 맞고(hyperengineeringgroup) 훨씬 가볍다. 근데 이름 하나 바꾸는 게 이렇게 손이 많이 갈 줄은 몰랐다. python 패키지명, iOS 디렉토리, 번들 id(com.heg.abyss → com.heg.hyper), 대시보드, 심지어 그룹 워크스페이스 심링크까지 abyss 흔적을 하나하나 걷어냈다. 순수하게 기능이 늘어난 건 하나도 없는데 며칠이 갔다. 그럼에도 다 바꾸고 나니 이상하게 개운했다. 이름이 바뀌니까 프로젝트를 대하는 내 마음도 살짝 달라지는 것 같다 (이건 좀 비합리적인가 싶기도 하고).
이름만 바꾼 게 아니라 안쪽도 많이 덜어냈다. 봇한테 붙여뒀던 기억 장치들 — episodic diary(봇이 스스로 일기를 쓰는), persona drift(성격이 시간에 따라 흔들리는), about_me(사용자에 대한 공유 지식) — 를 이번 주에 다 들어냈다. 만들 때는 다들 그럴싸했는데, 몇 주 지켜보니 제값을 못 하고 있었다. 화려한데 실제로 대화를 나아지게 하진 않는 것들. 결국 facts store 하나만 남겼다. 봇한테 뭘 기억하게 할까를 몇 달 고민했는데, 답은 자꾸 덜어내는 쪽으로 가는 것 같다. 만드는 것보다 지우는 게 더 어려운 건 왜일까.
그 자리에 넣은 건 좀 다른 결의 기억이다. skill distillation — 봇이 대화하면서 스스로 스킬을 써 내려가고, 그렇게 자란다. 봇이 초안을 만들면 대시보드에서 내가 승인하는 흐름을 붙였고, built-in / custom 구분도 없앴다. 봇이 만든 스킬이나 내가 만든 스킬이나 이제 같은 것이다. 봇이 스스로 만든 걸 내가 승인한다는 게 뭔가 묘하다. 얘가 자기한테 필요한 도구를 알아서 정의하고, 나는 그걸 검수하는 사람이 된 셈이다. 이게 지금 하는 게 맞나 싶으면서도, 이 방향이 재밌긴 하다. 겸사겸사 heg-core라는 공유 지식 저장소도 깔았다 (cron으로 추출 → git에 커밋 → qmd로 검색). 봇들이 각자 알게 된 걸 한군데 모으는 실험.
그리고 하나 인정할 것. 이번 주에 대시보드 ui를 shadcn에서 HeroUI v3로 통째로 옮기는 작업을 슬라이스 단위로 열몇 번에 걸쳐 했다. tooltip, tabs, switch, select, dialog, card, button... 하나씩 다 옮겼다. 그래놓고 결국 전부 되돌렸다. 다시 shadcn으로. 옮기고 나서 보니 얻는 것보다 잃는 게 많았고, 이럴 거면 안 하느니만 못하다는 판단이 섰다. 며칠치 커밋을 revert 한 방에 날려버리는 기분이 좋을 리는 없다. 근데 잘못 든 길에서 계속 걸어가는 것보단 낫다고 생각한다. 되돌릴 줄 아는 것도 능력이면 능력이고 (자기위안인가).
composer도 새로 짰다. slack 스타일로 입력하면서 서식이 바로 먹는 라이브 포매팅 컴포저를 웹 1:1 → 웹 그룹 → 네이티브 iOS 순으로 세 번 만들었다. 웹은 lexical로, iOS는 네이티브로, @멘션 자동완성까지. 같은 걸 세 번 만드는 건 지겨울 법도 한데 플랫폼마다 결이 달라서 생각보다 지겹진 않았다.
새 프로젝트도 하나 시작했다. denvik. macOS 사진 앱인데(표시 이름은 Loupe로 정했다) 핵심은 온디바이스 AI 사진 검색이다. 사진을 클라우드에 올리지 않고 내 맥 안에서만 검색하고 싶었다. MobileCLIP을 Core ML로 돌려서 온디바이스 임베딩을 만들고, 한국어로 검색하면 한→영 번역 훅을 태워서 매칭한다. 날짜/즐겨찾기/사진종류 필터에, 지역명을 넣으면 gps 반경으로 거르는 위치 기반 검색까지 붙였다. UI는 맥 사진 앱 결을 따라가면서 Liquid Glass를 입혔다. 아직 며칠 안 된 프로젝트라 거칠지만, 온디바이스로 자연어 검색이 실제로 먹을 때는 좀 신기하긴 했다. 이게 남이 쓸 만한 게 될지는 모르겠다. 일단 내가 쓰고 싶어서 만드는 중.
hyper 쪽만 보면 만든 것보다 이름 바꾸고, 뜯어내고, 되돌린 게 더 많은 주였다. 근데 이런 주가 오히려 다음 주를 가볍게 만드는 것 같기도 하고 (맞나?).
26.07.12 — 이번 주 revert 한 방이 제일 아팠음.