← 개발일지

Obsidian Tasks 플러그인 완전 정복 — Task Hub로 할 일을 한눈에 관리하는 법


Obsidian Tasks 플러그인 완전 정복 — Task Hub로 할 일을 한눈에 관리하는 법

Obsidian을 쓰다 보면 할 일이 이 노트 저 노트에 흩어진다. 프로젝트 노트에도, 회의록에도, 데일리 노트에도 체크박스가 생긴다. 문제는 어디에 뭘 적었는지 까먹는다는 것이다.

이 글에서는 Tasks 플러그인으로 흩어진 할 일을 자동 수집하고, Task Hub라는 대시보드 파일 하나로 모든 걸 한눈에 보는 시스템을 처음부터 끝까지 만든다.


이 글에서 다루는 것

  1. Tasks 플러그인 설치와 초기 설정
  2. 태스크 작성 문법 (이모지 포맷 전체 정리)
  3. 쿼리 블록으로 원하는 태스크만 뽑아보기
  4. Task Hub — 할 일 대시보드 파일 만들기
  5. 반복 태스크 설계 (건강 검진, 정기 연락 등)
  6. Tasks로 관리하면 안 되는 것 — Dataview와 역할 분담
  7. 시작할 때 Task Hub 자동으로 열기

1. Tasks 플러그인이란

Obsidian Tasks는 볼트 전체에 흩어진 마크다운 체크박스(- [ ])를 한곳에서 검색하고, 필터링하고, 정렬하고, 그룹화할 수 있게 해주는 커뮤니티 플러그인이다.

핵심 원리는 단순하다.

체크박스에 이모지로 메타데이터(마감일, 우선순위, 반복 주기)를 붙이고, 쿼리 블록으로 조건에 맞는 태스크만 뽑아본다.

가장 강력한 점은 어디서든 태스크를 체크하면 원본 파일이 자동으로 업데이트된다는 것이다. 쿼리 결과에서 체크해도, Reading View에서 체크해도, 원본 마크다운 파일의 - [ ]- [x]로 바뀐다.


2. 설치 및 초기 설정

설치

  1. Obsidian 설정 → 커뮤니티 플러그인 → "제한 모드" 끄기
  2. "찾아보기(Browse)"에서 Tasks 검색 → 설치 → 활성화

설치 후 반드시 확인할 3가지

① 글로벌 필터

볼트에 이미 체크박스가 많다면, #task 같은 태그를 글로벌 필터로 지정해서 해당 태그가 붙은 체크박스만 Tasks가 인식하도록 할 수 있다. 새 볼트라면 글로벌 필터 없이 모든 체크박스를 태스크로 쓰는 것도 괜찮다.

② 단축키 교체

Obsidian 기본 "체크박스 토글" 단축키를 Tasks의 **"Tasks: Toggle Done"**으로 교체한다. Ctrl+Enter (Mac: Cmd+Enter)로 설정하면 완료 처리 시 완료 날짜가 자동 기록된다. 이 한 가지 설정만으로 사용 경험이 확 달라진다.

③ 반복 태스크 생성 위치

기본값은 완료된 태스크 에 새 태스크가 생기는데, 설정에서 **"아래에 생성"**으로 바꾸면 시간순으로 정리되어 더 직관적이다.


3. 태스크 작성 문법

Tasks 플러그인의 핵심은 이모지 기반 메타데이터이다. 체크박스 뒤에 이모지를 붙여서 날짜, 우선순위, 반복 등을 기록한다.

3-1. 날짜 이모지

| 이모지 | 의미 | 예시 | |:------:|------|------| | 📅 | 마감일 — 이 날까지 끝내야 함 | 📅 2026-04-20 | | ⏳ | 예정일 — 이 날에 작업할 예정 | ⏳ 2026-04-15 | | 🛫 | 시작일 — 이 날부터 시작 가능 | 🛫 2026-04-10 | | ➕ | 생성일 — 태스크를 만든 날 | ➕ 2026-04-13 | | ✅ | 완료일 — 완료 시 자동 기록 | ✅ 2026-04-18 | | ❌ | 취소일 — 취소 시 자동 기록 | ❌ 2026-04-17 |

3-2. 우선순위 이모지

| 이모지 | 의미 | |:------:|------| | 🔺 | 가장 높음 (Highest) | | ⏫ | 높음 (High) | | 🔼 | 보통 (Medium) | | (없음) | 없음 — 기본값 | | 🔽 | 낮음 (Low) | | ⏬ | 가장 낮음 (Lowest) |

