서버

Caliu 서버는 일부러 작게 만들었어요. 대부분의 일은 기기가 하기 때문에 서버가 맡은 일은 많지 않아요. 노트 사본을 보관하고, 기기 사이에 변경 사항을 전달하고, 연결한 도구에 응답하는 거예요.

Cloudflare Workers 위에서

서버는 TypeScript로 작성됐고 Cloudflare Workers에서 돌아가요. 한 나라의 한 대의 컴퓨터에 머무는 대신, 코드는 전 세계 Cloudflare 데이터 센터에서 실행되고, 각 요청에는 가까운 데이터 센터가 응답해요. 패치할 서버도 없고, 트래픽을 기다리며 놀고 있는 것도 없어요.

서버는 Cloudflare의 몇 가지 구성 요소에 기대고 있고, 각각 한 가지 일을 맡아요.

구성 요소Caliu에서 하는 일
D1노트, 태그, 그리고 동기화가 읽는 변경 기록을 담는 데이터베이스(SQLite)
R2첨부한 이미지와 파일을 위한 저장소
Durable Objects작고 오래 사는 도우미, 예를 들어 AI 도구 세션마다 하나씩
KV로그인 확인처럼 잠깐 쓰는 데이터를 위한 빠른 키-값 저장소

모든 것을 위한 하나의 API

앱, 공개 API, AI 도구를 위한 MCP 서버는 모두 같은 규칙과 같은 권한 확인을 거치는 같은 API를 사용해요. 앱만 쓰는 비밀 뒷문은 없어요. Caliu에서 할 수 있는 일이라면 API도 똑같이 처리해요. 그래서 caliuapp.com/docs의 API 문서는 앱이 쓰는 것을 그대로 설명해요.

MCP로 연결하는 AI 도구는 비밀번호를 절대 보지 못해요. 동의 화면에서 승인하면 도구마다 전용 키가 생기고, 연결된 앱에서 언제든 해제할 수 있어요.

정리 작업

몇 가지 예약 작업이 모든 것을 깔끔하게 유지해요.

  • 매시간 노트가 하나도 남지 않은 태그를 치워요.
  • 매일 밤 휴지통에 들어간 지 30일이 지난 노트를 완전히 삭제하고, 90일 동안 쓰지 않은 기기는 로그아웃시켜요.

이런 변경은 모두 변경 기록에 남기 때문에, 기기는 다음 동기화 때 그 소식을 전해 들어요.

이 도움말 센터까지

지금 읽고 있는 글은 Markdown 파일로 작성되어 서버에 담기고 앱으로 전송돼요. 앱이 사본을 보관하기 때문에 도움말도 오프라인에서 볼 수 있어요.