Obsidian Bases 가이드: 볼트 안에 노코드 데이터베이스 구축하기
Obsidian의 자체 노코드 데이터베이스 뷰인 Bases를 배워보세요: Base 생성, 노트 속성을 열(Column)로 변환, 필터링 및 그룹화, Bases vs Dataview 선택 기준까지 안내합니다.

Obsidian Bases 가이드: 볼트 안에 노코드 데이터베이스 구축하기
Obsidian에서 노트를 정리하느라 시간을 보내본 적이 있다면, 볼트(Vault)가 데이터베이스처럼 작동했으면 좋겠다고 바랐을 것입니다. 진행 중인 모든 프로젝트를 한곳에서 보고, 읽기 목록을 상태별로 필터링하며, 모든 회의록을 특정 사람과 연결하고 싶을 때, 쿼리 코드를 단 한 줄도 작성하지 않고 이 모든 것을 해결할 수 있습니다. 이것이 바로 Obsidian Bases가 제공하는 기능입니다. 기존에 작성한 Markdown 노트를 기반으로 구축되는 자체 노코드(No-code) 데이터베이스 뷰입니다.
Bases는 연결된 노트의 자연스러운 진화입니다. 링크가 볼트를 그래프로 엮어준다면, 속성(Properties)은 해당 그래프를 필터링하고 분석할 수 있는 구조화된 데이터로 변환해 줍니다. Base는 정보를 별도의 파일이나 독자적인 포맷에 저장하지 않습니다. 노트에 이미 작성되어 있는 YAML 속성을 읽어와 수정 및 필터링이 가능한 테이블, 카드 갤러리, 리스트 또는 지도 형태로 보여줍니다. 데이터는 순수 텍스트(Plain-text)로 유지되며, 휴대성이 뛰어나고 미래 호환성이 보장됩니다.
본 가이드에서 다룰 내용은 다음과 같습니다:
- Base의 실제 개념과 이해를 돕는 마인드 모델
- Dataview, Notion 및 일반 검색과 Bases의 비교
- 플러그인 활성화 및 5분 만에 첫 Base 생성하기
- 뷰가 깨지지 않도록 속성(Property) 설계하기
- 노트의 필터링, 정렬 및 그룹화
- 4가지 뷰 유형과 이를 임의의 노트에 임베드하는 방법
- 바로 활용 가능한 사례: 읽기 목록, 프로젝트 트래커, CRM, 콘텐츠 캘린더
- 솔직한 한계점과 명확한 의사결정 프레임워크
Obsidian Bases란 무엇인가 (그리고 왜 중요한가)?
Base는 기존 Markdown 노트 위에 얹어지는 저장된 노코드 데이터베이스 뷰입니다. Obsidian은 Bases를 핵심(Core) 플러그인으로 추가하였으며, 이를 통해 쿼리 언어 없이도 노트와 YAML 속성을 수정 및 필터링 가능한 뷰로 바꿔줍니다.
가장 중요한 개념은 바로 마인드 모델입니다: Base는 데이터를 저장하는 별도의 데이터베이스가 아닙니다. Base는 하나의 ’뷰(View)’입니다. 데이터 자체는 일반 노트의 Frontmatter(YAML 속성)에 존재합니다. .base 파일은 이러한 노트를 어떻게 볼 것인지에 대한 설정(포함할 노트, 열로 표시할 속성, 필터링 및 정렬 방식)만을 저장합니다.
이는 몇 가지 중요한 이점을 제공합니다:
- 데이터가 순수 텍스트로 유지됩니다. 내일 Base를 삭제하더라도 뷰 설정 외에는 아무것도 잃지 않습니다. 모든 노트와 속성은 Markdown 형태로 볼트에 그대로 남아있습니다.
- 미래 호환성이 보장됩니다. 특정 플랫폼 종속(Lock-in)이나 내보내기 단계, 독자적인 데이터베이스 포맷이 없습니다. 이는 Obsidian을 지속 가능한 개인 지식 관리 시스템으로 만들어주는 동일한 철학입니다.
- 볼트와 함께 확장됩니다. Base는 노트로부터 실시간으로 데이터를 읽어오므로 노트에 속성을 추가하는 순간 해당 노트가 관련 뷰에 즉시 나타날 수 있습니다.
링크가 볼트의 연결 조직이라면, 속성은 구조화된 레이어이고, Bases는 그 구조를 시각화하고 활용 가능하게 만들어주는 렌즈입니다.
Bases vs Dataview: 노코드 GUI인가, 쿼리 언어인가?
핵심 차이는 간단합니다: Bases는 시각적인 클릭 방식의 GUI인 반면, Dataview는 직접 코드를 작성하는 쿼리 언어입니다. Bases는 앱에 내장되어 있어 코드가 전혀 필요 없지만, Dataview는 고급 유즈케이스를 위해 DQL(Dataview Query Language)이나 JavaScript 학습을 요구합니다.
둘 다 동일한 출처인 노트 속성을 읽어오지만, 서로 다른 성향에 적합합니다:
- Bases는 속도와 접근성 면에서 우수합니다. 자체 제공 기능이므로 모바일을 포함해 매우 빠릅니다. 클릭으로 뷰를 구성하고, 테이블 셀에서 값을 직접 수정하며, 구문 오류를 디버깅할 필요가 없습니다.
- Dataview는 표현력 면에서 우수합니다. 노트 본문에 작성하는 인라인 필드(예:
due:: 2026-06-10), 계산된 텍스트 렌더링, Bases가 아직 처리하지 못하는 복잡한 커스텀 쿼리를 지원합니다. 하지만 코드 작성 부담이 큽니다.
“필터링된 노트 목록을 보여줘”라는 일반적인 작업에는 Bases가 더 빠르고 친숙한 선택입니다. 계산이 많은 대시보드나 인라인 필드 워크플로우에는 Dataview가 여전히 제 역할을 합니다. 각 도구가 넓은 워크플로우에 어떻게 어울리는지 알고 싶다면 작업 관리 가이드를 참고하세요.
팁: 두 도구 중 하나만 선택할 필요는 없습니다. 많은 볼트가 일상적인 리스트 및 필터 뷰에는 Bases를 사용하고, 복잡한 계산이 필요한 일부 대시보드에는 Dataview 블록을 병행하여 사용합니다.
첫 Base를 활성화하고 생성하는 방법
설정 → 커뮤니티/핵심 플러그인 메뉴에서 “Bases”를 활성화하세요. 이때 “Properties(속성)” 기능도 함께 활성화되어 있는지 확인하세요. 깔끔한 속성 관리가 Bases 활용의 핵심이기 때문입니다. 활성화 후 Base를 생성하는 방법은 세 가지가 있습니다:
- 명령어 팔레트: 팔레트(Ctrl/Cmd + P)를 열고 “Create new base”를 실행합니다.
- 리본 버튼: 왼쪽 리본 바에 있는 “New base” 아이콘을 클릭합니다.
- 폴더 우클릭: 파일 탐색기 폴더에서 우클릭 후 “New base”를 선택하여 처음부터 해당 폴더로 범위를 한정합니다.
초보자들이 흔히 당황하는 동작이 있습니다: 새 Base는 처음 생성 시 볼트 안의 모든 파일을 보여줍니다. Dataview의 FROM 절 같은 것이 기본으로 지정되어 있지 않습니다. 전체 범위에서 시작하여 필터로 줄여나가는 방식입니다.
5분 만에 만드는 첫 Base:
- 위 방법 중 하나로 Base를 생성합니다.
- 볼트 내 모든 노트를 보여주는 뷰가 열립니다.
- 필터를 하나 추가하여 범위를 줄입니다 (예: “file is in folder Projects” 또는 “has tag #project”).
- 원하는 속성(상태, 마감일, 영역 등)을 선택하여 열(Column)을 추가합니다.
- 열 하나를 기준으로 정렬하면 완료됩니다.
작동하는 데이터베이스 뷰를 만드는 데 필요한 과정은 이것이 전부입니다.
팁: 좁은 범위에서 시작하세요. 단일 폴더나 태그로 범위를 한정한 Base가 전체 볼트를 한 번에 보여주려는 Base보다 훨씬 다루기 쉽습니다.
깨지지 않는 속성을 설계하는 방법
Base의 열은 세 가지 출처에서 발생합니다:
- 노트 속성: 각 노트에 작성하는 YAML Frontmatter (
status,priority,due등). 수정 가능합니다. - 파일 속성:
file.path,file.ctime,file.mtime,file.tags같은 내장 메타데이터. 읽기 전용입니다. - 수식 속성: 다른 속성을 기반으로 Base 내부에서 계산된 값.
지원되는 속성 유형에는 텍스트, 리스트, 숫자, 체크박스, 날짜, 날짜 및 시간, 링크가 포함됩니다. 올바른 유형을 선택하는 것이 중요합니다. date 타입 속성은 날짜 구간으로 필터링할 수 있지만, 동일한 값이 순수 텍스트로 저장되어 있으면 날짜 필터링이 불가능합니다.
신뢰할 수 있는 Base를 위한 핵심 전제 조건은 **속성 위생(Property Hygiene)**입니다:
- 유형을 일관되게 유지하세요. 한 노트에서는 값을 링크로 저장하고 다른 노트에서는 순수 텍스트로 저장하지 마세요.
- 속성 이름을 노드 간에 동일하게 사용하세요.
status,Status,state는 서로 다른 3개의 열로 인식됩니다. 하나를 정해 일관되게 사용하세요. - 인라인 수정 활용. Base 셀에서 값을 직접 변경하면 노트의 Frontmatter에 즉시 반영됩니다.
이 부분이 바로 훌륭한 템플릿 시스템이 빛을 발하는 지점입니다. 노트가 일관된 속성을 가진 템플릿으로 생성된다면 향후 어떤 Base도 매우 쉽게 구축할 수 있습니다.
참고: 속성을 도입하기 전에 생성된 이전 노트는 해당 필드가 비어있는 상태로 Base에 나타납니다. 값을 채워 넣을 때까지 해당 열은 빈칸으로 표시됩니다.
필터, 정렬 및 그룹화 작동 방식
Bases의 필터는 속성, 연산자, 값의 3부분 규칙으로 작성됩니다. 속성(status), 연산자(is, contains, is greater than, is empty), 값(active)을 선택합니다. and, or, not을 사용하여 여러 규칙을 중첩할 수 있습니다.
두 가지 수준의 필터링이 존재합니다:
- 전체(Dataset) 필터: 모든 뷰에 걸쳐 Base 전체에 적용됩니다 (예: “is in folder Projects”).
- 뷰별 필터: 단일 뷰에만 적용되며 전체 필터와 AND 조건으로 결합됩니다 (예: 진행 중인 항목만 표시).
자주 사용되는 패턴:
- 태그 포함:
file.tags에#project가 포함된 경우 필터링. - 폴더 범위: 파일이 특정 폴더에 있는 경우 필터링.
- 날짜 구간:
due가 오늘 이전이거나 향후 7일 이내인 경우 필터링.
정렬은 모든 열에서 오름차순 또는 내림차순으로 작동합니다. 그룹화를 사용하면 프로젝트를 상태별로, 도서를 장르별로 묶을 수 있으며 각 그룹은 접을 수 있는 헤더를 가집니다.
4가지 뷰 유형과 임베드 방법
Bases는 4가지 뷰 유형을 지원하며, 단일 .base 파일 내에 나란히 여러 개의 이름 있는 뷰를 보유할 수 있습니다:
- Table(테이블): 기본값. 인라인 수정 및 열 요약(개수, 합계)을 지원하는 행과 열.
- Cards(카드): 커버 이미지를 표시할 수 있는 갤러리 레이아웃. 읽기 목록에 적합합니다.
- List(리스트): 대시보드 및 지식 지도(MoC)에 적합한 compact 한 레이아웃.
- Map(지도): 지리적 좌표를 가진 노트를 지도 핀으로 표시합니다.
진정한 강력함은 **임베드(Embed)**에서 나옵니다. .base 파일명을 사용하여 임의의 노트에 Base를 임베드할 수 있습니다. 전체 Base가 아닌 특정 이름의 뷰만 임베드하려면 # 뒤에 뷰 이름을 붙이세요 (예: MyBase.base#Active).
맥락을 인식하는 this 참조도 지원됩니다. 임베드된 Base는 자신이 위치한 노트를 기준으로 상대 필터링을 수행할 수 있으므로, 특정 사람의 노트에 임베드된 Base는 해당 사람과 연결된 회의록만 보여줄 수 있습니다.
임베드는 Base를 독립된 페이지에서 노트의 생생한 구성 요소로 바꿔줍니다. 일일 노트에 “오늘 마감” 뷰를 임베드할 수 있습니다. 자세한 내용은 Obsidian 프로젝트 관리 가이드를 참고하세요.
모든 Base를 직접 조립하고 싶지 않다면, Obsibrain에서 사전 구성된 대시보드, 속성 스키마 및 PARA 폴더를 제공합니다.
실제로 무엇을 만들 수 있나요?
지금 바로 적용해볼 수 있는 4가지 구체적인 설정:
독서 목록 / 디지털 서가
- 속성:
title(텍스트),author(텍스트),status(텍스트: to-read / reading / done),rating(숫자),cover(이미지 링크) status별로 그룹화된 Cards 뷰 사용.
프로젝트 트래커
- 속성:
status(텍스트: planning / active / on-hold / done),area(링크),due(날짜),priority(숫자) status별로 그룹화하고due오름차순으로 정렬된 Table 뷰 사용.
개인용 가벼운 CRM
- 사람 노트:
type: person,company(텍스트),email(텍스트),last-contact(날짜) - 회의 노트:
type: meeting,attendees(사람 링크 리스트),date(날짜) type is meeting으로 필터링된 Base를 하나 만들고,this참조를 사용하는 뷰 필터를 적용하여 각 사람 노트에 임베드.
콘텐츠 캘린더
- 속성:
stage(텍스트: idea / draft / scheduled / published),publish-date(날짜),channel(텍스트) stage별로 그룹화되고publish-date순으로 정렬된 Table 사용.
이 각각의 예시는 일관된 속성을 가진 노트 폴더 하나와 하나의 Base로 구성됩니다. 깔끔한 제2의 뇌 템플릿이 있다면 구축이 더욱 쉬워집니다.
Bases vs Notion: 각각 언제 사용해야 할까요?
Bases는 로컬 기반에 무료이며 기본적으로 전체 볼트를 대상으로 작동합니다. 반면 Notion은 클라우드 기반이며 사전에 격리된 데이터베이스를 만들어야 합니다. Notion은 진정한 관계형 데이터베이스, 자동화를 위한 외부 REST API, 다중 사용자 협업에 강점이 있습니다.
한눈에 보는 의사결정 기준:
| 도구 | 사용해야 할 때 |
|---|---|
| 일반 검색 | 일회성으로 노트나 텍스트를 찾을 때. |
| Bases | 노트를 노코드로 필터링 가능한 리스트/테이블/갤러리로 볼 때. |
| Dataview | 인라인 필드나 Bases가 지원하지 못하는 복잡한 계산 출력이 필요할 때. |
| Notion | 진정한 관계형 데이터베이스, 외부 API, 팀 협업이 필수일 때. |
Bases의 솔직한 한계점:
- Frontmatter 전용. 본문에 작성된 인라인 필드가 아닌 YAML 속성만 읽습니다.
- 계산 능력의 한계. 수식 기능이 제공되지만 Dataview 수준의 스크립트 유연성에는 미치지 못합니다.
- Notion보다 부족한 관계형 기능. 롤업을 포함한 양방향 관계형 스키마가 부족합니다.
자세한 비교는 Obsidian vs Notion 비교를 참고하세요.
이 모든 구조를 완성형으로 활용하고 싶다면, PARA 폴더, GTD 및 아이젠하워 작업 관리, 사전 구축된 데이터베이스 뷰를 하나로 묶은 Obsibrain 템플릿을 활용해 보세요.
자주 묻는 질문 (FAQ)
Obsidian Bases는 무료인가요? 네. Bases는 Obsidian에 포함된 무료 내장 핵심 플러그인입니다. 추가 비용이나 구독이 필요하지 않습니다.
Bases가 Dataview를 대체할 수 있나요? 대부분의 필터링된 리스트 및 테이블 유즈케이스에서는 대체 가능합니다. 인라인 필드나 복잡한 스크립트 쿼리가 필요할 때만 Dataview를 유지하세요.
모바일에서도 작동하나요? 네. 자체 구현 기능이므로 대용량 볼트에서도 모바일 작동 속도가 Dataview보다 눈에 띄게 빠릅니다.
Base의 데이터는 어디에 저장되나요?
노트의 YAML Frontmatter 속성에 저장됩니다. .base 파일은 뷰 설정(필터, 열, 정렬, 그룹화)만 저장합니다.
결론
Bases는 쿼리 언어를 배울 필요 없이 Notion이 가진 데이터베이스의 강력함을 로컬 순수 텍스트 볼트로 가져옵니다. 속성 관리 규칙 위에서 작동하는 시각적 레이어로 활용해 보세요. 링크가 노트를 연결된 그래프로 만들었듯, 속성은 그 그래프를 구조화된 데이터로 만들어주며 Bases는 이를 유용하게 활용할 수 있게 돕는 렌즈입니다. 오늘 작은 Base 하나로 시작해 보세요!
이어서 읽기
Obsibrain 데모를 살펴보세요.
Obsibrain이 나의 업무 방식에 어떻게 맞는지 살펴보세요. 이메일로 데모 보관함을 받아 Obsidian에서 직접 둘러보세요.
데모 후속 안내와 혜택 이메일이 포함됩니다. 언제든지 수신을 거부할 수 있습니다. 개인정보 처리방침