3-3. 반복 — 🔁

반복 이모지 뒤에 자연어로 주기를 적는다. 영어로 적어야 한다.

| 작성법 | 의미 | |--------|------| | 🔁 every day | 매일 | | 🔁 every week | 매주 | | 🔁 every 2 weeks | 2주마다 | | 🔁 every month | 매월 | | 🔁 every month on the 15th | 매월 15일 | | 🔁 every year | 매년 | | 🔁 every weekday | 평일만 (월~금) | | 🔁 every week on Monday | 매주 월요일 | | 🔁 every 6 months | 6개월마다 |

3-4. 자동 삭제 — 🏁 delete

🏁 delete를 붙이면 완료 시 태스크가 자동 삭제된다. 매일 반복하는 습관 태스크처럼 지난 기록이 필요 없을 때 유용하다.

3-5. 실제 작성 예시

- [ ] 프로젝트 제안서 초안 작성 ⏫ 🛫 2026-04-14 📅 2026-04-18
- [ ] 팀 회의 준비 🔼 📅 2026-04-15
- [ ] 주간 보고서 제출 🔁 every Friday 📅 2026-04-18
- [ ] 도서관 책 반납 🔽 📅 2026-04-20
- [ ] 영어 단어 30개 암기 🔁 every day 📅 2026-04-13 🏁 delete

3-6. 이모지를 외울 필요 없다

방법 1 — 명령어 팔레트: Ctrl+P → "Tasks: Create or edit task"를 실행하면 GUI 모달 창이 열린다. 마감일, 우선순위, 반복을 드롭다운과 달력으로 설정할 수 있다.

방법 2 — Auto-Suggest: 태스크 줄에서 due, scheduled, priority 같은 키워드를 입력하면 자동 제안 목록이 뜬다.


4. 쿼리 블록 — 원하는 태스크만 뽑아보기

Tasks 플러그인의 진짜 힘은 쿼리 블록에 있다. 볼트 전체를 검색해서 조건에 맞는 태스크만 뽑아서 보여준다.

4-1. 기본 구조

```tasks
필터 조건 1
필터 조건 2
정렬 조건
그룹 조건
표시 옵션
```

4-2. 필터(Filter) 키워드 전체 정리

상태 필터

| 필터 | 설명 | |------|------| | not done | 미완료만 | | done | 완료만 | | status.type is IN_PROGRESS | 진행 중만 |

날짜 필터

| 필터 | 설명 | |------|------| | due today | 오늘 마감 | | due before today | 기한 지남 (오늘 미포함) | | due before tomorrow | 오늘까지 마감 (오늘 포함) | | due this week | 이번 주 마감 | | due after today | 내일 이후 마감 | | due before in 7 days | 7일 이내 마감 | | due before in 30 days | 30일 이내 마감 | | scheduled today | 오늘 예정 | | has due date | 마감일이 있는 것 | | no due date | 마감일이 없는 것 | | done after 7 days ago | 최근 7일 내 완료 |

경로·파일·태그 필터

| 필터 | 설명 | |------|------| | path includes 프로젝트/ | 특정 폴더 안의 태스크 | | path does not include 아카이브/ | 특정 폴더 제외 | | filename includes 회의록 | 특정 파일명 | | tags include #work | 특정 태그 포함 | | tags do not include #someday | 특정 태그 제외 |

우선순위·텍스트·반복 필터

| 필터 | 설명 | |------|------| | priority is high | 높은 우선순위만 | | priority is above none | 우선순위 설정된 것만 | | description includes 보고서 | 태스크에 특정 단어 포함 | | heading includes 이번 주 | 태스크가 속한 제목 기준 | | is recurring | 반복 태스크만 | | is not recurring | 일회성만 |

4-3. 정렬(Sort)

sort by due            ← 마감일순
sort by priority       ← 우선순위순
sort by urgency        ← 마감일+우선순위 종합 긴급도
sort by created        ← 생성일순
sort by description    ← 가나다순
sort by path           ← 파일 경로순

여러 정렬 조건을 나열하면 위에서부터 순서대로 적용된다.

4-4. 그룹화(Group By)

group by due           group by priority
group by folder        group by filename
group by heading       group by tags
group by status.type   group by recurring

4-5. 표시 옵션

