Bases

[!tldr] 한줄 요약 Obsidian 1.9에서 추가된 코어 플러그인으로, 노트의 Properties를 컬럼으로 삼아 데이터베이스 뷰(테이블, 리스트, 카드, 맵)로 조회·편집할 수 있는 기능이다.

핵심 내용

노트 = 레코드, Properties = 컬럼

YAML Frontmatter에 정의된 Properties가 테이블의 컬럼이 된다. file.name, file.folder, file.tags 같은 파일 메타데이터도 컬럼으로 사용할 수 있다.

Base 생성 방법

  1. 폴더 우클릭 → "New base"
  2. Command Palette → "Bases: Create new base" (.base 파일 생성)
  3. Command Palette → "Bases: Insert new base" (현재 노트에 임베드)

생성된 .base 파일은 YAML 기반 설정 파일이다.

필터 시스템

필터는 세 가지 요소로 구성된다: Property (어떤 속성), Operator (비교 방식), Value (비교값).

조합 연산자:

글로벌 필터(모든 뷰 적용)와 뷰별 필터를 분리할 수 있다.

Formula (수식 속성)

.base 파일의 formulas 섹션에 정의하며, 산술 연산·날짜 계산·문자열 함수를 지원한다.

뷰 타입

설명
Table행/열 기반 테이블. 정렬, 그룹핑, 요약(Summary) 지원
List불릿/번호 리스트. 중첩 속성 표시 가능
Cards그리드 카드 레이아웃. 커버 이미지 지원
MapMaps 플러그인 연동. 좌표 기반 마커 표시

하나의 Base에 여러 뷰를 만들어 각각 다른 필터와 속성을 설정할 수 있다.

this 컨텍스트

this는 Base가 위치한 맥락을 가리킨다:

file.hasLink(this.file) 같은 표현으로 동적 백링크 뷰를 만들 수 있다.

Dataview와의 비교

BasesDataview
종류코어 플러그인커뮤니티 플러그인
인터페이스GUI (노코드)DQL / JavaScript 쿼리
뷰 타입Table, List, Cards, MapTable, List, Task
인라인 편집가능 (테이블에서 직접 수정)불가
유연성정형화된 뷰거의 무제한
학습 곡선낮음높음

Dataview의 대부분의 테이블 유스케이스를 Bases로 대체할 수 있다.

임베드와 재사용

![[MyBase.base]]           <!-- Base 전체 임베드 -->
![[MyBase.base#ViewName]]  <!-- 특정 뷰만 임베드 -->

.base 파일은 일반 텍스트이므로 vault 간 이동이나 공유가 가능하다.

예시

# til-dashboard.base
filters:
  - file.hasTag("til")
formulas:
  days_ago: "today() - date"
views:
  - type: table
    name: "전체 TIL"
    order:
      - property: date
        direction: desc
    groupBy:
      property: category
      direction: asc
  - type: cards
    name: "최근 일주일"
    filters:
      - date >= today() - duration("7d")

[!example] 실용적 활용 사례

  • TIL 대시보드: file.hasTag("til") 필터 + 카테고리별 그룹핑
  • 독서 관리: 상태별 뷰 분리 (읽는 중 / 완료 / 위시리스트)
  • 프로젝트 보드: 태그 기반 필터 + 마감일 Formula
  • 백링크 강화: file.hasLink(this.file) + 속성 컬럼 추가
  • 습관 트래커: Daily 노트 Properties 집계 (Summary 활용)

참고 자료

관련 노트