본 글은
2024.07.27에 발표한
"옵시디언과 Notion - 데이터 호딩 전략" 자료를 재구성 및 정리한 글입니다.
서론
데이터 호딩
데이터를 수집하는 일종의 강박증과도 같은 개념입니다. 보통은 부정적인 맥락에서 사용되는데 저는 그냥 데이터를 모아보자 라는 맥락에서 사용한 단어로, 데이터를 수집하고 분류하고 정리하는데에 관심이 있으신 분들은 reddit의
- r/DataHoarder : 데이터의 저장, 백업 등에 대해 다룸.
- r/dataisbeautiful : 데이터 시각화, 통계 관련.
등지로 가시면 관련 정보를 다수 얻으실 수 있습니다.
왜 나는 데이터를 모으고 있는가
중학생 때 스마트폰 파손으로 그 이전까지의 사진 몇천장을 날려먹은 이후로, 어떻게 하면 데이터를 안전하게 잘 보관할 수 있을까 라는 생각을 항상 가져왔습니다.
2019년부터 파일을 백업하기 시작하여서 현재 대부분의 해당 시기 자료를 보유하고 있으며, 이를 발표자료 하단의 대학입시 보고서 자료로 활용하여 입시를 편하게 진행한 바 있습니다.
자료를 잘 정리를 해두면 추후 보고서작성이라던지 서류처리, 혹은 추억회상이라던지 다양한 목적으로 잘 활용할 수 있다는것을 몸소 체감해 보았기에, 데이터를 어떻게 하면 잘 정리할 수 있을까 에 대한 관심이 매우 높은 편입니다.
노션과 옵시디언의 공통점
노션과 옵시디언 둘 모두 markdown 이라는 방법을 통해서 데이터를 저장합니다.
지금 이 블로그 글의 발행도 markdown 규격으로 작성하고 관리되고 있는 만큼, 개발자들에게는 참으로 익숙한 규격이 아닐 수 없는데, 마크다운의 장점은 텍스트 형태의 자료를 정리하는데 좋다는 점에 있습니다.
그런데 노션이던 옵시디언이던 마크다운을 통해서 "많은" 양의 서류를 작성하고 관리하다 보면, 폴더의 깊이가 한도끝도 없이 깊어진다는 단점이 존재합니다.
내가 원하는 문서를 찾아 들어가기 위해서 폴더를 5개씩 들어가야 하는 경험은 결코 유쾌하지 않습니다.
이걸 해결하기 위해서는 보통 바로가기나 즐겨찾기 기능을 많이들 활용 하시고, 실제로 노션에서는 즐겨찾기를 제공하고 있기 때문에 자주 접근하는 문서를 쉽게 찾아 들어갈 수 있도록 하고 있습니다.
이런 폴더 기반으로 문서를 관리하다 보면 폴더 구조를 뜯어고치는 시도를 반드시 하게 되는데, 이 경우 대단한 시간을 투자해야 해서 별로 효율적이지 못합니다. 이 정리를 어떻게 효율적으로 할 수 있을지에 대해서 공유해보는 시간을 가지려고 합니다.
본론 : 비교분석하기
둘을 비교하는 근본적인 이유는 둘 모두 markdown으로 관리되어서 어디 옮기거나 하기 매우 편하다는 점에 있습니다.
아까의 폴더 구조를 뜯어 고치고, 노션에서 옵시디언으로 건너가는 것처럼, 살면서 데이터를 옮기는 것이 대단히 중요해지게 됩니다. 하나의 서비스는 영원하지 않고, 저의 서비스에 대한 선호도도 영원하지 않습니다.
하지만 markdown이라서 생기는 단점도 분명히 존재합니다. 마크다운은
텍스트를 꾸미는 확장 문법
을 위해서 만들어진 규격이기 때문에, 사진이나 음악 영상 등의 형태의 자료는 사용하지 못합니다. 이런 문서를 보관하기 위해서는 노션이나 옵시디언을 고려하는게 아니라, 클라우드 서비스나 개인 NAS등에 대한 고민을 해보셔야 합니다.
저는 실제로 음악과 영상을 관리할 때는 jellyfin / gonic 등을 통해 관리하고 있습니다.
제한적으로나마 markdown에서 이러한 형태의 데이터를 다루고자 시도하는 경우들이 존재합니다. 노션이 이 경우에 속하는데, markdown에 기능을 추가해서 사진이나 표 등의 복잡한 자료를 커버하는 경우를 flavored Markdown이라고 부릅니다.
Github사에서도 자체적인 규격인 gfm을 만들어서 사용하고 있으며, 노션 역시도 마크다운으로 입력이 "가능한" 확장 규격을 자체적으로 만들었으며, 실제 저장은 json규격으로 저장하여 사용하고 있습니다.
당연히 규격이 달라진 만큼 다른 프로그램이나 서비스로 옮겨갈 때에 장벽이 될 수 있다는 것이 단점입니다.
차이점
온 / 오프라인
둘의 가장 큰 차이점은 노션은 온라인 지원을 핵심 기능으로 내세우며, 옵시디언은 로컬에 저장된다는것을 핵심으로 내세우고 있다는 점에 있습니다.
privacy나 performance에 중점을 두는 경우, 내가 만든 데이터에 대한 주권을 내가 가져가고 싶으신 분은 옵시디언을 선택하는것이 유리하고
편의성이나 connectivity에 중점을 두는 경우 별 고민 안해도 알아서 해주는 노션을 사용하는 경우가 훨씬 편리할 것입니다.
정리 규모의 차이
옵시디언은 로컬 파일으로 저장되는 만큼 파일이 많고 정리하고 싶은 내용물이 많을수록 압도적으로 유리해집니다.
옵시디언의 강점은 파일이 많은 경우에 편리하게 작동할 수 있도록 설계되어 있다는 것인데, graph view도 이경우에 속합니다.
- 폴더 경로
- 태그
- 문서에 붙은 추가 속성
- 문서 안에 들어간 특정 단어
등을 인식해서 다양한 색깔을 매겨줄 수 있고, 서로 연결시킨 글들이 가깝게 배치되는 것을 통해서 2차원적인 폴더 뷰를 만들 수 있습니다.
그래프에는 정점과 간선이라는 두가지 개념이 존재합니다. 옵시디언의 graph view에서는 각각의 문서들이 정점으로, 문서와 문서가 서로 연관이 있는 경우 간선을 통해 연결되는 형태로 표현되게 됩니다.
- 정점의 수가 많을수록
- 하나의 정점에 많은 간선이 붙을수록
- 간선이 없는 정점의 갯수가 적을수록
옵시디언으로 관리하기가 적합합니다. 이 특징으로 인해 일반적으로는 단점인 경우를 커버할 수 있기도 합니다.
옵시디언은 확장문법을 거의 사용하지 않은 markdown을 사용합니다. 따라서 그냥 작성하고 복사해 붙여넣기만 해도 블로그에 글을 쓸 수 있다던지 하는 편의성을 줍니다.
하지만 이러한 특징 때문에 노션에서 자주 사용되는 2-col 에 대한 지원이 거의 없다시피 합니다. 확장 플러그인으로 이 문제를 해결하려고 시도해 보았습니다만 오른쪽과 같이 복잡한 방법을 통해 명시해주어야 하고
매우 중요한 포인트로 그냥 못생기게 나옵니다
그렇기 때문에 옵시디언에서는 단일 파일에 많은 내용을 저장하기 보다는 여러개의 작은 파일을 서로 연결짓는게 핵심이 되고, 이 개념을 극적으로 활용하는 경우가 소위 말하는 제텔카스텐입니다.
정리
- 서로 연결이 필요없는 일기 / Todo리스트 등은 노션이 적합합니다
- 남에게 공유하는 자료는 노션이 적합합니다
- 내용이 많은 개인 공부나 지식/생각 정리는 옵시디언이 적합합니다
- 블로그 초안은 markdown이라 옮겨넣기가 쉬운 옵시디언이 적합합니다
핵심은 둘 중 하나만 쓸 이유가 없다는 데에 있습니다.
상황에 맞는 프로그램을 사용해보는건 어떠실까요
데이터 호딩 전략
여기부터는 데이터를 어떤 형태로 저장하는게 좋을지,
모아둔 데이터를 어떻게 사용할 수 있을지에 대한 개인적인 제안 사항입니다.
노션 - RestAPI 활용하기
노션은 외부 공개 기능을 매우 적극적으로 가져가고 있는데, 그 중에서도 아직 널리 퍼지지 않은듯 하여서 다뤄봅니다.
노션의 데이터베이스는 그냥 단순히 내 데이터를 적재해두는 것 뿐만 아니라, 그 데이터를 써먹을수도 있게 해줍니다.
평균 초당 3번의 request를 처리해주는 notion api를 사용하면, 노션의 데이터베이스에 있는 값을 뽑아서 원하는 대로 사용할 수 있게 해줍니다.
상단에 첨부한 예시를 포함하여,
- 개인정보 제공동의서와 같은 문서 관리
- 데이터베이스 값을 뽑아 처리하기
- 노션에 수기로 적던 값을 자동으로 넣어주기
등의 다양한 사용방법을 가지고 있습니다.
저의 경우에는 윗 블로그에서와 같이 자기소개 페이지를 제작할때 가끔씩 갱신해주어야 하는 학력, 대외활동 등의 값들을 노션 데이터베이스에 적재 후 홈페이지 개발에 활용하고 있습니다.
데이터가 많아지면 많아질수록 귀찮아 지는 부분이
어떤 데이터를 원본으로 관리할 것인가
인데, 숫자나 문자 같은 text값들을 관리할 때 노션을 원본으로 함으로써 이 문제를 해결할 수 있었습니다.
노션 - template 활용하기
노션의 데이터베이스는 템플릿 기능을 활용할 수 있는데, 이 기능을 사용할 경우 문서를 특정 조건에 따라 생성하는게 가능합니다.
- 매일 매일 쓰는 일기
- 매주 쓰는 스크럼 회고
- 습관 트래킹
같은 매일 반복되는 task의 경우 템플릿 기능을 활용하면 편하게 관리할 수 있습니다. 서로 연관성이 없는 이러한 유형의 문서의 경우 옵시디언의 graph view 상에서 가장 모서리쪽으로 밀려나기 때문에, 옵시디언에서 이러한 문서를 작성하는것은 그리 바람직하지 않습니다.
단 이 경우 문서가 빠르게 쌓이므로 1년정도 운용한 지금은 전체 리스트 확인 시 꽤나 렉이 걸리는 편입니다.
옵시디언 - graph 활용하기
graph view를 적극적으로 활용하시는 분들은 보통 제텔카스텐을 많이들 시도하는데, 저의 경우에는 문서를 작게작게 매번 쪼개고 연결하는 과정이 너무 귀찮아서 단일 파일에 내용을 좀 몰아서 넣고 있습니다.
제 정리 방법의 경우에는 기본적으로 project와 task를 기준으로 관리합니다
project
앞으로 진행할 프로젝트입니다. 보다 장기적인 시점에서 진행하는 task라고도 할 수 있습니다
- 블로그 만들기
- 개인 서버 구축하기
- 특정 캠프 / 활동
- 2024 동아리활동
- 소프트웨어 마에스트로 15기 목차 문서
등이 이 분류에 속합니다.
task
보다 작은 분류의 할일들 입니다
- 국민대학교/중앙대학교 연합 대회 문서
- 개인서버에 올리는 프로그램들 구축 방법을 정리한 문서
- 블로그에 posting할 글감들
등이 이 분류에 속합니다.
정리하기
기본적으로 이러한 task들 간의 선후 관계를 -> 그래프로 표현합니다
서버 구축 (이 되어야) -> 블로그(를 올리고) -> 글을 씁니다
이렇게 선후관계를 만들어서 관리를 해주고 있는데, 이 그래프가 DAG의 형태가 되게끔 구상해주면 알고리즘 하더놈의 시점에서 그냥 위상정렬해서 어떤거 먼저 할지 고민을 안할 수 있게 만들어줍니다.
최근에는 일이 많아 별로 도움을 받았던 적이 없습니다만, 일정이 간간히 빌때 비어있는 곳을 채우는 느낌으로 문서를 확인하고 있습니다.
옵시디언 - plugins
플러그인에 대해서는 너무 잘 정리해주시는 분들이 많아 크게 설명하지는 않겠습니다. 추후 필요하다고 판단한다면 분량이 꽤 되는 만큼 아마 별도의 글로 분리하지 싶습니다.
저는 커스텀하는것도 귀찮다 싶어서
- remotely sync (개인서버와 동기화)
플러그인 한개만 사용하고 있습니다.
결론
텍스트 데이터 뿐만 아니라, 수많은 데이터를 체계적으로 정리하시면 생각보다 활용할 수 있는 사용처가 대폭 늘어나게 됩니다.
이 블로그도 그러한 맥락에서 유효합니다. 저 자신이 자주 접하는 문제를 해결하고자 처음에 블로그를 시작했던 기억이 있습니다. 지금도 제가 정리해놓은
같은 문서들을 참고하고는 합니다.
혹시 제 방법이 비효율적이라고 생각하시거나 더 효율적인 방법을 알고 계시다면 언제나 추천해주시면 좋을것 같습니다. 저 역시도 현재에는 본 글에서 소개한 방법으로 정리하고 있습니다만 추후 개선의 의향이 있습니다.
감사합니다.