| 옵션 | 효과 | |------|------| | short mode | 이모지 메타데이터 숨기고 내용만 표시 | | hide backlink | 태스크 출처 링크 숨김 | | hide task count | 태스크 개수 숨김 | | hide due date | 마감일 숨김 | | hide edit button | 편집 버튼 숨김 | | limit 10 | 전체 결과 최대 10개 | | limit groups to 3 tasks | 각 그룹 안에서 최대 3개 |


5. Task Hub 만들기 — 할 일 대시보드

이제 핵심이다. 볼트 전체의 태스크를 한 파일에서 한눈에 보는 대시보드를 만든다.

5-1. 설계 원칙

Task Hub에는 태스크를 직접 쓰지 않는다. 쿼리만 넣어두고, 각 노트에 흩어진 태스크를 자동으로 끌어오는 읽기 전용 대시보드로 유지한다.

직접 태스크를 쓰기 시작하면 대시보드와 원본이 뒤섞여서 금방 지저분해진다.

5-2. Task Hub 전체 코드

아래 내용을 복사해서 Task Hub.md 파일로 저장하면 바로 작동한다.

---
aliases:
  - 태스크 허브
  - Task Dashboard
---

# 🎯 Task Hub

---

## 🔴 기한 지남 (Overdue)

```tasks
not done
due before today
sort by due
group by folder
```

---

## 🟠 오늘 할 일 (Due Today)

```tasks
not done
due today
sort by priority
```

---

## 🟡 이번 주 (Due This Week)

```tasks
not done
due after today
due before in 7 days
sort by due
sort by priority
```

---

## 🔵 다가오는 일 (Upcoming · 30일 이내)

```tasks
not done
due after in 7 days
due before in 30 days
sort by due
group by folder
```

---

## ⚪ 기한 없는 할 일 (No Due Date)

```tasks
not done
no due date
sort by priority
group by folder
```

---

## ✅ 최근 완료 (Done · 최근 7일)

```tasks
done
done after 7 days ago
sort by done reverse
short mode
```

5-3. 각 섹션의 역할

| 섹션 | 색상 | 핵심 쿼리 | 역할 | |------|:----:|-----------|------| | 기한 지남 | 🔴 | due before today | 놓친 태스크 즉시 확인 | | 오늘 할 일 | 🟠 | due today | 오늘의 집중 목록 | | 이번 주 | 🟡 | due after today + before in 7 days | 이번 주 예정 파악 | | 다가오는 일 | 🔵 | due after in 7 days + before in 30 days | 중기 일정 조망 | | 기한 없음 | ⚪ | no due date | 떠도는 태스크 점검 | | 최근 완료 | ✅ | done after 7 days ago | 성취감 + 누락 확인 |

5-4. 어디에 넣을까

시스템 운영용 파일들이 모여 있는 폴더에 두는 걸 추천한다. 예를 들어 System/ 이나 Dashboard/ 같은 폴더가 적절하다. 일반 노트와 섞이지 않게 분리하는 것이 포인트다.


6. 반복 태스크 설계 — 치과, 인바디, 부모님 연락

정기적으로 반복되는 일도 Task Hub에 직접 쓰지 않는다. 맥락에 맞는 노트에 원본을 두면, Task Hub가 기한 기준으로 자동 수집한다.

6-1. 건강 관리 노트

# 🏥 건강 관리

## 정기 검진
- [ ] 🦷 치과 정기검진 🔁 every 6 months 📅 2026-07-01
- [ ] 💪 인바디 측정 🔁 every 3 months 📅 2026-06-01
- [ ] 👀 안과 검진 🔁 every year 📅 2026-12-01

## 일상 습관
- [ ] 🏃 운동 30분 🔁 every day 📅 2026-04-14 🏁 delete
- [ ] 💧 물 8잔 마시기 🔁 every day 📅 2026-04-14 🏁 delete

6-2. 가족 노트

# 👨‍👩‍👧 가족

## 정기 연락
- [ ] 📞 부모님 안부 전화 🔁 every week 📅 2026-04-19

## 기념일
- [ ] 🎂 아버지 생신 준비 🔁 every year 📅 2026-11-03
- [ ] 🎂 어머니 생신 준비 🔁 every year 📅 2026-09-15

6-3. 생일·기념일은 이중으로 관리하면 안전하다

Tasks의 반복 태스크만으로도 충분하지만, Google Calendar에 연간 반복 일정도 함께 등록해두면 알림이 울려서 더 안전하다.

