손으로 목록을 관리하는 순간이 온다
Obsidian을 한 달쯤 쓰면 노트가 백 단위로 쌓인다. 그러면 이런 노트를 만들게 된다 — “읽고 있는 책 목록”, “진행 중인 일 모음”. 그리고 곧 깨닫는다. 이 목록, 내가 손으로 갱신하고 있잖아? 책을 다 읽어도 목록에는 “읽는 중”으로 남아 있다.
Dataview는 이 문제를 끝내는 커뮤니티 플러그인이다. 노트에 붙인 속성(property)을 조건으로 목록·표를 자동 생성한다. 각 노트의 속성만 갱신하면 모든 목록이 스스로 최신 상태가 된다.
노트 하나하나가 데이터베이스의 행(row)이 되고, 속성이 열(column)이 된다. Dataview는 그 데이터베이스를 조회하는 검색문이다.
준비: 설치와 속성 점검
설치
설정 → 커뮤니티 플러그인 → 제한 모드 해제 → 탐색에서 “Dataview” 검색 → 설치 후 활성화. 가장 널리 쓰이는 검증된 플러그인 중 하나다.
속성이 곧 재료다
Dataview의 결과 품질은 쿼리 실력이 아니라 속성의 일관성에서 나온다. 초기 세팅에서 정한 속성 스키마(type, status 등)를 노트들이 일관되게 갖고 있어야 한다.
---
type: 독서노트
status: 읽는중
rating:
저자: 홍길동
---
값 표기가 흔들리면(‘읽는중’ vs ‘읽는 중’) 쿼리에서 누락된다. 템플릿에 속성을 포함시키는 것이 일관성을 지키는 가장 확실한 방법이다.
인라인 필드: 본문 속에 심는 속성
프론트매터 외에, 본문 중간에도 키:: 값 형태로 데이터를 심을 수 있다.
오늘 회의에서 결정. 마감:: 2026-07-15
이 마감 값도 쿼리에서 조회할 수 있다. 본문 흐름을 깨지 않고 데이터를 남길 때 유용하다.
문법 기초: 네 단어만 알면 된다
Dataview 쿼리는 코드 블록에 dataview라고 표시하고 그 안에 적는다.
```dataview
LIST
FROM "1_Notes"
WHERE status = "작성중"
SORT file.mtime DESC
```
각 줄의 의미는 이렇다.
| 키워드 | 역할 | 예시 |
|---|---|---|
LIST / TABLE / TASK | 출력 형태 (목록/표/할일) | TABLE 저자, rating |
FROM | 어디서 (폴더·태그) | FROM "1_Notes" 또는 FROM #독서 |
WHERE | 조건 | WHERE status = "읽는중" |
SORT | 정렬 | SORT rating DESC |
이게 사실상 전부다. 나머지는 이 네 가지의 조합이다.
바로 쓰는 실전 쿼리 5종
복사해서 폴더명·속성명만 내 Vault에 맞게 바꾸면 된다.
1. 읽는 중인 책 대시보드
```dataview
TABLE 저자, rating AS "평점"
FROM "1_Notes"
WHERE type = "독서노트" AND status = "읽는중"
SORT file.mtime DESC
```
AS "평점"은 표의 열 이름을 바꾸는 옵션이다.
2. 방치된 미완성 노트 찾기
```dataview
LIST
WHERE status = "작성중" AND file.mtime < date(today) - dur(30 days)
SORT file.mtime ASC
```
“작성중인데 30일 넘게 손 안 댄 노트”를 찾아준다. 주간 정리에서 위력을 발휘하는 쿼리다.
3. 흩어진 체크박스 한곳에 모으기
```dataview
TASK
FROM "1_Notes"
WHERE !completed
```
TASK는 노트 곳곳에 적어둔 - [ ] 체크박스를 전부 긁어모은다. 원본 노트를 열지 않고 이 화면에서 체크해도 원본이 갱신된다.
4. 최근 일주일에 만든 노트
```dataview
LIST
WHERE file.ctime >= date(today) - dur(7 days)
SORT file.ctime DESC
```
file.ctime(생성일), file.mtime(수정일)은 속성을 안 만들어도 쓸 수 있는 내장 데이터다.
5. 현황판: 상태별 노트 수
```dataview
TABLE length(rows) AS "노트 수"
FROM "1_Notes"
GROUP BY status
```
GROUP BY로 묶으면 상태별 집계가 된다. Vault 전체가 어떤 상태인지 숫자로 보인다.
활용 패턴: 홈 대시보드 만들기
쿼리를 익혔다면 최종형은 대시보드 노트다. 홈.md 하나를 만들고 위 쿼리들을 배치한다.
# 홈
## 이번 주에 만든 노트
(쿼리 4)
## 진행 중
(쿼리 1)
## 방치된 노트
(쿼리 2)
## 할 일 모아보기
(쿼리 3)
Obsidian을 열면 이 노트부터 보는 습관을 들이면, Vault 전체가 한 화면에서 굴러간다. 각 쿼리는 열 때마다 자동으로 최신 결과를 보여준다.
한계와 주의점
- 읽기 전용이다. Dataview는 조회만 한다. 속성 값을 일괄 변경하는 기능은 없다 (TASK의 체크만 예외)
- 표시일 뿐, 파일이 아니다. 쿼리 결과는 열 때 계산되어 화면에 그려진다. 노트를 내보내거나 다른 앱에서 열면 쿼리 코드만 보인다
- 속성 관리가 무너지면 같이 무너진다. 쿼리가 이상하면 십중팔구 문법이 아니라 속성 값 불일치가 원인이다. 값 표기 통일이 먼저다
- 문법 오류는 빨간 박스로 뜬다. 당황하지 말고 오류 메시지를 읽자. 대부분 따옴표 누락, 폴더명 오타다
체크리스트
- Dataview가 설치되어 있다
- 내 속성 스키마(type, status 등)의 값 표기가 통일되어 있다
- LIST/TABLE/TASK 쿼리를 하나씩 만들어봤다
- 홈 대시보드 노트가 있다
- 쿼리 결과가 이상할 때 속성부터 확인한다
다음 글에서는 반대 방향의 자동화 — 노트를 만들 때의 반복을 없애는 Templater를 다룬다. Dataview가 “조회 자동화”라면 Templater는 “생성 자동화”다.