필수 플러그인 설정
백엔드 개발자에게 필수적인 Obsidian 플러그인을 설치하고 설정하는 방법을 배웁니다.
개요
Obsidian의 강력한 기능은 플러그인에서 나옵니다. 이 가이드에서는 Claude Code 연동, 문서 관리, 시각화를 위한 필수 플러그인을 다룹니다.
학습 목표
- Obsidian Local REST API 설치 및 설정
- Dataview로 동적 쿼리 작성
- Excalidraw로 다이어그램 작성
- Templates로 템플릿 관리
- Daily Notes로 일일 기록
플러그인 개요
필수 플러그인 5가지
| 플러그인 | 용도 | MCP 연동 | 중요도 |
|---|---|---|---|
| Local REST API | Claude와 연동 | ⭐ 필수 | ⭐⭐⭐⭐⭐ |
| Dataview | 동적 쿼리 | - | ⭐⭐⭐⭐⭐ |
| Excalidraw | 다이어그램 | - | ⭐⭐⭐⭐ |
| Templates | 템플릿 | - | ⭐⭐⭐⭐ |
| Daily Notes | 일일 기록 | - | ⭐⭐⭐⭐ |
1. Obsidian Local REST API
설치 및 설정
flowchart LR
A[설정] --> B[서드파티 플러그인]
B --> C[찾아보기]
C --> D[Local REST API 검색]
D --> E[설치 및 활성화]
E --> F[API Key 생성]
F --> G[포트 설정]
고급 설정
1. API Key 관리
보안을 위해 API Key를 안전하게 관리하세요:
❌ 하지 말 것
- .mcp.json에 직접 API Key 작성 후 Git 커밋
- 공유된 화면에 API Key 노출
✅ 권장 방법
- .gitignore에 .mcp.json 추가
- 환경 변수로 관리
- 팀별로 고유 API Key 사용
2. CORS 설정
외부 도구에서 접근해야 할 경우:
REST API 설정 → CORS:
- Enable CORS: ON
- Allowed origins: http://localhost:3000
3. 인증 방식
# Basic Auth
curl -u username:password http://127.0.0.1:27123
# Bearer Token
curl -H "Authorization: Bearer YOUR_API_KEY" http://127.0.0.1:27123
사용 가능한 엔드포인트
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/ | GET | API 상태 확인 |
/notes/ | GET | 전체 노트 목록 |
/notes/{path} | GET | 특정 노트 읽기 |
/notes/ | POST | 새 노트 생성 |
/notes/{path} | PUT | 노트 수정 |
/notes/{path} | DELETE | 노트 삭제 |
/search/ | POST | 노트 검색 |
2. Dataview
개요
Dataview는 Markdown 노트를 데이터베이스처럼 쿼리할 수 있게 해줍니다.
설치
- 설정 → 서드파티 플러그인 → 찾아보기
- “Dataview” 검색
- 설치 및 활성화
기본 쿼리
LIST 쿼리
## 모든 트러블슈팅 노트
```dataview
LIST
FROM #troubleshooting
SORT file.ctime DESC
결과:
- [[Redis 동시성 이슈]]
- [[Kafka 랙 문제]]
- [[PostgreSQL 쿼리 최적화]] ```
TABLE 쿼리
## 프로젝트 현황
```dataview
TABLE
status as "상태",
file.ctime as "생성일",
target-date as "목표일"
FROM #project
WHERE status = "in-progress"
SORT target-date ASC
결과:
| 파일 | 상태 | 생성일 | 목표일 |
|------|------|--------|--------|
| [[AI 스마트편의팩]] | in-progress | 2025-01-01 | 2025-03-31 |
| [[Kafka 마이그레이션]] | in-progress | 2025-01-05 | 2025-02-28 |
#### TASK 쿼리
```markdown
## 미완료 작업
```dataview
TASK
FROM #daily
WHERE !completed
GROUP BY file.link
### 고급 쿼리
#### 필터링
```markdown
## Redis 관련 노트 (최근 30일)
```dataview
TABLE file.ctime, tags
FROM #troubleshooting
WHERE contains(tags, "redis")
AND file.ctime >= date(today) - dur(30 days)
SORT file.ctime DESC
#### 계산
```markdown
## 프로젝트 진행률
```dataview
TABLE
(sum(map(file.tasks, (t) => t.completed)) /
sum(map(file.tasks, (t) => 1))) * 100 as "진행률 %"
FROM #project
WHERE file.tasks
#### CALCUATE
```markdown
## 기술별 노트 수
```dataview
CALCULATE length(filter(#troubleshooting, (t) => contains(t.tags, "redis")))
FROM #troubleshooting
### 백엔드 개발자를 위한 쿼리 예제
```markdown
## 1. 해결되지 않은 트러블슈팅
```dataview
TABLE
file.link as "문제",
created as "발생일",
tags as "관련 기술"
FROM #troubleshooting
WHERE status = "open"
SORT created DESC
2. 기술별 학습 노트
TABLE
file.link,
read-date,
rating
FROM #learning
WHERE contains(tags, "java")
GROUP BY tags
3. 최근 API 변경사항
TABLE
file.link,
version,
changes
FROM #api
WHERE file.mtime >= date(today) - dur(7 days)
SORT file.mtime DESC
4. 프로젝트별 API 문서
TABLE
file.link,
endpoint,
method
FROM #api
WHERE contains(project, "ai-smart-convenience")
---
## 3. Excalidraw
### 개요
Excalidraw는 손그림 스타일의 다이어그램을 그릴 수 있습니다.
### 설치
1. 설정 → 서드파티 플러그인 → 찾아보기
2. "Obsidian Excalidraw" 검색
3. 설치 및 활성화
### 백엔드 아키텍처 다이어그램
#### 시스템 아키텍처
Excalidraw 파일 내에서:
- 도형 툴로 컴포넌트 그리기
- 화살표로 연결
- 텍스트로 라벨 추가
- 레이어로 구조화 ```
활용 예시
graph TB
subgraph "Excalidraw 활용"
A[시스템 아키텍처]
B[API 흐름도]
C[ER 다이어그램]
D[배포 파이프라인]
E[네트워크 토폴로지]
end
4. Templates
개요
반복적으로 사용하는 문서 형식을 템플릿으로 저장하고 빠르게 불러옵니다.
설정
- Templates 폴더 지정
- 단축키 설정 (기본:
Ctrl/Cmd + T)
템플릿 변수
# 템플릿 파일
---
title:
date:
tags: [troubleshooting, ]
---
#
## 발생 일시
## 문제 상황
## 원인 분석
## 해결 방법
## 재발 방지
사용 시 변수가 자동으로 치환됩니다.
동적 템플릿
#
<%*
let title = tp.file.title;
let date = tp.date.now("YYYY-MM-DD");
tR += `생성일: ${date}\n\n`;
*%>
## 목차
- [[/개요]]
- [[/기술 스택]]
- [[/API 설계]]
5. Daily Notes
개요
매일 자동으로 날짜별 노트를 생성합니다.
설정
flowchart LR
A[Daily Notes 설정] --> B[새 노트 위치]
B --> C[Daily/ 폴더]
A --> D[파일명 형식]
D --> E[YYYY-MM-DD.md]
A --> F[템플릿]
F --> G[Templates/daily-note.md]
템플릿 연동
# Templates/daily-note.md
---
date:
tags: [daily]
---
#
## 오늘의 계획
- [ ]
- [ ]
## 회의
- [[14:00 - 스프린트 플래닝]]
## 배운 것
## 해결한 문제
## 내일 할 일
## 참고 자료
플러그인 조합 활용
시나리오: 주간 회고 자동화
## Claude와 Dataview 조합
"이번 주(2025-01-06 ~ 2025-01-10) 일일 노트들을
분석해서 주간 회고를 작성해줘"
Claude가:
1. Dataview로 해당 기간 노트 조회
2. 완료된 작업 추출
3. 해결한 문제 정리
4. 다음 주 계획 수립
# Claude가 사용하는 쿼리
TABLE tasks
FROM #daily
WHERE file.ctime >= date(2025-01-06)
AND file.ctime <= date(2025-01-10)
WHERE completed
실습 과제
- Local REST API 설치 및 API Key 생성
- Dataview로 프로젝트 현황 테이블 만들기
- Excalidraw로 간단한 아키텍처 다이어그램 그리기
- Daily Notes 템플릿 만들기
- 트러블슈팅 템플릿 만들기
참고 자료
다음 단계
플러그인을 설정했으니, 실제 폴더 구조를 만들어봅시다.
| → [[07-folder-structure | 폴더 구조 예시]]로 계속하세요 |