Caliu의 모든 앱은 노트를 SQLite에 보관해요. 이미 가지고 있는 모든 휴대폰, 브라우저, 컴퓨터 안에서 돌아가고 있는 작고 튼튼한 데이터베이스 엔진이에요. 서버도 SQLite를 써요. 어디서나 같은 엔진을 쓰기 때문에 노트는 모든 기기에서 정확히 같은 모양이고, 옮기는 과정에서 잃어버리는 것이 없어요.
기기에서는
| 앱 | 노트가 저장되는 곳 |
|---|---|
| 웹 | WebAssembly로 컴파일한 SQLite, 브라우저의 로컬 저장소(IndexedDB)에 저장 |
| iPhone, iPad, Mac | 기기에 있는 SQLite 데이터베이스, GRDB로 접근 |
| Apple Watch | 자체 SQLite 데이터베이스, 그래서 근처에 휴대폰이 없어도 동작 |
| Android | 기기에 있는 SQLite 데이터베이스 |
iPhone, iPad, Mac에서는 위젯과 공유 익스텐션이 앱과 같은 데이터베이스 파일을 읽어요. 그래서 Caliu로 공유한 노트가 오프라인에서도 앱에 바로 나타나요.
검색도 기기에서 실행돼요. 로컬 데이터베이스를 살펴보기 때문에 즉각적이고, 연결 없이도 동작해요.
바탕에 있는 형식은 Markdown
모든 노트는 일반 Markdown 텍스트로 저장돼요. 나머지는 모두 그 텍스트에서 읽어 내요.
- 태그는 직접 쓴
#hashtags에서 나와요. - 노트 간 링크는 직접 쓴
[[note links]]에서 나와요.
텍스트가 원본이기 때문에, 노트의 어떤 부분도 숨겨진 형식 속에 들어 있지 않아요. 노트를 내보내면 전부 가져갈 수 있어요.
서버에서는
로그인하면 노트는 Caliu 서버에도 보관돼요.
- 노트와 태그는 Cloudflare D1에 있어요. Cloudflare 데이터 센터에서 돌아가는 SQLite예요.
- 첨부한 이미지와 파일은 파일 저장 서비스인 Cloudflare R2에 있어요. 오프라인일 때 이미지를 붙여 넣으면 기기에 보관해 두었다가, 다시 연결되면 백그라운드에서 업로드해요.
서버와의 모든 연결은 암호화돼요. 이것이 개인정보에 어떤 의미인지는 개인정보와 내 데이터 문서를 참고하세요.
Mac에서는 일반 파일로도
Mac 앱은 선택한 폴더에 노트를 일반 Markdown 파일로 보관할 수도 있어요. 노트 하나당 파일 하나예요. 어떤 앱에서 편집해도 변경 내용이 Caliu와 다른 기기로 돌아와요. 설정 방법은 Mac의 로컬 파일 문서를 참고하세요.
노트가 정말로 사라질 때
삭제한 노트는 휴지통에 30일 동안 남아 있다가, 서버가 완전히 지우고 모든 기기에도 똑같이 하라고 알려요. 보관한 노트는 자동으로 지워지지 않아요.