← Build

Obsidian 중급 ① — Dataview: 노트 창고를 데이터베이스로 바꾸기Obsidian Intermediate ① — Dataview: Turning Your Note Pile into a Database

노트가 수백 개 쌓인 뒤의 필수 플러그인 Dataview. 속성 기반 쿼리 문법을 처음부터, 바로 복사해 쓰는 실전 쿼리 5종과 함께 정리했습니다.Dataview, the essential plugin once you have hundreds of notes. Query syntax from scratch, with five copy-ready practical queries.

손으로 목록을 관리하는 순간이 온다

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 전체가 한 화면에서 굴러간다. 각 쿼리는 열 때마다 자동으로 최신 결과를 보여준다.


한계와 주의점


체크리스트

다음 글에서는 반대 방향의 자동화 — 노트를 만들 때의 반복을 없애는 Templater를 다룬다. Dataview가 “조회 자동화”라면 Templater는 “생성 자동화”다.