어디선가 "모놀리스의 저주"라는 말을 들은 적이 있다.
Ocean Brain을 쓰다 보니 이 말이 자꾸 떠올랐다. 플랫폼을 하나로 만드는 건 정말 중요하다고 생각한다. 애초에 메모가 여기저기 흩어지는 게 싫어서 만든 앱이다. 그런데 너무 많은 노트가 하나의 구역 안에 묶여 있으니까 이게 진짜 저주 같았다. 뭘 확장하기도 어렵고, 노트 하나 쓰는데도 자꾸 생각하게 만들었다.
그래서 이번 v0.19.0에 워크스페이스를 넣었다.
바로 만들지는 않았다
처음 이 얘기를 꺼냈을 때는 꽤 망설였다.
워크스페이스를 넣으려면 노트, 속성, 뷰는 물론이고 검색, 태그, 그래프, 캘린더까지 전부 "지금 어느 공간인가"를 알아야 한다. 인테그레이션은 싹 갈아엎어야 할 것 같았고, MCP 관리도 복잡해질 게 뻔했다. 생각할수록 작업이 점점 커졌다.
솔직히 이러다 Ocean Brain이 너무 어려운 도구가 되는 건 아닌가 싶기도 했다. 한 번은 "어차피 쓰는 사람도 별로 없는데 그냥 냅다 만들자" 했다가, 다시 계획만 세워두고 하던 기능부터 마무리했다.
그리고 스스로 물어봤다. 이걸로 얻는 것 때문에 잃게 되는 건 뭔지, 내가 그걸 감수할 준비가 됐는지.
문제는 다 섞인다는 거였다
답을 찾다 보니 내가 문제라고 생각하는 건 컨텍스트가 다 섞이는 거였다.
Ocean Brain에는 회사 일 문서도 있고, 개인 프로젝트 로드맵도 있고, 할 일도 있고, 공부나 생활 기록도 있다. 다이어트 기록이랑 할 일 기록이 한 공간에 다 같이 있고 다 같은 속성을 쓰는 건, 편할 수도 있지만 위험해 보였다.
뷰에서 다이어트 노트만 모아 보고 다이어트 관련 속성만 보이게 해도, 속성 관리 화면에 가면 다 섞여 있다. 노트에 속성을 고를 때도 모든 항목이 같이 나온다. 속성은 자꾸 늘어나는데 어디서 쓰는 건지는 점점 헷갈린다. 솔직히 사람 기억력으로 그걸 전부 기억하는 건 불가능에 가깝다.
같이 쓰면 다시 묶인다
더 애매했던 건 새로운 방식으로 일하고 싶을 때였다.
어떤 일을 기존 관성에 묶이지 않고 새로운 방식으로 해보고 싶은데, 속성을 같이 써야 한다면 결국 다시 묶인다. 상태값 하나를 바꾸려 해도 그 속성을 쓰는 다른 노트들까지 신경 써야 한다.
0.17에서 뷰를 한 번 다듬고 나니 비어 있던 기능이 좀 채워진 느낌이 들었다. 그런데 뷰랑 속성이 하나의 공간에 너무 묶여 있어서, 이 제약만 풀어주면 진짜 많이 좋아질 것 같았다.
그래서 속성은 워크스페이스마다 완전히 따로 두기로 했다. 공유도, 복사도 안 된다.
이건 꽤 고민했다. 어떤 속성은 여러 공간에서 같이 쓰고 싶을 수 있고, 그게 안 되면 "이건 왜 안 되지?" 하고 불편해할 수도 있다. 그런데 반대로 생각해 보면, 속성을 그 정도로 공유해야 한다면 애초에 워크스페이스로 나눌 만큼의 격리가 필요했던 걸까?
아무것도 복사가 안 되면 새 공간을 만들 때마다 속성과 뷰를 처음부터 만들어야 한다. 귀찮다. 근데 그 귀찮음 때문에 정말 따로 관리해야 하는 것만 나누게 된다고 생각했다. 기능을 덜 쓰게 하려는 게 아니라, 앱이 이렇게 쓰라고 작업 방식을 제안하는 거다. 잘못 쓰고 엉키는 것만큼 위험한 건 없다고 생각한다.
나누되, 흩어지지 않게
그렇다고 노트를 여러 곳에 흩어 놓고 싶지는 않았다. 그건 Ocean Brain을 만든 이유랑 반대다.
그래서 노트 자체는 하나의 모델로 두고, 노트끼리 참조도 그대로 되게 했다. 워크스페이스는 영역을 나눠서 관리 범위만 나누는 거다. 논리적으로만 나누고 물리적으로는 나누지 않는다. 노트 ID도 링크도 그대로다.
다른 워크스페이스의 노트를 링크하는 건 막지 않는다. 오히려 권장한다. 아이디어의 연결이니까.
그 밖에 신경 쓴 건 이 정도다.
- 워크스페이스를 하나만 쓰면 달라지는 게 거의 없다. 기존 데이터는 업데이트할 때 기본 공간인 Notes로 들어가고, 두 번째 공간을 만들어야 사이드바에 전환기가 나타난다.
- 노트 이동은 처음엔 안 넣으려고 했는데 결국 넣었다. 대신 속성을 조용히 버리지 않게, 옮길 공간의 어떤 속성으로 갈지 직접 고르게 했다. 맞는 속성이 없으면 옮겨지지 않는다.
- MCP에서도 워크스페이스를 골라서 조회할 수 있다. 범위를 안 정하면 예전처럼 전체를 본다.
지금은 이렇게 쓰고 있다
릴리즈하고 바로 나눴다. 지금은 세 개를 쓰고 있다.
| 워크스페이스 | 담는 것 | 속성 |
|---|---|---|
| Notes | 로드맵, 가이드, 로그 같은 문서 | 문서 구분, 개인 프로젝트, 회사 구분, 회사 프로젝트 |
| Task | 할 일 | 진행상태, 프로젝트, 회사 구분 |
| 개인 기록 | 공부나 생활 기록 | 이 공간 전용 프로젝트, 문서 구분, 진행상태 |
Notes는 원래 쓰던 기본 공간이고, 오래 남길 문서를 둔다.
할 일은 Task로 옮겼다. 2년 전에 적어둔 할 일도 ID와 링크를 그대로 가진 채 넘어왔다. 여기 진행상태에는 검토중이 있는데, 개인 기록 쪽 진행상태에는 없다. 프로젝트도 Notes에서는 개인 프로젝트와 회사 프로젝트를 따로 두는데, Task에서는 하나의 목록으로 합쳤다. Notes의 문서들은 건드리지 않고 할 일만 다른 방식으로 정리할 수 있었다.
개인 할 일과 회사 할 일은 나누지 않았다. 둘 다 같은 규칙으로 관리하니까, Task 안에서 회사 구분 속성이 있는지 없는지로 보드만 나눠서 본다.
대신 회사 구분 속성은 Notes와 Task에 똑같은 선택지로 두 번 만들어야 했다. 앞에서 말한 그 귀찮음이다.
아직은 잘 모르겠다
이번 작업은 생각보다 훨씬 컸다. 바뀐 파일만 150개가 넘는다.
이게 정말 맞는 방향인지는 아직 잘 모르겠다. 워크스페이스를 나눈 지 며칠 안 됐고, Ocean Brain이 너무 어려운 도구가 된 건 아닌가 하는 걱정도 여전히 있다.
그래도 적어도 개인 기록을 쓰다가 회사 속성을 들여다볼 일은 없어졌다. 당분간은 이렇게 나눠서 써볼 생각이다.