Tasks에는 "선물 준비" 같은 실제 행동을 며칠 전 마감으로 걸고, 캘린더에는 당일 일정으로 넣는 것이다. Tasks + 캘린더의 이중 안전망 구조다.

6-4. 전체 흐름

원본 노트 (건강 관리, 가족 등)
    │
    │  반복 태스크 작성 (🔁 + 📅)
    ▼
Task Hub
    │  쿼리가 기한 기준으로 자동 수집
    ▼
"오늘 할 일" 또는 "이번 주" 섹션에 표시
    │
    │  체크 → 원본 자동 업데이트 → 다음 주기 자동 생성
    ▼
다음 주기에 Task Hub에 다시 나타남

7. Tasks로 관리하면 안 되는 것

읽고 싶은 책, 보고 싶은 영화, 궁금해서 찾아볼 것 — 이런 항목도 Tasks로 관리하고 싶은 유혹이 있다. 하지만 맞지 않는다.

왜 맞지 않는가

Tasks 플러그인은 **"완료 여부 + 기한"**이 핵심이다. 그런데 책이나 영화는 마감이 없다. "얼마나 보고 싶은가"라는 관심도가 더 중요하다.

억지로 Tasks에 넣으면 Task Hub의 "기한 없는 할 일" 섹션에 수십 개가 쌓인다. 그러면 정작 중요한 할 일이 묻힌다. 이게 핵심 문제다.

해결책 — Dataview와 역할 분담

| 성격 | 도구 | 이유 | |------|------|------| | 기한 있는 할 일 | Tasks | 완료 추적, 반복, 기한 경고에 최적화 | | 기한 없는 목록 (책, 영화 등) | Dataview | 관심도 정렬, 커스텀 필드, 유연한 테이블 | | 빠르게 해소되는 궁금한 것 | 단순 체크리스트 | 가볍게 메모 → 해결되면 삭제 |

Dataview 활용 예시

Dataview 플러그인을 설치하고, 워치리스트 노트에 이렇게 쓴다.

# 📺 보고 싶은 것

## 영화

| 제목 | 관심도 | 장르 | 어디서 | 메모 |
|------|:------:|------|--------|------|
| 인터스텔라 재관람 | ⭐⭐⭐ | SF | IMAX | 재개봉 확인 |
| 콘크리트 유토피아 | ⭐⭐ | 드라마 | 넷플릭스 | |

## 책

| 제목 | 관심도 | 분야 | 메모 |
|------|:------:|------|------|
| 사피엔스 | ⭐⭐⭐ | 인문 | 오디오북 |
| Clean Code | ⭐⭐ | 개발 | 원서 도전 |

이 방식은 단순하고 가볍다. 항목이 늘어나서 자동 필터링이 필요해지면 그때 Dataview 쿼리로 전환해도 늦지 않다.

항목이 많아졌을 때의 Dataview 쿼리 방식:

각 항목을 개별 노트로 만들고 프론트매터에 메타데이터를 넣은 뒤, 대시보드에서 이렇게 뽑아볼 수 있다.

```dataview
TABLE priority AS "관심도", genre AS "장르", where AS "어디서"
FROM "Watchlist"
WHERE type = "movie" AND status = "want"
SORT priority DESC
```

8. 시작할 때 Task Hub 자동으로 열기

Obsidian을 열 때마다 Task Hub가 첫 화면에 뜨도록 설정할 수 있다.

Homepage 커뮤니티 플러그인을 사용한다.

  1. 설정 → Community plugins → Browse → "Homepage" 검색 → 설치 → 활성화
  2. Homepage 설정 → Homepage 항목에 파일명 입력 (예: Task Hub)
  3. Opening method → Replace all open notes 또는 Open in a new tab 선택

설정 → Files & Links → Restore previous session 옵션이 켜져 있으면 충돌할 수 있으니 함께 확인한다.


9. 커스텀 상태 — 진행 중, 취소 등 확장

기본 체크박스는 미완료([ ])와 완료([x]) 두 가지뿐이지만, Tasks 플러그인으로 확장할 수 있다.

| 마크다운 | 의미 | 상태 타입 | |:--------:|------|:---------:| | - [ ] | 할 일 | TODO | | - [x] | 완료 | DONE | | - [/] | 진행 중 | IN_PROGRESS | | - [-] | 취소 | CANCELLED | | - [>] | 연기 | TODO | | - [!] | 중요 | TODO |

