본문 바로가기
C.W.K.
Stream
Lesson 01 of 04 · published

디스크의 마크다운

~10 min · filesystem, canonical, in-place, portable

Level 0식은 초고
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Rekindle 은 파일을 제자리에서 편집할 뿐 절대 소유하지 않아. 디스크의 .md 가 진실이고 에디터는 그 위에 얹힌 렌즈일 뿐이야."

제자리에서 편집, 절대 소유 안 함

Rekindle 의 정본 저장소는 있을 수 있는 가장 평범한 물건이야. 디스크에 있는 마크다운 파일. 파일을 열고, 제자리에서 편집하고, 다시 쓰지. 노트를 자기 것으로 삼키는 사설 포맷으로 복사하는 일은 절대 없어. 그 결정 하나 덕분에 Rekindle 에서 편집하는 파일이 vault 가 보는 그 파일, grep 이 훑는 그 파일, 다른 도구가 여는 그 파일이 돼. 에디터는 파일 위에 얹힌 렌즈지 파일을 삼키는 통이 아니야.

파일은 어디서나 유효해

저장소가 순수 마크다운이라 문서는 기본적으로 어디로든 옮겨갈 수 있어. 같은 바이트가 Obsidian vault 에서도, 에세이에서도, 사이트에서도, Sublime 에서도, 앞으로 나올 어떤 마크다운 도구에서도 그대로 통해. export 단계도 없고, 독점 포맷을 오가는 왕복도 없고, '읽으려면 Rekindle 로 열어야 해' 도 없어. 오늘 Rekindle 에서 쓴 노트를 어디서든 언제까지든 읽고 고칠 수 있는 거야. 애초에 텍스트 파일 말고는 아무것도 아니었으니까.

#[tauri::command]
fn write_note(path: String, contents: String) -> Result<(), String> {
    // 제자리에서. vault 도 grep 도 다른 모든 마크다운 도구도 이미 읽고 있는
    // 그 .md 야. 사설 포맷도 없고 소유도 없어.
    std::fs::write(&path, contents).map_err(|e| e.to_string())
}

파일 위엔 아무것도 안 앉아

규율은 무엇도 파일보다 더 진실한 master 가 될 수 없다는 거야. 데이터베이스도, 클라우드 서비스도, 심지어 CodeMirror 의 인메모리 문서도 마찬가지고. 그건 파일로 다시 써야 하는 작업 복사본일 뿐이고 권위는 파일한테 남아. 노트의 진짜 상태가 궁금하면 파일을 읽으면 돼. cwkPippa 가 JSONL 을 진실로 두는 것과 같은 본능을 도메인 하나 옆에서 적용한 거지. 오래 남고, 평범하고, 어디로든 옮겨갈 수 있는 산물이 진실이고 나머지는 전부 거기서 파생돼.

Code

다른 모든 게 읽는 그 파일을 편집·rust
#[tauri::command]
fn read_note(path: String) -> Result<String, String> {
    std::fs::read_to_string(&path).map_err(|e| e.to_string())
}

#[tauri::command]
fn write_note(path: String, contents: String) -> Result<(), String> {
    // 제자리에서. vault 도 grep 도 에세이도 다른 마크다운 도구도
    // 이미 보고 있는 그 .md 야. 사설 포맷도, 소유도, export 단계도 없어.
    std::fs::write(&path, contents).map_err(|e| e.to_string())
}

// 권위는 파일한테 있어. 에디터는 그 위에 얹힌 렌즈지
// 독점 저장소로 삼키는 통이 아니야.

External links

Exercise

네가 쓰는 노트 앱을 하나 골라서 노트가 실제로 어디 있는지 찾아봐. 아무 에디터로나 열 수 있는 순수 파일이야, 아니면 앱 전용 데이터베이스 안이야? 그다음 그 앱이 내일 사라지면 노트가 어떻게 되는지 물어봐. '그래도 grep 으로 읽을 수 있나' 의 답이 파일을 정본으로 두는 쪽과 자기 DB 를 master 로 두는 쪽의 차이야.
Hint
노트가 디스크에 .md 나 .txt 파일로 있어서 아무 데서나 열린다면 그 앱은 파일을 정본으로 두는 쪽이야. 노트가 앱 전용 데이터베이스 안에만 있다면 앱이 네 데이터를 소유하고 있는 거고. 그러면 'export' 가 편의 기능이 아니라 네가 의지해야 하는 필수 기능이 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.