3-2. 첫 기능들과 1차 위기 2025-10-19 ~ 2026-02-28
10-19: 기능 추가의 날
Cheolsu-Query v1
트래픽이 많아지면 필터링이 필수다. Monaco Editor 기반의 쿼리 필터 에디터를 만들었다:
FSD(Feature-Sliced Design) 구조로 model → lib → hooks → UI 레이어를 차근차근 쌓았다. 이 시점에서는 간단한 파서였지만, 나중에(03-12) Grafana Loki 스타일 쿼리 빌더 UI로 발전한다.
이미지/미디어 프리뷰
HTTP 응답의 Content-Type을 보고 이미지, 비디오를 감지해서 프리뷰를 제공. Web Worker로 Base64 변환, Tauri 클립보드로 이미지 복사 지원.
컨텍스트 메뉴와 트랜잭션 핀
네트워크 테이블에 우클릭 컨텍스트 메뉴를 추가하고, 중요한 트랜잭션을 핀으로 고정하는 기능.
Rust 크레이트 분리
refactor: move rust crates to crates/ directory — 모든 Rust 코드를 crates/ 디렉토리로 이동하고 워크스페이스를 정리했다. oxlint도 CI에 추가.
10-20 ~ 21: 파일 기반 바디 저장 성능
트러블슈팅: 메모리 폭발
프록시를 켜놓으면 모든 HTTP 응답 바디가 메모리에 쌓인다. 이미지, 동영상, 큰 JSON이 합쳐지면 금방 GB 단위가 된다.
해결: 일정 크기 이상의 바디는 파일 시스템에 저장.
커밋 흐름을 보면 이 기능이 어떻게 진화했는지 보인다:
feat: add body filesystem storage with size threshold— 기본 구현feat: add cache storage directory and cleanup functions— 캐시 관리feat: integrate cache directory with proxy handler— 프록시에 연결feat: force media files to be stored in filesystem— 미디어는 무조건 파일feat: implement Tauri File System API for direct file reading— Tauri API로 읽기fix: resolve forbidden path error using relative path with BaseDirectory.Cache— 경로 권한 문제fix: use relative paths for file system access in Tauri v2— Tauri v2 호환
Tauri의 파일 시스템 접근 권한 모델과 씨름하면서 7커밋이 들어갔다.
10-24 ~ 25: 마지막 활발한 개발
- 앱 시작 시 캐시 자동 정리
- CONNECT 요청 URL 파싱 개선
- 터널 모드에서 HTTP 요청/응답 감지 및 UI 전송
10월 25일, CONNECT 요청 관련 커밋을 마지막으로 3개월간 커밋이 멈춘다.
공백: 1차 위기 (2025-10-25 ~ 2026-01-30)
게을러짐
주도적으로 의견을 제시하던 내가 게을러졌음. 방향을 잡아주는 사람이 안 움직이니 나머지 2명도 자연스럽게 손을 놓게 됐다. 오픈소스 프로젝트가 죽는 가장 흔한 패턴이다.
2026-01-30: 잠깐 복귀
3개월 만에 잠깐 돌아왔다. HWP 파일 감지 기능을 추가하고 Cursor 커맨드 파일을 정리하는 정도. 의미 있는 진전은 아니었다. 그리고 HWP 관련 변경은 바로 revert됐다.
공백: 2차 위기 — 팀 해체 (2026-01-30 ~ 02-28)
3명이 서로 다른 회사를 다니게 되면서 물리적으로 함께 작업하기 어려워졌다. 프로젝트는 사실상 흐지부지. 또다시 1개월의 공백.
다음 커밋이 바로 bun 전환이다. 부활의 시작.
쿼리 필터, 이미지 프리뷰, 파일 기반 저장까지 만들었지만, 주도하던 내가 게을러지고 팀이 해체되면서 총 4개월간 프로젝트가 멈췄다.