설정 → Task Statuses에서 상태를 추가하거나, Minimal·Things 테마의 프리셋을 한 번에 가져올 수 있다. "다음 상태"를 설정하면 체크할 때마다 Todo → In Progress → Done 순서로 순환하도록 만들 수 있다.

쿼리에서 상태별 필터링:

```tasks
status.type is IN_PROGRESS
```

10. 반복 태스크 심화 규칙

반복 태스크를 제대로 쓰려면 알아야 할 규칙이 있다.

규칙 1: 반복 태스크에는 반드시 마감일(📅)이 있어야 한다. 마감일이 없으면 다음 주기를 계산할 수 없다.

규칙 2: 여러 날짜가 있으면 간격을 유지한다. 시작일이 마감일 3일 전이었다면, 다음 주기에서도 시작일은 마감일 3일 전으로 자동 설정된다.

- [ ] 월세 납부 🔁 every month on the 25th 📅 2026-04-25
- [ ] 분기 보고서 🔁 every 3 months 📅 2026-06-30
- [ ] 치과 검진 🔁 every 6 months 📅 2026-10-15

11. 자주 쓰는 쿼리 치트시트

실전에서 바로 복사해서 쓸 수 있는 쿼리 모음이다.

| 목적 | 쿼리 조합 | |------|-----------| | 오늘 할 일 | not done + due today + sort by priority | | 기한 지난 것 | not done + due before today + sort by due | | 이번 주 | not done + due this week + group by due | | 특정 폴더 | not done + path includes 폴더명/ | | 특정 태그 | not done + tags include #태그 | | 우선순위 있는 것만 | not done + priority is above none | | 반복 태스크만 | not done + is recurring | | 최근 완료 (7일) | done + done after 7 days ago | | 마감일 없는 것 | not done + no due date | | 프로젝트별 Top 1 | not done + group by path + limit groups to 1 tasks |


12. 전체 시스템 요약

┌──────────────────────────────────────────┐
│            🎯 Task Hub                    │
│     읽기 전용 대시보드 (쿼리만 존재)       │
│     Obsidian 시작 시 자동 열림            │
└─────┬────────────┬────────────┬──────────┘
      │            │            │
  ┌───▼────┐  ┌────▼────┐  ┌───▼──────┐
  │ 건강   │  │ 가족    │  │ 프로젝트  │
  │ 검진   │  │ 연락    │  │ 업무     │
  │ 습관   │  │ 기념일  │  │ 개인     │
  └────────┘  └─────────┘  └──────────┘
   반복 태스크    반복 태스크    일반 태스크
   원본 보관     원본 보관      원본 보관

┌──────────────────────────────────────────┐
│      📊 Dataview 테이블 (별도 관리)       │
│   영화, 책, 궁금한 것 = 기한 없는 목록    │
│   관심도 기준 정렬, Tasks와 역할 분담     │
└──────────────────────────────────────────┘

┌──────────────────────────────────────────┐
│      📅 Google Calendar (알림 보조)       │
│   생일, 기념일 리마인더                   │
│   Tasks의 이중 안전망                     │
└──────────────────────────────────────────┘

자주 하는 오해 5가지

"Tasks가 별도 데이터베이스를 만든다?" → 아니다. 순수 마크다운 파일만 파싱한다. 플러그인을 비활성화해도 데이터가 사라지지 않는다.

"글로벌 필터는 필수다?" → 아니다. 기존 체크박스가 많지 않다면 글로벌 필터 없이 시작해도 된다.

"쿼리 결과에서 체크하면 원본에 안 반영된다?" → 반영된다. 이게 Tasks의 핵심 기능이다.

"Dataview가 있으면 Tasks는 필요 없다?" → 둘은 보완 관계다. Tasks는 태스크 전용(반복, 완료 추적), Dataview는 범용 데이터 쿼리 도구다.

"이모지 포맷만 쓸 수 있다?" → Dataview 스타일의 대괄호 포맷([due:: 2026-04-20])도 지원한다. 설정에서 선택할 수 있다.


마무리

핵심을 세 줄로 요약하면 이렇다.

  1. 태스크는 맥락에 맞는 노트에 쓴다 — 건강 노트에 검진 태스크, 가족 노트에 연락 태스크
  2. Task Hub는 보기만 한다 — 쿼리로 자동 수집, 직접 쓰지 않는다
  3. 기한 없는 목록은 Dataview로 — Tasks에 넣으면 할 일이 묻힌다

이 세 가지만 지키면 Obsidian에서 할 일 관리가 깔끔해진다.


참고 자료