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

Bear 의 경험, Bear 의 저장은 아니고

~11 min · bear, own-db, reconcile-hell, library

Level 0식은 초고
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"라이브러리 경험은 가져오되 그걸 만들어낸 저장 모델은 거부해. 둘은 애초에 같은 게 아니었으니까."

Bear 가 잘하는 것

Bear 는 여기서 진심으로 감탄의 대상이고 이유도 분명해. 고요한 사이드바, 즉시 검색, 폴더 때문에 씨름할 일 없음. 그냥 쓰다 보면 나중에 찾는 것도 그냥 돼. 그 라이브러리 경험이야말로 Rekindle 이 파일 하나 열어놓고 쓰는 단계를 넘어섰을 때 딱 필요한 거고. 그래서 정직하게 물어야 할 건 이거야. Bear 를 얼마나 베껴야 하지?

Bear 의 저장이 치를 값

절대 베끼면 안 되는 부분이 저장 모델이야. Bear 는 노트를 자기 데이터베이스에 master 로 둬. 그걸 Rekindle 에 들여오는 순간 vault 가 쪼개져. DB 는 이렇게 말하고 .md 파일은 저렇게 말하니까, 두 master 사이를 맞추는 일을 영원히 떠안게 되지. 이 스택 전체가 거부하는 그 화해 지옥이 바로 이거고, cwkPippa 가 계속 동기화해야 할 두 권위 대신 진실 하나와 다시 지을 수 있는 미러를 택한 이유이기도 해.

Bear 모델        DB 가 master, 파일은 export      -> 화해할 두 master
Rekindle 모델    파일이 master, 인덱스는 파생     -> 하나의 master, 다시 짓는 뷰

# 라이브러리 UX 는 양쪽 다와 맞아. 둘 중 하나만
# 네 vault 를 쪼개고 화해 문제를 떠넘길 뿐이지.

경험을 가져, 저장 모델 말고

핵심은 라이브러리 경험과 자기 DB 저장 모델이 떼어놓을 수 있다는 깨달음이야. 사이드바도, 즉시 검색도, 폴더 때문에 씨름할 일 없는 것도 전부 뷰거든. master 데이터베이스 위에서만큼이나 순수 파일 위 파생 인덱스에서도 잘 계산돼. 그게 Obsidian 이 서 있는 자리고. Bear 의 고요한 라이브러리 느낌을, 파일이 정본인 저장 위에, Rekindle 이 이미 올라선 그 CM6 엔진 위에 얹은 거지. 그래서 Rekindle 은 경험만 가져오고 저장 모델은 두고 왔어.

이건 이름 붙여둘 만한 일반적인 수야. 어떤 앱에 감탄할 때, 네가 원하는 경험과 그걸 우연히 만들어낸 아키텍처를 떼어놔. 보통 둘은 같은 게 아니거든. 경험을 얻겠다고 아키텍처까지 베끼는 게, 원한 적도 없는 문제를 물려받는 지름길이야.

Code

경험은 저장 모델과 분리 가능해·text
모델              저장                                 귀결
----------------  -----------------------------------  --------------------------
Bear 모델         DB 가 master, 파일은 export          화해할 두 master
Rekindle 모델     파일이 master, 인덱스는 파생         하나의 master, 다시 짓는 뷰

라이브러리 UX (사이드바, 즉시 검색, 폴더 씨름 없음) 는
양쪽 다와 맞아. 뷰라서 어느 쪽에서든 계산되거든.

# 그러니 UX 는 Bear 에서, 저장은 vault 에서 가져오고
# 네 데이터를 쪼갤 그 한 가지만 거부하면 돼.

External links

Exercise

느낌을 베끼고 싶은 앱을 하나 골라서 목록 두 개를 써봐. 하나는 네가 실제로 원하는 경험, 그러니까 뷰와 상호작용. 다른 하나는 그 앱이 거기 도달하려고 내린 아키텍처 선택들. 두 번째 목록의 항목마다 첫 번째를 위해 그게 정말 필요한지 물어봐. 대부분은 아닐 거야. 그중 네 원칙을 깨는 것들이 딱 거부해야 할 항목이고.
Hint
경험은 '즉시 검색' 이나 '폴더 때문에 씨름할 일 없음', '고요한 사이드바' 같은 것들이야. 아키텍처는 '노트가 사설 SQLite master 에 산다' 같은 거고. 두 번째는 첫 번째를 얻는 한 가지 방법일 뿐 유일한 방법이 아니야. 그게 네 진실의 원천을 쪼갠다면 너한테는 틀린 방법이고.

Progress

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

댓글 0

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

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