← 개발일지

옵시디언 꿈일기 템플릿 만들기 — Templater + NoteMover 완벽 가이드


옵시디언 꿈일기 템플릿 만들기 — Templater + NoteMover 완벽 가이드

꿈은 깨고 나면 빠르게 잊힌다. 템플릿 하나면 눈 뜨자마자 구조화된 꿈일기를 바로 쓸 수 있다. Obsidian의 Templater 플러그인으로 꿈일기 전용 템플릿을 만들고, NoteMover로 자동 정리까지 연결하는 방법을 정리했다.


이 글에서 다루는 것

  • Templater로 꿈일기 템플릿 만들기 (전체 코드 포함)
  • 파일명을 자동으로 생성하는 방법
  • 꿈 장면 수에 따라 섹션을 동적으로 만드는 방법
  • NoteMover로 자동 폴더 정리 연동
  • 폴더 구조 설계와 프론트매터 속성 설계
  • 제작 중 흔히 만나는 파싱 에러와 해결법

사전 준비

시작하기 전에 아래 두 플러그인이 설치되어 있어야 한다.

  • Templater — 커뮤니티 플러그인에서 검색 후 설치. 설정에서 템플릿 폴더 경로를 지정해둔다 (예: _templates/).
  • NoteMover — 커뮤니티 플러그인에서 검색 후 설치. 태그나 제목 패턴 기반으로 노트를 특정 폴더로 자동 이동시켜준다.

1단계: 폴더 구조 정하기

꿈일기를 어디에 모을지 먼저 정해야 한다. 핵심은 쓰는 빈도에 맞추는 것이다.

매일 쓰는 경우 → 월별 폴더

Journal/Dreams/2026/04/
Journal/Dreams/2026/05/

가끔 쓰는 경우 → 연도별 폴더 (추천)

Journal/Dreams/2026/

꿈일기를 매일 쓰는 사람이 아니라면 월별 폴더는 빈 폴더만 늘어난다. 연도별 폴더 하나로 시작하고, 양이 쌓이면 그때 세분화해도 늦지 않다.


2단계: 파일명 형식 정하기

꿈일기 파일명은 고민할수록 꿈을 잊게 만든다. 아래 두 가지 선택지가 있다.

| 방식 | 예시 | 장점 | 단점 | |---|---|---|---| | 날짜만 | 꿈일기 - 2026-04-10 | 고민 없이 바로 시작 | 나중에 내용 구분이 어려움 | | 날짜 + 키워드 | 꿈일기 - 2026-04-10 하늘을 나는 꿈 | 한눈에 내용 파악 | 제목 고민에 시간 소모 |

추천하는 방식: 날짜를 기본으로 하되, 키워드를 선택적으로 붙인다. 이 글의 템플릿은 실행 시 키워드를 물어보고, 빈칸으로 넘기면 날짜만 사용한다.

팁: 꿈 내용에 대한 힌트는 파일명보다 프론트매터의 태그나 본문 요약에 적는 것이 낫다. 파일명은 짧고 일관되게 유지하자.


3단계: 프론트매터 속성 설계

프론트매터에 어떤 속성을 넣느냐에 따라 나중에 꿈일기를 검색하고 분석하는 범위가 달라진다.

---
title: "꿈일기 - 2026-04-10 하늘을 나는 꿈"
date: 2026-04-10
tags:
  - dream
sleep_quality: 
lucid: false
mood: 
---

각 속성의 역할은 다음과 같다.

| 속성 | 입력 예시 | 역할 | |---|---|---| | title | 꿈일기 - 2026-04-10 | Dataview 쿼리에서 파일명 대신 사용 | | date | 2026-04-10 | 날짜순 정렬과 필터링의 핵심 | | tags | dream, dream/flying | 검색, NoteMover 매칭, 주제별 분류 | | sleep_quality | 4 또는 좋음 | 수면 질과 꿈 선명도 사이 패턴 추적 | | lucid | true / false | 자각몽 여부 체크 | | mood | 불안, 평온, 무서움 | 깨고 난 직후의 감정 기록 |

팁: recurring: true 같은 속성을 추가하면 반복되는 꿈을 따로 모아볼 수 있다. 처음에는 위 기본 속성만 쓰고, 필요할 때 추가하자.


4단계: 템플릿 코드

아래가 완성된 템플릿 전체 코드다. 템플릿 폴더(예: _templates/)에 꿈일기 템플릿.md로 저장하면 된다.

<%*
const today = tp.date.now('YYYY-MM-DD');
const keyword = await tp.system.prompt("꿈 키워드 (선택, 빈칸이면 생략)", "");
const title = keyword ? `꿈일기 - ${today} ${keyword}` : `꿈일기 - ${today}`;
await tp.file.rename(title);
%>
---
title: "<% title %>"
date: <% today %>
tags:
  - dream
sleep_quality: 
lucid: false
mood: 
---

## 🌙 꿈 내용

> [!summary] 한 줄 요약
> 

