옵시디언 Dataview로 나만의 대시보드 만들기 - 노트 앱인 줄 알았는데, 이게 무슨 엑셀이야?
"아직도 매일 아침 여러 앱 켜가면서 오늘 할 일 확인해요?"
서울에서 마케팅 기획 일을 하는 준호(33세)는 매일 아침 8분을 낭비했다.
할 일은 투두이스트에, 독서 기록은 굿리즈에, 프로젝트 현황은 노션에. 앱 세 개를 열고 닫고, 열고 닫고.
하루에 8분이면 한 달에 4시간, 1년이면 48시간이다. 꼬박 이틀을 그냥 날린 것이다.
지금 당신의 아침은 어떻습니까?
⚡ 잠깐, 이걸 보기 전에 체크해보세요
당신에게 해당되는 항목이 몇 개인지 세어보세요.
- [ ] 노트 앱, 할 일 앱, 독서 앱이 따로따로 열려 있다
- [ ] "그 아이디어 어디다 적었더라?" 하고 검색하는 일이 주 3회 이상이다
- [ ] 옵시디언을 쓰고 있는데 플러그인 탭은 열어본 적 없다
- [ ] 주간 회고를 '언젠가 해야지'로 미룬 지 2주가 넘었다
- [ ] 오늘 뭘 해야 하는지 파악하는 데 아침마다 10분 이상 걸린다
3개 이상이면, 이 글은 당신을 위해 쓴 겁니다.
📉 준호의 이야기 - 노트가 800개인데 아무것도 안 보이는 사람
준호는 옵시디언 유저였다. 꽤 열심히 쓰는 유저였다. 문제는 노트가 800개를 넘어가면서부터였다.
"뭔가 많이 썼는데… 다시 찾기가 너무 힘들어. 이게 쌓이는 건지 묻히는 건지 모르겠어."
검색으로는 한계가 있었다. '독서 기록' 폴더를 열면 60개 파일. 읽는 중인 것, 읽은 것, 읽다 포기한 것이 다 섞여 있었다.
그러다 어느 날 유튜브 알고리즘이 Dataview 영상 하나를 밀어줬다.
화면에는 노트 앱인데 엑셀처럼 쿼리가 돌아가고 있었다.
준호는 그날 밤 두 시간을 투자했다. 지금 그의 옵시디언 홈 화면에는 이런 것들이 자동으로 표시된다.
- ✅ 오늘 완료 못한 할 일 목록
- 📖 현재 읽고 있는 책 + 진행률
- 🎯 이번 주 진행 중인 프로젝트
- 📅 최근 수정한 노트 5개
- 📊 이번 달 새로 쓴 노트 수
매일 아침 앱 세 개를 켜던 습관이 사라졌다. 화면 하나로 하루가 시작된다.
🔍 Dataview가 뭔지 먼저 정확하게 이해하자
잠깐! 여기서 중요한 포인트가 있습니다.
Dataview는 옵시디언의 무료 커뮤니티 플러그인이다. 핵심 기능은 단 하나다.
"마크다운 파일의 메타데이터를 SQL처럼 쿼리해서 원하는 형태로 보여준다."
쉽게 말하면 이렇다.
노트 상단에 이렇게 써두면:
---
tags: [book]
status: reading
title: 아주 작은 습관의 힘
author: 제임스 클리어
---
Dataview는 이 정보를 기억했다가, 당신이 원할 때 꺼내준다.
TABLE title, author, status
FROM #book
WHERE status = "reading"
결과? 현재 읽고 있는 책이 표로 짠 하고 나온다. 파일을 뒤질 필요도, 폴더를 열 필요도 없다.
🛠️ 실제로 이렇게 만든다 - 단계별 가이드
STEP 1. 플러그인 설치
옵시디언 설정 → 커뮤니티 플러그인 → 'Dataview' 검색 → 설치 → 활성화. 5분도 안 걸린다.
설치 후 설정에서 "Enable JavaScript Queries" 와 "Inline Queries" 를 켜두면 나중에 더 다양하게 활용 가능하다.
STEP 2. 프론트매터 습관 들이기
Dataview는 노트 상단의 YAML 프론트매터를 읽는다. 앞으로 노트를 만들 때 이 두 줄만 챙겨도 충분히 시작할 수 있다.
---
tags: [project]
status: in-progress
due: 2025-05-30
---
처음에는 귀찮다. 하지만 이게 쌓이면 나중에 Dataview가 알아서 일을 해준다. 씨앗을 심는 거라고 생각하면 편하다.
STEP 3. 홈 노트(Home.md) 만들기
볼트 루트에 Home.md 파일을 하나 만들자. 이 파일이 당신의 대시보드가 된다.
STEP 4. 핵심 쿼리 4가지 붙여넣기
이제부터가 핵심이다. 아래 쿼리들을 Home.md에 그대로 복사해서 쓰면 된다.
① 오늘 완료 못한 태스크
TASK
FROM ""
WHERE !completed AND due <= date(today)
SORT due ASC
due 날짜가 오늘 이전이면서 완료되지 않은 태스크를 전부 모아준다. 매일 아침 이 목록이 당신을 맞이한다.
② 현재 읽고 있는 책
TABLE title, author, rating
FROM #book
WHERE status = "reading"
SORT file.mtime DESC
#book 태그가 달린 노트 중 status가 reading인 것만 골라 테이블로 보여준다.
③ 진행 중인 프로젝트
TABLE status, due, priority
FROM "Projects"
WHERE status != "done"
SORT priority ASC
Projects 폴더 안의 노트 중 완료되지 않은 것만 우선순위 순으로 정렬한다.
④ 최근 수정한 노트 5개
LIST
FROM ""
SORT file.mtime DESC
LIMIT 5
가장 최근에 건드린 노트 다섯 개. 어제 뭘 했는지 바로 보인다.
💡 한 단계 더 - DataviewJS로 월간 통계 만들기
기본 DQL 쿼리가 익숙해졌다면 JavaScript 버전도 도전해보자.
```dataviewjs
const thisMonth = dv.pages()
.where(p => p.file.cday.month === dv.current().file.cday.month)
.length;
dv.paragraph(`📝 이번 달 새로 작성한 노트: **${thisMonth}개**`);
이번 달에 만든 노트 수를 자동으로 세서 보여준다. 숫자가 올라가는 걸 보면 묘하게 동기부여가 된다.
🧠 자주 하는 실수 3가지
잠깐, 이 부분은 꼭 읽어야 합니다.
실수 ①
태그와 폴더를 혼용하다 쿼리가 안 먹히는 경우 FROM #book은 태그로, FROM "Books"는 폴더로 수집한다. 둘 중 하나로 기준을 통일하지 않으면 누락이 생긴다.
실수 ②
날짜 형식이 다른 경우 Dataview는 2025-05-15 형식의 ISO 날짜만 제대로 인식한다. 25.05.15나 2025/05/15는 날짜로 읽지 못한다.
실수 ③
프론트매터에 오타가 있는 경우 status: in-progress 와 status: In Progress는 다르다. 쿼리에서 대소문자, 하이픈, 공백까지 똑같이 맞춰야 한다.
✨ 준호의 지금 - 3개월 후
준호는 지금 이 화면으로 하루를 시작한다.
아침 9시, 커피 한 잔을 들고 홈 노트를 연다. 오늘 마감인 태스크 2개, 읽는 중인 책 1권, 진행 중 프로젝트 3개가 한눈에 들어온다.
"예전엔 아침마다 뭐부터 해야 할지 몰랐어요. 지금은 켜자마자 바로 일을 시작해요."
그는 이제 노트 앱을 세 개 쓰지 않는다. 옵시디언 하나로 끝낸다.
💬 마무리하며 - 당신의 볼트는 지금 어떤가요?
Dataview는 어렵지 않다. 처음 쿼리 하나만 써보면 감이 온다.
오늘 당장 해볼 수 있는 것 하나를 추천한다면, 노트 하나를 열고 상단에 이것만 추가해보자.
---
tags: [book]
status: reading
---
그리고 내일 Home.md에 쿼리를 하나 붙여넣어 보자. 마법처럼 데이터가 모인다.
800개 노트가 묻혀 있던 준호가 바뀐 것처럼, 당신의 볼트도 오늘부터 달라질 수 있다.
당신은 지금 옵시디언을 어떻게 활용하고 있나요?
대시보드 구성 방법이나 쓰고 있는 쿼리가 있다면 댓글로 공유해주세요! 👇