# 노션에만 있던 DB, 이제 Obsidian에서도! ![[Bases Intro 0.png]] [[Obsidian]]은 [[Notion]]에 비해 [[데이터베이스]] 기능이 부실하다는 평을 받습니다.[^1] 그도 그럴 것이 [[Notion]]은 [[관계형 데이터베이스]] 기능이 풍부하고, 각 데이터 항목은 하나의 페이지로 구성할 수 있기 때문에 데이터를 관리하기에 매우 편리합니다. 더구나 별도의 질의 언어를 공부하지 않아도 비교적 쉽게 원하는 구조로 데이터의 틀을 짤 수 있다는 장점이 있습니다. 물론 [[Obsidian]]에도 [[DataView]]라는 멋진 플러그인이 있으며 이와 연동되는 수많은 플러그인 또한 존재합니다. 그동안 [[DataView]]는 마치 [[Obsidian]]의 공식 플러그인처럼 그 입지를 다져왔습니다. 하지만 사용방법이 어렵다는 단점이 있었습니다. # Bases - Obsidian 만의 DB 접근법 하지만 이제 [[Obsidian]]이 공식적으로 [[데이터베이스]] 기능을 지원합니다! 코어 플러그인인 [[Bases]]가 드디어 [[Obsidian]] 1.9 버전에서 첫선을 보입니다. 사용법도 굉장히 쉽습니다. 마치 [[Notion]]의 [[데이터베이스]] 기능을 보는 듯합니다. [[Bases]]을 사용하면 [[Obsidian]]으로 만든 하나의 보관소에 있는 전체 파일에서 원하는 속성(property)만 뽑아내어 편리하게 다룰 수 있습니다. [[Notion]]의 데이터베이스 기능이 서로 분리된 채로 떨어져 있다면, [[Obsidian]]의 [[Bases]] 플러그인은 하나의 보관소 전체를 대상으로 하기 때문에 [[Notion]]보다 훨씬 더 강력하고 유연합니다. 물론 [[DataView]]처럼 특정 폴더에 있는 파일들만 뽑아낼 수도 있습니다. [[Bases]] 플러그인은 굉장히 빠릅니다. [[Notion]]에서 1,000건 이상의 데이터가 쌓이면 버벅거리는 것이 눈에 띠지만, [[Bases]]로 만든 데이터베이스는 정말 번개처럼 빠릅니다. [[Obsidian]] 노트에 착실하게 속성을 부여해 두셨던 여러분! 이제 드디어 데이터베이스를 자유롭게 쓰실 수 있게 되었습니다! 그런데 이 [[Bases]] 플러그인은 "얼리 액세스"(early access) 단계로 아직 베타테스트가 진행 중입니다. Insider Build를 사용하실 수 있는 서포터 여러분들은 바로 사용이 가능하시겠지만, 아직 정식으로 출시되지 않았기 때문에 다른 사용자분은 아쉽지만 조금 더 기다리셔야 하겠습니다. 이제부터 간단하게 [[Obsidian]]의 [[Bases]] 플러그인으로 영화 목록을 만들어 보겠습니다. # 영화 데이터베이스 만들어보기 ## 노트에 속성 부여하기 데이터베이스를 만들려면 노트에 속성을 부여해야 합니다. 저는 영화를 볼 때 다음과 같이 노트를 구성하고 관련 내용이나 감상평 등을 적습니다. 반복되는 속성을 쉽게 입력하는 데에는 '템플릿'이 적격입니다. ![[Bases Intro 1.png]] 지금까지 속성을 달아서 차곡차곡 쌓아온 이 노트들을 데이터베이스로 만들어 보겠습니다. ## New base - 새로운 데이터베이스 만들기 저는 `Bases` 라는 폴더를 루트에 하나 만들었습니다. 이렇게 하면 제가 만든 데이터베이스를 한 곳에 모아둘 수 있어서 편리했습니다. 반드시 이렇게 해야 할 필요는 없으니 여러분의 폴더 구조를 감안해서 적용하시면 되겠습니다. 이 폴더에서 오른쪽 클릭한 뒤 `New Base` 를 선택하면 새로운 데이터베이스가 생성됩니다. ![[Bases Intro 2.png]] 데이터베이스의 이름을 `영화 목록`으로 입력하고 엔터를 누르면 `Bases` 폴더 아래에 `영화 목록.base`라는 파일이 생깁니다. 이 파일에는 데이터베이스의 구조가 담겨 있습니다. 앞으로 이 파일을 클릭하면 언제든지 영화 목록 데이터베이스를 볼 수 있습니다. ## 필터 설정 - 원하는 노트만 뽑아보기 이제 새로 생긴 '영화 목록' 데이터베이스는 보관소에 들어 있는 전체 노트를 보여줍니다. 하지만 영화 목록에서는 영화에 관련된 노트만 표시해야 합니다. 저는 영화 노트에 `영화`라는 태그를 달아두었습니다. 데이터베이스 화면 오른쪽 위의 `Filter`를 다음과 같이 설정해 줍니다. ![[Bases Intro 3.png]] 이렇게만 해도 보관소에 있는 노트 중 `영화` 태그가 달린 노트들만 뽑아볼 수 있습니다. 번개처럼 빠르게 처리되는 손맛이 일품입니다. ## 속성 설정 - 표시하고 싶은 속성 선택하기 하지만 위의 화면을 보면 영화의 제목만 표시됩니다. 저는 여기에 몇 가지 속성을 더 표시하고 싶습니다. 데이터베이스 화면 오른쪽 위에서 `Properties`를 선택하여 화면에 표시할 속성을 선택합니다. ![[Bases Intro 4.png]] 속성 이름 왼쪽의 선택 상자를 클릭하면 데이터베이스 화면에 속성 값이 지체 없이 표시됩니다. 이를 활용하면 내가 표시하고 싶은 화면을 쉽게 구성할 수 있습니다. ## 열 너비와 제목 수정 - 보기 편하게 화면 꾸미기 그런데 화면을 보면 표의 열 너비가 마음에 들지 않습니다. 표의 머릿글 사이에 마우스 커서를 가져가면 강조 표시가 생기고, 이 표시를 마우스로 드래그하여 열 너비를 쉽게 조절할 수 있습니다. ![[Bases Intro 5.png]] 이렇게 열 너비를 조절하면 보고 싶은 항목을 더 많이 표시할 수 있습니다. 물론 화면 오른쪽으로 넘쳐 나간 내용을 보려면 `Shift`키를 누른 상태로 마우스 휠을 돌리거나 트랙패드 제스처를 사용하면 됩니다. 이제 영화 제목을 나타내는 파일 이름의 `name`을 좀 더 보기 쉬운 이름으로 바꾸어 보겠습니다. ![[Bases Intro 6.png]] `name` 머릿글에서 마우스 오른쪽 클릭한 다음 `Rename column...`을 클릭합니다. 이어서 `제목`과 같이 화면에 표시할 내용을 입릭하고 엔터를 누르면 바로 열의 제목이 바뀝니다. 여기서 꼭 기억해야 할 사항은, **열의 이름만 변경되고 속성(property) 이름은 변경되지 않는다**는 것입니다. ![[Bases Intro 7.png]] ## 정렬 - 보고 싶은 기준으로 데이터 정렬하기 데이터베이스에서 내가 원하는 열을 기준으로 데이터를 정렬할 수 있습니다. 만일 '선호도'를 기준으로 정렬하고 싶다면, 마우스 커서를 `선호도` 머릿글에 놓고 왼쪽 클릭하면 정렬을 바꿀 수 있습니다. 클릭을 반복하면 오름차순 정렬이나 내림차순 정렬을 순환할 수 있습니다. ![[Bases Intro 8.png]] 마지막 화면은 [[macOS]]에서 캡처한 것이고, 나머지 화면은 [[Windows]]에서 캡처한 것이라 화질 차이가 있습니다. 보시다시피 [[Windows]], [[macOS]], 그리고 모바일의 [[Obsidian]] 모두 1.9 버전 이상이라면 [[Bases]] 플러그인을 사용할 수 있습니다. # 한 걸음 더 가기 위하여... 지금까지 살펴본 내용은 [[Bases]] 플러그인의 핵심 기능이지만 이 기능들 말고도 훨씬 많은 기능이 있습니다. 아래에 간단하게 기능을 요약해 보겠습니다. - 함수: 필터와 표의 열에 여러 가지 함수를 사용할 수 있습니다. - 뷰: 뷰(화면 보기) 마다 조건을 다르게 설정하여 여러 개의 화면을 구성할 수 있습니다. 이를 테면 '2025년에 개봉한 영화'나 '봉준호 감독'의 영화만 다로 오마 올 수 있는 화면을 구성할 수 있습니다. - 내보내기: [[CSV]]로 파일을 내보내거나 외부 프로그램에 데이터베이스를 붙여넣을 수 있습니다. 현재는 제공되지 않지만 [[Obsidian]] 개발자들이 열심히 준비하고 있는 기능도 있습니다. - 다양한 형식의 뷰: 현재는 표(table) 형식의 뷰만 제공하지만 앞으로 여러 가지 형식의 뷰를 지원할 예정입니다. [[Notion]]에서처럼 목록, 카드, 갤러리, 달력, [[칸반 보드]], [[갠트 차트]]처럼 다양한 혐식을 지원했으면 좋겠습니다. - 외부 플러그인을 위한 [[API]]: 개발자 여러분들이 [[Bases]] 플러그인의 기능을 사용하거나 확장할 수 있도록 API를 지공할 예정입니다. # 지식 베이스와 데이터베이스의 만남 지금까지 [[Obsidian]] 1.9 버전부터 새로 도입된 [[Bases]] 플러그인에 대해서 살펴보았습니다. [[Obsidian]] 개발팀은 지금까지 속성(property) 편집기를 비롯하여 꾸준히 노트의 [[메타데이터]]를 다룰 수 있는 도구를 준비하더니, 이제 드디어 저장된 자료를 데이터베이스로 엮어낼 수 있는 기능을 제공합니다. 복잡한 질의 언어나 명령어를 알 필요 없이 직관적으로 조적하면 바로바로 화면에 내용이 반영되기 때문에 이제부터 [[Obsidian]]은 [[Notion]] 부럽지 않는 데이터 처리 능력을 가지게 되었습니다. 어서어서 [[Bases]]의 기능이 더해지고 안정화되어서 더 많은 분이 [[Obsidian]]으로 데이터베이스를 활용할 수 있는 날이 왔으면 좋겠습니다. [^1]: https://www.reddit.com/r/ObsidianMD/comments/1gzghto/obsidian_needs_a_proper_database_feature/