| name | obsidian-write |
| description | Writes Obsidian pages (frontmatter, checkbox, folder-based namespace, wikilink) following conventions. Use when creating namespace pages (troubleshoot, decision, qa, spec, incident, issue), writing journal entries, updating Living Plan items, promoting journal to pages, or editing existing pages. Vault ์์น/namespace ๋งคํ์ `documentation` skill ์ฐธ์กฐ. Do NOT use for reading/searching (use ir directly). |
Atomic Notes ์์น
- ํ๋์ ๊ฐ๋
= ํ๋์ ํ์ด์ง. ํ๋ก์ ํธ์ ์ข
์๋์ง ์๋ ๋ฒ์ฉ ๊ฐ๋
์ผ๋ก ์์ฑ
- ํ๋ก์ ํธ ํน์ด์ฌํญ์ ๊ฐ์ ํ์ด์ง์
#pj-{name} ํ๊ทธ์ ํจ๊ป ํ ์ค๋ก ๊ธฐ์
- ๊ตฌํ ๋ํ
์ผ(์ฝ๋ ์์น, ์ํฐํฐ, API)์ ๊ฐ๋
ํ์ด์ง๊ฐ ์๋ ํ๋ก์ ํธ ๋๋ฉ์ธ ํ์ด์ง์ ์์ฑ
- ๋ณธ๋ฌธ์ ๋ฑ์ฅํ๋ ๋๋ฉ์ธ ์ฉ์ด๋
[[๋งํฌ]]๋ก ์ฐ๊ฒฐ โ ํ์ด์ง๊ฐ ์์ผ๋ฉด ์์ฑ ๊ฒํ
- ํธ์ง ์ค ๊ฐ๋
ํ์ด์ง์ ๊ตฌํ ๋ํ
์ผ์ด ์์ฌ ์์ผ๋ฉด ๋ถ๋ฆฌ ์ ์
๊ธฐ์กด ํจํด (๊ฑด๋๋ฆฌ์ง ์๋๋ค)
- ๋ชจ๋ ํ์ด์ง: ์ต์๋จ YAML frontmatter (
---\nkey: value\n---)
- ๋ณธ๋ฌธ์์ ๊ฐ๋
ํ๋ ์ฉ์ด๋
[[๋งํฌ]]๋ก ์ฐ๊ฒฐ โ #ํ๊ทธ๋ ์ ๋ TODO ํ์์๋ง ์ฌ์ฉ
- aliases๋
aliases: [Name1, Name2] ํํ (๋ฌธ์์ด ๋ฐฐ์ด)
- block reference: ๋ธ๋ก ๋
^anchor ๋ง์ปค, ์ฐธ์กฐ๋ [[Page#^anchor]]
- block embed:
![[Page#^anchor]] ๋๋ ![[Page]] (์ ์ฒด ์๋ฒ ๋)
- ์ ๋:
- [ ] {์ค๋ช
} #pj-{ํ๋ก์ ํธ} / - [x] {์ค๋ช
} / - [/] {์ค๋ช
} (DOING)
- ํ๋ก์ ํธ ํ๋ธ:
projects/{name}/pj-{name}.md (๋๋ ๋นํ์ฑ์ archive/{name}/pj-{name}.md). pj-{name}์ wikilink ์ด๋ฆยทํ๊ทธ๋ก๋ง ์ฌ์ฉ โ ํด๋ ๊ฒฝ๋ก๋ projects/{name}/์ด๋ค. wikilink basename match๋ก [[pj-{name}]]์ด ์๋ ํด์๋จ. ํ์ ์ง๊ณ๋ Obsidian Bases ๋๋ Dataview ์ฌ์ฉ
#thought ํ๊ทธ: ์ฌ๋ ์ ์ฉ. AI๋ ์ด ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, #thought๊ฐ ๋ถ์ ๋ธ๋ก์ ํธ์งํ์ง ์๋๋ค
์ฐ๊ฒฐ ์์น
- ๋ชจ๋ ๋ฌธ์๋ ์ต์ ํ๋์ ๋ค๋ฅธ ๋ฌธ์์ ์ฐ๊ฒฐ๋์ด์ผ ํ๋ค
- namespace ํ์ด์ง ์์ฑ ์
ir search๋ก ๊ด๋ จ ๊ธฐ์กด ํ์ด์ง๋ฅผ ์ฐพ์ [[๋งํฌ]]๋ก ์ฐ๊ฒฐ
- namespace ํ์ด์ง ์์ฑ ์ ๋ฐ๋์ ๋น์ผ ์ ๋์ ๋งํฌ ๋จ๊ธฐ๊ธฐ
- ๊ด๋ จ ์ ๋ TODO๊ฐ ์์ผ๋ฉด
[x]๋ก ๋ณ๊ฒฝํ๊ณ ํ์์ -> [[{type}/{์ ๋ชฉ}]] ๋งํฌ ์ถ๊ฐ
- ๊ด๋ จ TODO๊ฐ ์์ผ๋ฉด ์ ํญ๋ชฉ:
- [x] {์ค๋ช
} #pj-{project} + -> [[๋งํฌ]]
- namespace ํ์ด์ง ๊ฐ์๋ ๊ด๋ จ ์์ผ๋ฉด ์๋ก ๋งํฌ
- frontmatter
project, date ์์ฒด๊ฐ ํ๋ก์ ํธ ํ๋ธ์ ์ ๋๋ก์ ์ฐ๊ฒฐ
- ๋ณธ๋ฌธ ๋ด
[[link]] ํํ๋ก โ plain text๋ ๊ทธ๋ํ ์ฃ์ง๋ฅผ ๋ง๋ค์ง ์๋๋ค
TODO ๊ด๋ฆฌ
๋ผ์ดํ์ฌ์ดํด
- [ ] โ - [/] (DOING) โ - [x] (DONE)
์ทจ์: - [-]
Obsidian Tasks ํธํ ํ์
- ์ฐ์ ์์:
๐ผ (high), ๐ฝ (low), ๐บ (highest) ๋๋ ๋ณธ๋ฌธ prefix [#A]/[#B]/[#C]
- ์ค์ผ์ค:
๐
YYYY-MM-DD (due), โณ YYYY-MM-DD (scheduled), ๐ซ YYYY-MM-DD (start)
- ์๋ฃ์ผ:
โ
YYYY-MM-DD
๊ธฐ๋ณธ์ ๋จ์ checkbox + ํ๊ตญ์ด ์์ฑ. priority/scheduled๊ฐ ํ์ํ ๋๋ง ์ ๋ง์ปค ์ฌ์ฉ.
์ง๊ณ (Bases / Dataview)
Obsidian Bases (1.7+) ๋๋ Dataview ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ. ๊ธฐ์กด logseq {{query}} ๋งคํฌ๋ก๋ ๋ง์ด๊ทธ๋ ์ด์
์ <!-- {{query ...}} --> ํํ๋ก ์ฃผ์ ์ฒ๋ฆฌ๋์ด ์์ผ๋ ์ผ์ด์ค๋ณ๋ก ์ ๋ฆฌ.
;; ํ๋ก์ ํธ TODO ์ง๊ณ (Dataview)
TASK
FROM "projects/{name}"
WHERE !completed
filters:
and:
- file.folder.startsWith("projects/{name}")
- status == "draft"
๊ธฐ๋ก ๊ท์น
์ธ์ , ์ด๋์
| ์ํฉ | ์์น |
|---|
| TODO, ๊ฐ๋จํ ๋ฉ๋ชจ, ํ์ ๋ฉ๋ชจ | ๋น์ผ ์ ๋ journals/YYYY-MM-DD.md |
| ํธ๋ฌ๋ธ์ํ
์๋ฃ (์กฐ์ฌ+๊ฒฐ๋ก ์์) | projects/{name}/troubleshoot/{์ ๋ชฉ}.md |
| ์ค์ ๊ฒฐ์ ํ์ | projects/{name}/decision/{์ ๋ชฉ}.md |
| QA ์ฒดํฌ๋ฆฌ์คํธ/๊ฒฐ๊ณผ | projects/{name}/qa/{์ ๋ชฉ}.md |
| ๊ธฐ๋ฅ ์คํ/์๊ตฌ์ฌํญ ์ ๋ฆฌ | projects/{name}/spec/{์ ๋ชฉ}.md |
| ๋ฐฐํฌ ์คํจ/์ธํ๋ผ ์ด์ | projects/{name}/incident/{์ ๋ชฉ}.md |
| ์ฅ๊ธฐ ์ถ์ ์ด์ | projects/{name}/issue/{์ ๋ชฉ}.md |
| ์ ๋๋ฉ์ธ ๊ฐ๋
| know/{๊ฐ๋
๋ช
}.md |
| ๊ธฐํ ํ์ ์ | ์ ํด๋ ์์ ์์ฑ |
์ ๋ โ ํ์ด์ง ์น๊ฒฉ
์ ๋์์ ์์ํ ์ด์๊ฐ ๊น์ด์ง๋ฉด ๋ณ๋ ํ์ด์ง๋ก ์น๊ฒฉํ๊ณ ์ ๋์์ ๋งํฌ:
- [x] {์ค๋ช
} #pj-{project}
- -> [[{type}/{์ ๋ชฉ}]]
์น๊ฒฉ ์ ๊ธฐ์กด [ ]๋ฅผ [x]๋ก ๋ณ๊ฒฝํ๋ค.
์๋ stamp (session-journal.rb)
stop hook์ด ์ธ์
์ข
๋ฃ ์ ์ฐ๋ - [x] {์์ฝ} #pj-{name} (sid:xxxxxxxx) ํญ๋ชฉ์ sid๋น vault ์ ์ฒด์์ ํ ์ค๋ง ์กด์ฌํ๋ฉฐ, ๊ธฐ๊ฐ์ ์์ ์์ฑ์ผ๋ก ๊ฐ์ง๋ค:
- [x] {์์ฝ} #pj-{name} (sid:xxxxxxxx)
created:: 2026-06-04 โ ์ฒ์ ๊ธฐ๋ก๋ ๋ = ์์
์์
last-active:: 2026-06-23 โ ๋ง์ง๋ง์ผ๋ก resume ๋ ๋
- ์ธ์
์ด ์ฌ๋ฌ ๋ ์ ๊ฑธ์ณ resume ๋๋ฉด ์ ์ค์ ๋ง๋ค์ง ์๊ณ
last-active::๋ง ์ฐ์ฅํ๋ค. Why: ์์ ์ ๋ฉฑ๋ฑ ์ฒดํฌ๊ฐ ์ค๋ ์ ๋๋ง ๋ด์ ๊ฐ์ ์ธ์
์ด resume ๋ ๋๋ง๋ค ๋งค์ผ ์ฌ๊ธฐ๋ก๋๋ ์ค๋ณต ๋ฒ๊ทธ๊ฐ ์์๋ค
- ์ฌ๋ฌ ๋ ์์
์ ์ง์ฒยท์ํ๋ ์๋ stamp๊ฐ ์๋๋ผ Living Plan
- [/] ํญ๋ชฉ์ด๋ issue/ ํ์ด์ง๊ฐ ๋ด๋น. stamp๋ "์ด ์ธ์
์ด ์ด ๊ธฐ๊ฐ์ ํ๋ํ๋ค"๋ ๋ง์ปค์ผ ๋ฟ
์งํ ์ค ๊ณํ ๊ฐฑ์ (Living Plan)
์ ๋ - [ ] / - [/]์ # ์์
๊ณํ์ด ์๋ ํญ๋ชฉ์ living document๋ก ๊ด๋ฆฌํ๋ค.
์ ์ฉ ๊ธฐ์ค โ ๋ชจ๋ ์ฒดํฌ๋ฐ์ค๊ฐ ์๋๋ผ ๋ค๋จ๊ณ + ์ธ๋ถ ์์กด ์์
๋ง: ๊ณํ ์ฒดํฌ๋ฐ์ค 3๊ฐ+, ์ธ๋ถ ์ฐ์ถ๋ฌผ(์คํยท๋์์ธยท์ํ) ์์กด, ์ฌ๋ฌ ์ธ์
์ ๊ฑธ์น ์งํ. ๋จ์ 1ํ์ฑ ์ฒดํฌ๋ฐ์ค์๋ ๋ถํ์.
๊ตฌ์กฐ:
- [/] {์ ๋ชฉ} #pj-{name}
- # ๋ณ๊ฒฝ ์ด๋ ฅ โ append-only, ์๊ฐ์
- MM/DD HH:mm โ {๋ฌด์์ด ๋ฐ๋์๋์ง ํ ์ค}
- # ํ์ฌ ์ํ โ ํญ์ ์ต์ ์ค๋
์ท์ผ๋ก ๋ฎ์ด์ด๋ค
- # ์์
๊ณํ โ `- [ ]` / `- [x]` ํญ๋ชฉ, ์๋ฃ ์ ์ ํ
- # ํ์ธ ํ์ โ ๋ฏธ๊ฒฐ ์ง๋ฌธ, ํด์๋๋ฉด ์ ๊ฑฐ
๊ฐฑ์ ๊ท์น:
- ํ์ฌ ์ํ / ์์
๊ณํ: ์ต์ ๊ธฐ์ค์ผ๋ก ๋ฎ์ด์ด๋ค (์ค๋
์ท)
- ๋ณ๊ฒฝ ์ด๋ ฅ: ์ ๋ ์์ /์ญ์ ํ์ง ์๋๋ค. ๊ฐฑ์ ํ ๋๋ง๋ค
{MM/DD HH:mm} โ {๋ณ๊ฒฝ ๋ด์ฉ ํ ์ค} append
๊ฐฑ์ ํธ๋ฆฌ๊ฑฐ: ์ธ๋ถ ์คํ/์ฐ์ถ๋ฌผ ๊ฐฑ์ (์ ๋ฒ์ ์๋ น), ๊ฒฐ์ ํ์ (ํ์ธ ํ์์์ ์ ๊ฑฐ), ์ค์ฝํ ๋ณ๊ฒฝ(์์
๊ณํ ๊ฐฑ์ ), ์ ๋๋ฉ์ธ ๊ฐ๋
๋ฐ๊ฒฌ([[๋งํฌ]]๋ก ๊ฐ์ธ๊ณ ๊ฐ๋
ํ์ด์ง ์์ฑ ์ ์)
ํ์/์ฌ๋ ๋ํ โ ๋ฌธ์ํ
ํ์๋ก์ด๋ ์ฌ๋ ๋ํ๊ฐ ๋ถ์ฌ๋ฃ์ด์ง๊ฑฐ๋ Slack ์ฑ๋์ ์กฐํํ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ ๋:
์ ๋์ ๋จ๊ธฐ๋ ๊ฒ (ํ๋ฐ์ , 1์ค ์์ฝ + ๋งํฌ):
- ๋จ์ ํ์ (๋๋ฉ์ธ ํ๋ณด, ์ผ์ ์กฐ์จ, ํ์ธ ์์ฒญ)
- ์ด๋ฏธ namespace ํ์ด์ง๊ฐ ์๋ ์ฃผ์ ์ ์ํ ์
๋ฐ์ดํธ
namespace ํ์ด์ง๋ก ์น๊ฒฉํ๋ ๊ฒ (๊ตฌ์กฐํ๋ ์ง์):
- ์ํคํ
์ฒ/์ค๊ณ ํ๋ฆ์ด ์ ๋ฆฌ๋ ๋ด์ฉ โ
spec/
- ๊ฒฐ์ ์ฌํญ์ด ํฌํจ๋ ๋ด์ฉ โ
decision/
- ์๋ก์ด ๊ธฐ์ ์ ์ ์/๋น๊ต โ
reference/ ๋๋ spec/
ํ๋จ ๊ธฐ์ค: ์ด ๋ด์ฉ์ด 1์ฃผ์ผ ๋ค์๋ ๋ค์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ์๋๊ฐ?
- Yes โ namespace ํ์ด์ง๋ก ์น๊ฒฉ. ์ ๋์๋
[x] + -> [[๋งํฌ]]๋ง ๋จ๊ธด๋ค
- No โ ์ ๋์ 1์ค ์์ฝ + Slack ๋ฅ๋งํฌ
namespace ํ์ด์ง ์์ฑ ๊ท๊ฒฉ
namespace ์์ ํ๋จ
| ๊ธฐ์ค | ์์น | ์์ |
|---|
| ํน์ ํ๋ก์ ํธ์ ์ข
์ | projects/{name}/{type}/{์ ๋ชฉ}.md | projects/foo/decision/๋ฐฐํฌ ์ ๋ต.md |
| ํ๋ก์ ํธ ๋ฌด๊ด ๋ฒ์ฉ | {type}/{์ ๋ชฉ}.md | decision/Git worktree ์ด์ฉ ์์น.md |
| ์์ ๊ฐ๋
| know/{๊ฐ๋
๋ช
}.md | know/์คํ
์ด๋ธ์ฝ์ธ.md, know/์จ์คํ๋จํ.md |
ํ๋จ ๊ธฐ์ค: ์ด ๋ฌธ์๊ฐ ํน์ ํ๋ก์ ํธ ์์ด ์๋ฏธ๊ฐ ์๋๊ฐ?
- No โ
projects/{name}/{type}/{์ ๋ชฉ}.md (๋๋ถ๋ถ์ decision, troubleshoot, debrief, qa, spec, incident)
- Yes โ
{type}/{์ ๋ชฉ}.md
๋ฌธ์ ๊ฐ ์์กด ๋ฐฉํฅ
์์ ๋: ๊ฐ๋
(L0) > ๊ฒฐ์ /์คํ(L1) > ์ด๋ฒคํธ(L2) > ์ ๋/์ธ์
(L3)
- ์์กด์ ํญ์ ์์ ํ ์ชฝ์ ํฅํ๋ค โ L3โL2โL1โL0
- ์ ๋/์ธ์
์ด decision์ด๋ concept์
[[๋งํฌ]]๋ก ์ฐธ์กฐ โ OK
- concept์ด session์ ์ฐธ์กฐ โ NG
- ๊ฐ์ ๊ณ์ธต ๊ฐ ์ฐธ์กฐ โ OK (decision โ decision)
๊น์ด ์ ํ
- ์ต๋ 3 segment:
projects/{name}/{type}/{์ ๋ชฉ}.md
- 4๋จ ์ด์ ๊ธ์ง
- ํ๋ก์ ํธ ํ๋ธ ํ์ด์ง
projects/{name}/pj-{name}.md์์ Bases/Dataview๋ก ํ์ ์ง๊ณ
ํ์ผ ๋ค์ด๋ฐ
- ํ๋ก์ ํธ ์ข
์:
projects/{name}/{type}/{์ ๋ชฉ}.md (๋นํ์ฑ ํ๋ก์ ํธ๋ archive/{name}/{type}/{์ ๋ชฉ}.md)
- ํ๋ก์ ํธ ๋ฌด๊ด:
{type}/{์ ๋ชฉ}.md
- ๊ฐ๋
:
know/{์ ๋ชฉ}.md
- ์ ๋:
journals/YYYY-MM-DD.md
- ์ ๋ชฉ: ํ๊ตญ์ด ์ค๋ช
์ ์ ๋ชฉ, ๊ฐ๊ฒฐํ๊ฒ
- ํ์ค markdown ํ์ โ heading์
#/##/### ๊ทธ๋๋ก ์ฌ์ฉ. body์ list/checklist๋ง - ์ฌ์ฉ. - # ํค๋ฉ, - ## ํ์์ฒ๋ผ bullet๊ณผ heading ๊ฒฐํฉ์ logseq outliner ์์ฌ โ ๊ธ์ง (vault์ ~/Documents/obsidian/CLAUDE.md ๊ท์ฝ + scripts/migrate-outliner-to-markdown.rb๋ก ๋ง์ด๊ทธ๋ ์ด์
์งํ ์ค)
- ์ฒดํฌ๋ฆฌ์คํธ๋
- [ ]/[x]/[/]/[-] (Obsidian Tasks ํธํ). TODO/DONE ํค์๋ ๊ธ์ง
ํ์ frontmatter
---
project: pj-{name}
date: YYYY-MM-DD
status: {์ํ}
---
type์ ํด๋๋ก ์ด๋ฏธ ๊ตฌ๋ถ๋๋ฏ๋ก ๋ณ๋ frontmatter key ๋ถํ์
date๊ฐ ์ ๋ ๋งํฌ ์ญํ ์ ๊ฒธํจ โ ๋ณธ๋ฌธ์์ ์ ๋ ์ค๋ณต ์ฐธ์กฐํ์ง ์๋๋ค
project value๋ plain string (๋ง์ด๊ทธ๋ ์ด์
์ [[]] ์ ๊ฑฐ๋จ)
์ ํ frontmatter (freshness)
---
last-verified: YYYY-MM-DD
next-check: YYYY-MM-DD
---
last-verified: ์ด ๋ฌธ์์ ๋ด์ฉ์ด ๋ง์ง๋ง์ผ๋ก ์ ํํ๋ค๊ณ ํ์ธ๋ ๋ ์ง
next-check: ๋ค์ ํ์ธ์ด ํ์ํ ๋ ์ง
- ์ ์ฉ ๋์: issue, troubleshoot(investigating), incident(open) ๋ฑ active ์ํ namespace ํ์ด์ง
- resolved/closed/done์ด๋ฉด ๋ถํ์
- issue ํ์ด์ง์์๋
next-check ๊ธฐ๋ณธ 7์ผ ํ ์ค์
- ์ผ์ผ wakeup์ด
next-check ๊ธฐํ ์ด๊ณผ๋ฅผ ์๋ ๊ฐ์งํ๋ค
์นดํ
๊ณ ๋ฆฌ๋ณ ํ
ํ๋ฆฟ
ํค๋ฉ ๊ท์น: ํ์ค markdown # ์น์
๋ช
/ ## ํ์ ์น์
์ฌ์ฉ. bullet ๊ฒฐํฉ(- # ..., - ## ...)์ logseq ์์ฌ์ด๋ฉฐ ๊ธ์ง. body์ list/checklist๋ง - ์ฌ์ฉ.
troubleshoot
status: open / investigating / resolved / wontfix
---
project: pj-{name}
date: YYYY-MM-DD
status: investigating
---
# ์ํฉ
# ์กฐ์ฌ
# ๊ทผ๋ณธ ์์ธ
# ๊ฒฐ์
# ๊ด๋ จ ์๋ฃ
decision
status: proposed / accepted / rejected / superseded
# ๋งฅ๋ฝ
# ์ ํ์ง
# ๊ฒฐ์
# ๊ทผ๊ฑฐ
qa
status: draft / in-progress / done
# ๋์
# ์ฒดํฌ๋ฆฌ์คํธ
- ๊ทธ๋ฃน๋ช
- [ ] ํญ๋ชฉ
# ๊ฒฐ๊ณผ
spec
status: draft / agreed / implemented / deprecated
# ๋ฐฐ๊ฒฝ
# ์๊ตฌ์ฌํญ
# ๋ฒ์
incident
status: open / resolved / recurring
# ์ํฉ
# ํ์๋ผ์ธ
# ์์ธ
# ๋์
# ์ฌ๋ฐ ๋ฐฉ์ง
issue
status: open / in-progress / waiting / blocked / resolved / closed
์ ํ frontmatter: owner, stakeholders, last-verified, next-check
# ์ํฉ
# ์ปค๋ฎค๋์ผ์ด์
๋ก๊ทธ
# ์งํ ์ํฉ
# ๊ด๋ จ ์๋ฃ
์ปค๋ฎค๋์ผ์ด์
๋ก๊ทธ ํ์:
# ์ปค๋ฎค๋์ผ์ด์
๋ก๊ทธ
- YYYY-MM-DD {์ฑ๋: slack/email/meeting/call/github} {์๋๋ฐฉ}
- ์ง๋ฌธ/์์ฒญ ๋ด์ฉ
- ์๋ต/๊ฒฐ๊ณผ
- โ ์ํ ๋ณํ: {์ด์ } โ {์ดํ}
troubleshoot๊ณผ์ ์ฐจ์ด: troubleshoot์ ํ ๋ฒ์ ์กฐ์ฌโํด๊ฒฐ ์ฌ์ดํด. issue๋ ์ฅ๊ธฐ ์ถ์ โ ๋ณต์ ์ฌ์ดํด, ์ปค๋ฎค๋์ผ์ด์
์ถ์ , ์ํ ๋ณํ ์ด๋ ฅ. troubleshoot์ด ํด๊ฒฐ ์์ด ๊ธธ์ด์ง๋ฉด issue๋ก ์น๊ฒฉํ๋ค.
์ ์นดํ
๊ณ ๋ฆฌ
ํ
ํ๋ฆฟ ์์ด ํด๋๋ง ๋ง๋ค์ด๋ ๋จ. ๊ณตํต frontmatter + ์์ ํ์.
์์
์ฐ์ถ๋ฌผ ์ ์ฅ
- raw ๋ฐ์ดํฐ (JSON, ์คํฌ๋ฆฐ์ท, ๋ก๊ทธ ๋ฑ) โ
assets/ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ
- namespace ํ์ด์ง์์
 ๋๋ ๊ฒฝ๋ก ํ
์คํธ๋ก ์ฐธ์กฐ
๋ฐ์ด๋๋ฆฌ ์ฒจ๋ถ(PDFยทPPTXยท์ด๋ฏธ์ง) ๋งํฌยท์๋ฒ ๋
์ธ๋ถ ์ฐ์ถ๋ฌผ(PDF ์ค๊ณ์, PPTX, ์ด๋ฏธ์ง)์ vault๋ก ๊ฐ์ ธ์ฌ ๋:
- ๋ณด์กด:
projects/{name}/assets/(ํ์ ์ ํ์ ๋ถ๋ฅ ํด๋)์ ์๋ณธ ๋ณต์ฌ. binary๋ .gitignore whitelist๋ก git ์ ์ธ๋์ง๋ง ๋์คํฌ ๋ณด์กด โ Obsidian์์ ์ด๋ยท์๋ฒ ๋๋ ๊ฐ๋ฅ.
- ํด๋ฆญ ๊ฐ๋ฅํ ๋งํฌ๋ wikilink๋ก:
[[ํ์ผ๋ช
.pdf]]. ๋ฐฑํฑ ๊ฒฝ๋ก(`path/x.pdf`)๋ ์ฝ๋ ํ
์คํธ๋ผ ํด๋ฆญ ๋ถ๊ฐ โ ๋งํฌ๋ wikilink๋ก, ๊ฒฝ๋ก ์๋ด๊ฐ ๋ชฉ์ ์ผ ๋๋ง ๋ฐฑํฑ.
- PDF โ ํด๋ฆญ ์ Obsidian ๋ด์ฅ ๋ทฐ์ด๋ก inline ์ด๋ฆผ.
- PPTXยทdocx ๋ฑ ๋ฏธ์ง์ ํฌ๋งท โ ํด๋ฆญ ์ ์์คํ
๊ธฐ๋ณธ ์ฑ(Keynote/PowerPoint)์ผ๋ก ์ธ๋ถ ์ด๋ฆผ(Obsidian ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ถ๊ฐ).
- ํน์ ํ์ด์ง ์ฐธ์กฐ (PDF):
- ๋งํฌ(์ ํ):
[[ํ์ผ.pdf#page=N]]. ํ ์
์์์ alias ํ์ดํ๋ฅผ escape โ [[ํ์ผ.pdf#page=N\|ํ์ํ
์คํธ]] (์ ํ๋ฉด |๊ฐ ์ด ๊ตฌ๋ถ์๋ก ๊นจ์ง).
- ์๋ฒ ๋(์ธ๋ผ์ธ ๋ ๋):
![[ํ์ผ.pdf#page=N]] (#page=N&height=500 ๋์ด ์ต์
).
- ์๋ฒ ๋ ์ ์ ์์น: ์๋ฒ ๋๋ ํต์ฌ ํ๋ฉด๋ง. ํ๋ฉด๋ณ ์์ธ๊ฐ ๋ง์ด ํ์ํ๋ฉด ์์ฝ ๋ฌธ์์ ์์ง ๋ง๊ณ ํ๋ฉด ๊ทธ๋ฃน ๋จ์๋ก ๋ณ๋ ๋ฌธ์๋ฅผ ์๋ผ ์๋ฒ ๋ํ๋ค. ์์ฝยท์์ธ ๋ฌธ์๋ ํ์ด์ง ๋งํฌ๋ก ๊ฐ๋ณ๊ฒ ์ ์ง.
- ๋ ๋ ํ๊ณ: git ์ ์ธ binary๋ ๋ก์ปฌ Obsidian์์๋ง ๋งํฌยท์๋ฒ ๋๊ฐ ๋ ๋๋ง(GitHubยทํ ๋จธ์ X). ํ
์คํธ๊ฐ ์ด๋์๋ ํ์ํ๋ฉด
pdftotext -f N -l N <pdf> <out>๋ก ํด๋น ํ์ด์ง ํ
์คํธ๋ง ๋ ์ ์ฝ๋๋ธ๋ก์ผ๋ก ๋ฐ์ .
- ํ์ด์งโ์์น ๋งคํ: ์ฌ๋ผ์ด๋ PDF์์ ํ๋ฉด ID๋ณ ํ์ด์ง๋ฅผ ์ฐพ์ ๋
pdftotext -layout๋ก ํ
์คํธ๋ฅผ ๋ ์ ํ๋ฉด ID ๋ผ๋ฒจ์ page์ ํจ๊ป ์ถ์ถ(ํ์ด์ง ๋ง์ PDF๋ฅผ ์ด๋ฏธ์ง๋ก ์ง์ ์ฝ๋ ๊ฒ๋ณด๋ค ์ ๋ ด).
์์ฑ ํ ํ์ ์์
ํ์ด์ง ์์ฑ์ด ์๋ฃ๋๋ฉด ์๋ 3๋จ๊ณ๋ฅผ ์์๋๋ก ์ํํ๋ค.
์์ธ: ์๋ํ hook(session sync ๋ฑ)๊ณผ /debrief์์ ํธ์ถ๋๋ ๊ฒฝ์ฐ Step 1, 2, 4๋ ์๋ตํ๊ณ Step 3(ir update๋ง, embed ์๋ต)์ ์คํํ๋ค. ์ฌ์ฉ์๊ฐ ์ง์ /obsidian-write๋ฅผ ํธ์ถํ ๊ฒฝ์ฐ์๋ง ์ ์ฒด Step์ ์ํํ๋ค.
Step 1: ๋ฏธ์์ฑ ํค์๋ ์ ์
์์ฑํ ํ์ด์ง์์ [[๋งํฌ]]๋ก ๊ฐ์ผ ํค์๋๋ฅผ ๋ชจ๋ ์ถ์ถํ๊ณ , ์ค์ ํ์ด์ง๊ฐ ์๋ ๊ฒ์ ์๋ณํ๋ค.
์ถ์ถ ๋์์์ ์ ์ธ:
- frontmatter value:
project, date ๋ฑ์ ๊ฐ์ผ๋ก ์ฐ์ธ ๋งํฌ (์ด๋ฏธ plain string)
- ์ ๋ ๋ ์ง:
[[YYYY-MM-DD]] ํจํด
- ํ๋ก์ ํธ ํ๊ทธ:
[[pj-*]] ํจํด
- namespace ์๊ธฐ ์ฐธ์กฐ: ์์ฑ ์ค์ธ ํ์ด์ง ์์
ํ์ด์ง ์กด์ฌ ํ์ธ (Obsidian wikilink๋ path-aware):
test -f ~/Documents/obsidian/know/{ํค์๋}.md
test -f ~/Documents/obsidian/{type}/{์ ๋ชฉ}.md
test -f ~/Documents/obsidian/projects/{name}/{type}/{์ ๋ชฉ}.md
๋ฏธ์์ฑ ํค์๋๊ฐ ์์ผ๋ฉด ์ฌ์ฉ์์๊ฒ ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๊ณ ํ์ธ์ ์์ฒญํ๋ค:
๋ค์ ํค์๋๊ฐ ์์ง ํ์ด์ง๋ก ์กด์ฌํ์ง ์์ต๋๋ค:
- [[ํค์๋A]] โ ๋ณธ๋ฌธ์์ {์ฌ์ฉ ๋งฅ๋ฝ ํ ์ค}
- [[ํค์๋B]] โ ๋ณธ๋ฌธ์์ {์ฌ์ฉ ๋งฅ๋ฝ ํ ์ค}
์์ฑํ ํค์๋๋ฅผ ์ ํํด์ฃผ์ธ์ (์ ์ฒด/์ผ๋ถ/์คํต).
์ฌ์ฉ์๊ฐ ์ ํํ๋ฉด ๊ฐ๋
ํ์ด์ง๋ฅผ Atomic Notes ์์น์ ๋ฐ๋ผ know/์ ์์ฑํ๋ค:
---
aliases: [{์๋ฌธ ๋๋ ๋์ฒด ํํ}]
description: {ํ ์ค ์ค๋ช
}
---
- {์๋ ํ์ด์ง์์์ ์ฌ์ฉ ๋งฅ๋ฝ์ ๊ธฐ๋ฐ์ผ๋ก 1-2์ค ๊ธฐ๋ณธ ๋ด์ฉ}
- ๊ด๋ จ: [[์๋ ์์ฑํ ํ์ด์ง]]
Step 2: ๊ด๋ จ ๊ฐ๋
๋ฅ๋ ํ์
์์ฑ๋ ํ์ด์ง์ ํต์ฌ ํค์๋ 3-5๊ฐ๋ฅผ ์ถ์ถํ์ฌ ir search๋ก ๊ด๋ จ ๊ธฐ์กด ํ์ด์ง๋ฅผ ํ์ํ๋ค.
ํค์๋ ์ถ์ถ ๊ธฐ์ค:
- ํ์ด์ง ์ ๋ชฉ์ ํต์ฌ์ด
- ๋ณธ๋ฌธ์์ ๋ฐ๋ณต ๋ฑ์ฅํ๋ ๋๋ฉ์ธ ์ฉ์ด
- ์ด๋ฏธ
[[๋งํฌ]]๋ก ์ฐ๊ฒฐํ ๊ฒ์ ์ ์ธ
ํ์ ์คํ:
ir search "{ํค์๋}" -n 5 --files
๊ฒฐ๊ณผ ํํฐ๋ง:
- ์ด๋ฏธ ๋ณธ๋ฌธ์์
[[๋งํฌ]]๋ก ์ฐ๊ฒฐํ ํ์ด์ง๋ ์ ์ธ
- ์๊ธฐ ์์ , ์ ๋ ํ์ด์ง(
journals/) ์ ์ธ
๊ด๋ จ ํ์ด์ง๊ฐ ์์ผ๋ฉด ์ฌ์ฉ์์๊ฒ ์ฐ๊ฒฐ์ ์ ์ํ๋ค.
Step 3: ์ธ๋ฑ์ค ๊ฐฑ์
ir update
ir embed
Step 1์์ ์ ํ์ด์ง๊ฐ ์์ฑ๋์์ ์ ์์ผ๋ฏ๋ก, ๋ฐ๋์ ๋ชจ๋ ์์
์๋ฃ ํ ๋ง์ง๋ง์ ์คํํ๋ค.
Step 4: ํ์ต ์ง๋ฌธ ์์ฑ
์์ฑํ ๋ด์ฉ์ ๋๋ฉ์ธ ๊ฐ๋
์ด ํฌํจ๋์ด ์์ผ๋ฉด ์ฌ์ฉ์์๊ฒ 2-3๊ฐ์ ํ์ต ์ง๋ฌธ์ ์ ์ํ๋ค. soul.md์ ๋ฅ๋ ํ์ต ์์น ์คํ ๋จ๊ณ.
ํธ๋ฆฌ๊ฑฐ ์กฐ๊ฑด (ํ๋ ์ด์ ํด๋น):
- ์ ๋๋ฉ์ธ ๊ฐ๋
์ด ๋ฑ์ฅ (๋ฏธ์์ฑ ํค์๋, ๋๋ ๊ธฐ์กด ๊ฐ๋
์ ์๋ก์ด ๋งฅ๋ฝ)
- spec, decision ๋ฑ ํ๋จ์ด ์๋ฐ๋๋ ๋ด์ฉ
- ์ธ๋ถ ์ฐ์ถ๋ฌผ(Slack, ๋ฌธ์, ๊ธฐ์ฌ)์ ์ ๋ฆฌํ ๊ฒฝ์ฐ
์คํต ์กฐ๊ฑด:
- ๋จ์ TODO ์ํ ๋ณ๊ฒฝ, ์ ๋ ํ์ ๊ธฐ๋ก
- ์๋ํ hook์์ ํธ์ถ๋ ๊ฒฝ์ฐ (session sync ๋ฑ)
- ์ฌ์ฉ์๊ฐ "๋ฐ๋ก ํด"๋ผ๊ณ ์ง์ํ ๊ฒฝ์ฐ
์ง๋ฌธ ์ค๊ณ ์์น:
- ๊ฐ๋
ํ์ธ: "X๊ฐ ์ด ๋งฅ๋ฝ์์ ์ด๋ค ์ญํ ์ ํ๋์ง ๊ฐ์ด ์ค์ธ์?"
- ์ฐ๊ฒฐ: "X์ ๊ธฐ์กด์ ์๋ Y์ ๊ด๊ณ๊ฐ ๋ณด์ด์๋์?"
- ํ๋จ: "์ด ๊ฒฐ์ /์ ์์ trade-off๊ฐ ๋ญ๊น์?"
- ์ค๋ฌด ์ ์ฉ: "์ด๊ฒ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ Z์ ์ด๋ป๊ฒ ์ํฅ์ ์ค๊น์?"
ํ์: ์ง๋ฌธ 2-3๊ฐ๋ฅผ ๋ฒํธ๋ก ์ ์. ์ฌ์ฉ์๊ฐ ๋ตํ๋ฉด ๋ณด์/ํ์ฅํ๊ณ , ๊ฐ๋
ํ์ด์ง์ ์ฌ์ฉ์์ ์ดํด๋ฅผ ๋ฐ์. "์คํต"ํ๋ฉด ๋์ด๊ฐ๋ค.