Dataview

[!tldr] 한줄 요약 Obsidian vault를 데이터베이스처럼 쿼리하여 노트 메타데이터를 동적으로 조회하는 커뮤니티 플러그인

핵심 내용

Dataview는 vault의 노트를 인덱싱하고, SQL과 유사한 DQL(Dataview Query Language)로 필터링/정렬/그룹화하여 동적 뷰를 생성한다. 코드블록 안에 쿼리를 작성하면 실시간으로 결과가 렌더링된다.

메타데이터 추가 방식

방식예시
Frontmatter (YAML)rating: 8, date: 2026-02-18
Inline Field (본문)Basic Field:: Some Value
괄호형 Inline (문장 안)이 책은 [rating:: 9]점이다

필드명에 공백이나 대문자가 있으면 소문자+하이픈으로 자동 정규화된다 (Basic Field -> basic-field).

4가지 쿼리 타입

타입용도예시
LIST글머리 기호 목록LIST FROM #til
TABLE표 형식 (다중 컬럼)TABLE date, category FROM "til"
TASK할 일 목록 (체크 가능)TASK WHERE !completed
CALENDAR월간 캘린더 점 표시CALENDAR file.ctime

DQL 데이터 명령어

쿼리의 기본 구조는 [쿼리타입] [필드] FROM [소스] WHERE [조건]이다.

명령어역할예시
FROM소스 범위 지정 (태그, 폴더, 링크)FROM "til" AND #obsidian
WHERE메타데이터 조건 필터링WHERE date >= date(today) - dur(7 days)
SORT정렬SORT date DESC
GROUP BY그룹화 (rows 배열 생성)GROUP BY category
FLATTEN배열을 행으로 펼치기FLATTEN tags AS tag
LIMIT결과 수 제한LIMIT 10

[!tip] FROM vs WHERE 성능 차이 FROM은 인덱스 기반으로 빠르고, WHERE는 전체 스캔 후 필터링한다. 가능하면 FROM으로 범위를 먼저 좁히고 WHERE로 세부 조건을 거는 것이 유리하다.

FROM 소스 조합

and, or, -(not) 연산자로 소스를 조합할 수 있다.

FROM "til" AND #obsidian       -- 폴더 + 태그
FROM #obsidian OR #claude-code -- 태그 OR 태그
FROM "til" AND -#backlog       -- 폴더에서 특정 태그 제외

GROUP BY vs FLATTEN

이 둘은 정반대 동작을 한다.

GROUP BYFLATTEN
동작N개 행 -> 1개 그룹1개 행 -> N개 행
용도집계, 카운팅, 분류배열 분해, 태그별 분석
결과행 수 줄어듦행 수 늘어남
접근rows.필드명원래 필드명 그대로

조합하면 강력하다. FLATTEN으로 태그 배열을 펼친 뒤 GROUP BY로 묶으면 "태그별 노트 수" 집계가 가능하다.

DQL 외의 쿼리 방법

예시

TABLE date AS "작성일", category AS "카테고리", aliases[0] AS "한글명"
FROM "til" AND #til
SORT date DESC
LIMIT 10

[!example] 실행 결과 til 폴더에서 #til 태그가 있는 노트를 날짜 역순으로 10개까지 테이블로 보여준다. 각 행에 작성일, 카테고리, 한글명 컬럼이 표시된다.

TABLE length(rows) AS "개수", rows.file.link AS "노트"
FROM "til" AND #til
GROUP BY category AS "카테고리"
SORT length(rows) DESC

[!example] 실행 결과 카테고리별로 그룹화하여 각 카테고리에 몇 개의 TIL이 있는지 개수와 노트 링크 목록을 보여준다.

참고 자료

관련 노트