### 장면 기록
<%*
const scenes = Number(await tp.system.prompt("장면 수 (1~5)", "1"));
for (let i = 1; i <= scenes; i++) {
  tR += `#### 장면 ${i}\n`;
  tR += `- **장소:**\n`;
  tR += `- **등장인물:**\n`;
  tR += `- **상황:**\n\n`;
}
%>

## 🔑 키워드 / 상징
- 

## 💭 느낌 & 해석
- **꿈속 감정:**
- **깨고 난 감정:**
- **떠오르는 해석:**

## 🔗 연결
- 관련 꿈: `[[]]`
- 관련 일기: `[[]]`

실행하면 어떻게 동작하나

Templater 실행 (Ctrl/Cmd + T 또는 단축키)
  ↓
① "꿈 키워드" 프롬프트 → 입력하면 파일명에 반영, 빈칸이면 날짜만 사용
  ↓
② "장면 수" 프롬프트 → 입력한 숫자만큼 장면 섹션 자동 생성
  ↓
③ 프론트매터에 날짜·제목 자동 채움
  ↓
④ 바로 꿈 내용 작성 시작

실행 결과 예시

키워드에 하늘을 나는 꿈, 장면 수에 2를 입력하면 아래와 같은 노트가 생성된다.

---
title: "꿈일기 - 2026-04-10 하늘을 나는 꿈"
date: 2026-04-10
tags:
  - dream
sleep_quality: 
lucid: false
mood: 
---

## 🌙 꿈 내용

> [!summary] 한 줄 요약
> 

### 장면 기록
#### 장면 1
- **장소:**
- **등장인물:**
- **상황:**

#### 장면 2
- **장소:**
- **등장인물:**
- **상황:**

## 🔑 키워드 / 상징
- 

## 💭 느낌 & 해석
- **꿈속 감정:**
- **깨고 난 감정:**
- **떠오르는 해석:**

## 🔗 연결
- 관련 꿈: [[]]
- 관련 일기: [[]]

5단계: NoteMover 자동 정리 연동

템플릿으로 노트를 만들면 기본적으로 볼트 루트나 현재 열려 있는 폴더에 생성된다. NoteMover를 설정하면 태그를 감지해서 자동으로 지정 폴더로 옮겨준다.

설정 방법

  1. Settings → Community Plugins → NoteMover → 설정 열기
  2. Add Rule 클릭
  3. 아래처럼 규칙 추가

| 설정 항목 | 값 | |---|---| | Trigger | Tag: dream | | Destination | Journal/Dreams/2026 |

  1. 이제 #dream 태그가 포함된 노트가 생성되면 해당 폴더로 자동 이동된다.

참고: 연도가 바뀌면 Destination 경로의 연도만 업데이트하면 된다.


흔한 문제: Templater 파싱 에러

Templater를 처음 쓸 때 for 루프에서 파싱 에러를 만나기 쉽다. 콘솔에 에러가 뜨면서 템플릿이 실행되지 않는다면, 대부분 아래 패턴이 원인이다.

에러가 나는 코드

<% for(let i = 1; i <= scenes; i++) { %>
#### 장면 <% i %>
- **장소:**
<% } %>

<% %>는 단일 표현식을 기대하는데, 블록문 안에서 태그를 열고 닫으며 마크다운을 삽입하면 구문이 깨진다.

해결: tR 변수 사용

<%*
for (let i = 1; i <= scenes; i++) {
  tR += `#### 장면 ${i}\n`;
  tR += `- **장소:**\n`;
  tR += `- **등장인물:**\n`;
  tR += `- **상황:**\n\n`;
}
%>

<%* %>(실행 블록) 안에서 tR(template result)에 문자열을 직접 추가하면 파싱 문제 없이 동작한다. Templater에서 반복문이나 조건문을 쓸 때는 항상 tR += 패턴을 사용하자.


활용 팁

Dataview로 꿈일기 목록 만들기

Dataview 플러그인이 있다면 아래 쿼리로 꿈일기 목록을 자동 생성할 수 있다.

```dataview
TABLE mood AS "기분", sleep_quality AS "수면 질", lucid AS "자각몽"
FROM #dream
SORT date DESC
```

중첩 태그로 꿈 주제 분류하기

tags 속성에 중첩 태그를 활용하면 주제별로 꿈을 모아볼 수 있다.

tags:
  - dream
  - dream/flying
  - dream/chase
  - dream/water

그래프 뷰에서 패턴 발견하기

본문 하단의 관련 꿈 항목에 [[위키링크]]로 비슷한 꿈끼리 연결해두면, 옵시디언 그래프 뷰에서 반복되는 꿈이나 상징의 패턴을 시각적으로 확인할 수 있다.


마무리

정리하면 전체 흐름은 이렇다.

① 템플릿 파일을 템플릿 폴더에 저장
② 폴더 구조 생성 (Journal/Dreams/2026/)
③ NoteMover 규칙 설정 (#dream → 해당 폴더)
④ 꿈을 꾸면 → 템플릿 실행 → 키워드·장면 수 입력 → 바로 작성
⑤ 저장하면 NoteMover가 자동 정리

한번 세팅해두면 이후로는 템플릿 실행 한 번이면 된다. 꿈을 기억하는 데 에너지를 쓰고, 정리는 템플릿에 맡기자.