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개월간 프로젝트가 멈췄다.