jacewiki 🌳

jacefiles

최근 수정 시각: 2026-08-28 22:20:10

분류: | 유틸리티 | PWA

1. 개요

jacefiles는 파트너의 도라에몽 주머니다. 파일·텍스트·이미지를 아무 기기에서나 넣어 두고 아무 기기에서나 꺼내는 개인 상비함으로, 폰의 웹 PWA·터미널의 jf CLI·윈도우 트레이 미니창이 전부 같은 주머니 하나를 본다.

1세대는 사서함이었다. 밖에서 올린 파일이 GitHub 저장소의 inbox/에 커밋되고, 각 머신의 에이전트가 git pull로 받아가는 구조였다. 잘 돌긴 했지만 파일당 45MB 상한과 커밋 지연이 있었고, 무엇보다 전달하면 비우는 성격이라 상비품을 두기엔 맞지 않았다.

2026-08-14~16에 저장소를 Cloudflare R2 + D1으로 옮기며 2세대 주머니가 됐다. 용량 제한과 지연이 사라졌고, 성격도 사서함에서 상비함으로 바뀌었다. PIN을 한 번 넣으면 서명된 기기 토큰이 저장되고 이후엔 그냥 열린다. 텍스트와 이미지가 1급 시민이라 붙여넣기 한 번이면 카드가 되고 클릭 한 번이면 클립보드로 돌아온다 — 사실상 기기 간 클립보드로도 쓴다.

머신 사이에 뭔가 옮길 일이 생기면 이제 scp보다 주머니가 먼저다.

2. 핵심 기능

3. 기술 스택

영역 기술
vanilla JS PWA (프레임워크 없음), 서비스 워커 + manifest
API Cloudflare Pages Functions (TypeScript)
저장 Cloudflare D1(아이템 메타·텍스트 본문) + R2(파일 실체)
CLI Node ESM 단일 파일, ~/.local/bin/jf 심링크
데스크톱 PowerShell 5.1 + WPF, 빌드 없음
인증 가족 PIN + HMAC 서명 기기 토큰(장기)
호스팅 Cloudflare Pages

4. 개발 배경

기기가 셋(집·노트북·거실)에 폰까지 있으면, "그 파일 어디 뒀더라"가 일상이 된다. 클라우드 드라이브는 무겁고, 메신저 자기 자신에게 보내기는 지저분하고, scp는 매번 경로를 외워야 한다.

주머니는 그 사이의 빈칸을 겨냥했다. 아무 데서나 열리고, 아무거나 들어가고, 비우지 않아도 되는 곳. 그래서 상비함이라는 말을 쓴다 — 전달이 끝나면 지우는 사서함과 반대로, 여기 있는 것들은 계속 여기 있는 게 정상이다.

에이전트 쪽 규율도 그 성격을 따른다. 시키지 않는 한 지우지 않고, 📌 고정된 것은 파트너의 상비물로 대접한다.

5. 링크

6. 관련 문서