大大小小 ACTIVITIES

대대소소의 소식을 전합니다.

ABOUT US

블로거 대대소소가 운영하는 블로그입니다. 다양한 정보와 인사이트를 공유합니다.

INNOVATION

최신 기술과 트렌드를 통해 혁신적인 컨텐츠를 제공합니다.

CONTENT

유용하고 흥미로운 컨텐츠를 지속적으로 업데이트합니다.

옵시디언(Obsidian)과 MCP로 완전 자동화된 지식 관리 시스템 만들기 - 제 1년 사용 후기

안녕하세요! 노트 앱 덕후로 살아온 지 벌써 5년째인데요, 에버노트부터 시작해서 노션, 로그시크... 정말 별걸 다 써봤어요 😅

그런데 작년에 옵시디언(Obsidian)에 MCP(Model Context Protocol)라는 걸 연결해서 쓰기 시작했는데, 이게 진짜 게임 체인저더라고요! AI가 제 노트를 읽고 쓰고 검색하고... 완전 개인 비서 수준이에요.

처음엔 설정이 좀 복잡해서 "이거 왜 하지?" 싶었는데, 지금은 이거 없으면 못 살 것 같아요. 제가 1년 넘게 써보면서 터득한 활용법들을 공유해볼게요!

📋 목차 (바쁘신 분들은 3번부터 보세요!)

  1. MCP + Obsidian이 뭐길래? (기초 개념)
  2. 실제로 뭘 할 수 있나? (핵심 기능들)
  3. 제가 매일 쓰는 활용법 BEST 5 (실전!)
  4. 다른 도구들과 연동하기 (업무 자동화)
  5. 설정하면서 겪었던 시행착오들
  6. 이거 꼭 써봐야 하는 사람 vs 굳이 안 써도 되는 사람

💡 도입부: 혹시 이런 고민 하고 계신가요?

  • "노트는 열심히 쓰는데, 나중에 찾기가 너무 힘들어요..."
  • "AI한테 내 자료 보여주고 싶은데 매번 복붙하기 귀찮아요"
  • "회의록, 할 일, 아이디어... 다 따로 관리하니까 머리 아파요"
  • "블로그 글 쓸 때마다 전에 뭐 썼는지 찾느라 시간 다 가요"

저도 완전 똑같았어요! 특히 블로그 쓰는 사람으로서, 예전에 뭐 썼는지 찾는 게 진짜 스트레스였거든요. 그런데 이제는 Claude한테 "저번에 SEO 관련해서 뭐 썼더라?" 하면 바로 찾아줘요 😊

이 글을 다 읽고 나면:

  • ✅ AI가 내 노트를 자동으로 관리하게 만드는 법
  • ✅ 웹 검색 결과를 노트에 바로 저장하는 법
  • ✅ 슬랙, 구글맵 등 다른 도구들과 연동하는 법
  • ✅ 실제 업무/공부/블로깅에 써먹는 법

이런 걸 알 수 있을 거예요!

🎯 1. MCP + Obsidian이 뭐길래?

옵시디언(Obsidian)이란?

마크다운으로 노트 쓰는 프로그램이에요. 노션이랑 비슷한데, 중요한 차이점이 있어요:

  • 내 컴퓨터에 저장됨 (클라우드 아님! 이게 진짜 중요)
  • 완전 무료 (유료 기능도 있긴 한데 안 써도 됨)
  • 플러그인 천국 (원하는 기능 다 추가 가능)

MCP(Model Context Protocol)는?

Anthropic(Claude 만든 회사)에서 만든 건데요, 쉽게 말하면 AI가 내 프로그램들을 직접 제어할 수 있게 해주는 다리 같은 거예요.

예를 들면:

  • AI가 내 옵시디언 노트를 직접 읽고 쓰고
  • 웹에서 정보 찾아서 노트에 정리하고
  • 슬랙 메시지 보내고
  • 구글맵에서 장소 찾고...

이런 걸 다 자동으로 할 수 있어요!

왜 이 조합이 좋은가?

옵시디언: 내 노트가 내 컴퓨터에 있으니까 보안 걱정 없음 MCP: AI가 노트를 직접 관리해주니까 내가 할 일이 줄어듦 Claude: 똑똑한 AI라서 맥락을 잘 이해함

저는 이 세 가지가 합쳐지니까 완전 시너지 효과더라고요!

🛠️ 2. 실제로 뭘 할 수 있나? (핵심 기능들)

제가 1년 넘게 써보면서 자주 쓰는 기능들을 정리해봤어요.

📝 기본 노트 관리 (제일 많이 써요!)

파일 읽기/쓰기

  • Claude한테 "어제 회의록 보여줘" 하면 바로 찾아줌
  • "새로운 프로젝트 노트 만들어줘" 하면 템플릿 적용해서 생성
  • 여러 파일 한 번에 읽어서 요약도 해줌 (이거 완전 꿀팁!)

실제 사용 예시:

 
 
나: "지난주에 쓴 블로그 초안들 다 보여줘"
Claude: [3개 파일 읽어서] "SEO 가이드, 마케팅 전략, 키워드 리서치 
총 3개 있네요. 어떤 걸 먼저 다듬을까요?"
```

**파일 수정**
- 특정 부분만 골라서 수정 가능
- 제목별로 내용 추가/변경
- 앞뒤 내용 보존하면서 중간만 고침 (이게 진짜 편해요!)

### 🔍 검색 기능 (이거 진짜 강력해요!)

**일반 검색**
- 키워드로 노트 찾기 (기본 중의 기본)
- 관련 문장 하이라이트해서 보여줌

**시맨틱 검색 (이게 진짜 신기해요!)**
- 정확한 키워드 몰라도 의미로 찾아줌
- "프로젝트 마감일 놓쳐서 스트레스받았던 이야기" 이렇게 물어봐도 찾아줌!

**실제 경험담:**
작년에 "그때 그 레스토랑 이름 뭐였지?"를 찾으려고 했는데, 정확한 이름은 기억 안 나고 "친구랑 간 이탈리안 맛집"이라고만 검색했더니 바로 찾아주더라고요. 완전 감동!

### 🌐 웹 통합 (이거 없으면 못 살아요)

**웹 검색 → 노트 저장**
제가 제일 많이 쓰는 기능이에요!
```
나: "2025년 SEO 트렌드 조사해서 정리해줘"
Claude: [웹 검색 → 여러 사이트 읽음 → 옵시디언에 노트 작성]
"SEO Trends 2025.md 파일에 정리해뒀어요!"
```

이거 진짜 블로그 쓸 때 개꿀이에요. 예전엔 검색하고 → 복붙하고 → 정리하고... 이 과정이 1시간 걸렸는데, 이제는 5분이면 끝!

**웹페이지 내용 가져오기**
- URL 주면 내용 추출해서 노트에 저장
- 긴 글도 자동으로 요약

제가 실제로 쓰는 방법:
1. 아침에 뉴스레터 읽으면서 흥미로운 기사 발견
2. "이 기사 요약해서 '읽을거리' 폴더에 저장해줘" → URL만 줌
3. 끝! 나중에 한꺼번에 읽어봄

### 📊 폴더/파일 관리

**디렉토리 구조 보기**
- 전체 노트 구조를 한눈에 확인
- 어디에 뭐가 있는지 파악 가능

**파일 찾기**
- 파일명 일부만 기억나도 찾아줌
- 확장자별로 필터링도 가능

**파일 이동/이름 변경**
- "2024년 노트들 전부 아카이브 폴더로 옮겨줘"
- 이런 대량 작업도 한 번에!

## 🔥 3. 제가 매일 쓰는 활용법 BEST 5 (실전!)

이 부분이 진짜 중요해요. 기능은 알았으니, 실제로 어떻게 쓰는지 보여드릴게요!

### 1️⃣ 아침 루틴: 오늘의 할 일 자동 정리

**제가 하는 방법:**
```
나: "오늘 할 일 정리해줘"
Claude: 
[캘린더 확인 → 슬랙 메시지 확인 → 프로젝트 노트 확인]
"오늘의 할 일 (2025-10-19).md 파일 만들었어요!"

파일 내용:

 
 
markdown
# 오늘의 할 일 (2025년 10월 19일)

## 🔥 급한 일
- [ ] 블로그 글 마감 (오후 3시까지)
- [ ] 클라이언트 미팅 준비

## 📅 회의
- 오후 2시: 팀 미팅 (슬랙 DM에서 확인)

## 💡 여유있으면
- [ ] 다음 주 콘텐츠 기획
```

이거 하나로 아침에 뭐 할지 고민하는 시간이 완전 사라졌어요!

### 2️⃣ 블로그 글쓰기 워크플로우

제가 블로그 하나 쓰는 과정이에요:

**1단계: 키워드 조사**
```
나: "옵시디언 플러그인 추천 키워드 조사해줘"
Claude: [웹 검색 + 네이버 트렌드 분석]
"'옵시디언 플러그인 추천', '옵시디언 사용법'이 검색량 많네요.
키워드 조사 결과를 Research/Obsidian-Keywords.md에 저장했어요!"
```

**2단계: 경쟁 글 분석**
```
나: "상위 5개 블로그 글 분석해줘"
Claude: [URL들 읽어서 분석]
"공통적으로 다루는 플러그인들과 빠진 부분을 정리했어요!"
```

**3단계: 초안 작성**
```
나: "분석 내용 바탕으로 초안 작성해줘"
Claude: [Draft 폴더에 초안 생성]
"초안 작성 완료! 2,500자 정도 되네요."
```

**4단계: 수정 및 발행**
```
나: "이 부분 좀 더 자세하게 써줘" (특정 섹션 수정)
나: "SEO 체크해줘" (메타 태그, 키워드 밀도 확인)
```

예전엔 블로그 글 하나 쓰는 데 3-4시간 걸렸는데, 이제는 1시간이면 완성이에요!

### 3️⃣ 학습 노트 자동 정리

**강의 들으면서:**
```
나: "오늘 본 Next.js 강의 내용 정리해줘"
나: [대충 메모한 내용 붙여넣기]
Claude: 
"정리해서 Learning/Nextjs/Lesson-03.md에 저장했어요!
관련해서 지난번에 정리한 Lesson-01, 02 파일도 연결해뒀어요."
```

**복습할 때:**
```
나: "Next.js 공부한 거 전체 요약해줘"
Claude: [모든 강의 노트 읽어서]
"3번의 강의에서 배운 핵심 내용을 요약했어요!
- 라우팅: ...
- 서버 컴포넌트: ...
- API Routes: ..."
```

이렇게 하니까 나중에 복습할 때 정말 편하더라고요!

### 4️⃣ 프로젝트 관리

**프로젝트 시작:**
```
나: "새 프로젝트 'Landing Page Redesign' 시작해줘"
Claude: 
[프로젝트 템플릿 적용해서 폴더 구조 생성]
Projects/Landing-Page-Redesign/
  ├── README.md (프로젝트 개요)
  ├── Tasks.md (할 일 목록)
  ├── Meeting-Notes/ (회의록)
  └── Resources/ (참고 자료)
```

**진행 상황 체크:**
```
나: "Landing Page 프로젝트 진행 상황 알려줘"
Claude:
"현재 완료: 60%
- ✅ 디자인 시안 완료
- 🔄 프론트엔드 개발 중
- ⏳ 백엔드 API 대기중
마감일까지 5일 남았어요!"
```

### 5️⃣ 일일 회고 자동화

매일 저녁에 하는 루틴이에요:
```
나: "오늘 하루 회고 작성해줘"
Claude:
[오늘의 할 일 파일 → 완료된 항목 체크]
[슬랙 메시지 → 주요 대화 요약]
[캘린더 → 참석한 회의 정리]

"Daily/2025-10-19.md에 회고를 작성했어요!

## 완료한 일
- ✅ 블로그 글 2개 작성
- ✅ 클라이언트 미팅

## 배운 점
- MCP 활용법 더 깊이 이해

## 내일 할 일
- [ ] 프로젝트 제안서 작성
```

이거 하면서 생산성이 정말 많이 올랐어요. 뭘 했는지 기록이 남으니까 성취감도 크고요!

## 🔗 4. 다른 도구들과 연동하기 (업무 자동화)

MCP의 진짜 힘은 여기서 나와요! 다른 도구들이랑 연결하면 완전 자동화 가능해요.

### 💬 슬랙(Slack) 연동

**제가 쓰는 방법들:**

**회의 전 준비:**
```
나: "개발팀 채널 최근 메시지 읽고 요약해줘"
Claude: [슬랙 메시지 100개 읽음]
"지난주 논의된 주요 이슈:
1. API 응답 속도 개선 필요
2. 새로운 기능 우선순위 논의
3. 다음 스프린트 계획..."
```

**중요 메시지 저장:**
```
나: "방금 받은 피드백 내용 프로젝트 노트에 추가해줘"
Claude: [슬랙에서 메시지 가져옴 → 옵시디언에 저장]
"Projects/Current/Feedback.md에 추가했어요!"
```

**자동 알림:**
```
나: "프로젝트 마감 내일이니까 팀 채널에 리마인더 보내줘"
Claude: [슬랙 메시지 전송]
"리마인더 보냈어요! 🎯"
```

솔직히 슬랙 메시지 정리하는 게 제일 귀찮았는데, 이제는 Claude가 다 해줘서 편해요!

### 🗺️ 구글맵(Google Maps) 연동

여행 계획 세울 때 완전 꿀이에요!

**여행지 조사:**
```
나: "제주도 서귀포 맛집 10곳 찾아서 지도에 표시하고 
     여행 노트에 정리해줘"
Claude:
[구글맵에서 검색 → 평점/리뷰 확인 → 옵시디언에 정리]
"Travel/Jeju-Trip/Restaurants.md 파일에 정리했어요!

## 서귀포 맛집 리스트
1. 🍜 **흑돼지거리** (4.5⭐)
   - 주소: 서귀포시 ...
   - 특징: 제주 흑돼지 전문
   - 거리: 호텔에서 2.3km
   
2. 🐟 **해녀의 집** (4.7⭐)
   - 주소: ...
   - 특징: 싱싱한 해산물
   - 거리: 1.8km
..."
```

**루트 최적화:**
```
나: "이 맛집들 거리순으로 정렬하고 하루 동선 짜줘"
Claude:
[거리 계산 → 최적 동선 계획]
"Day 1 동선 (총 이동거리: 15km)
아침: 호텔 → 해녀의 집 (1.8km, 도보 20분)
점심: ...
저녁: ..."
```

진짜 여행 계획이 이렇게 쉬울 수가 없어요!

### 🎨 Figma 연동 (디자이너/개발자용)

디자인 작업할 때도 유용해요:
```
나: "Figma에서 현재 선택된 컴포넌트 코드로 만들어줘"
Claude: [Figma에서 디자인 읽음 → React 코드 생성]
"Components/Button.jsx 파일에 저장했어요!"
```

### 🤖 Puppeteer (웹 자동화)

**웹사이트 모니터링:**
```
나: "경쟁사 블로그 새 글 올라오면 알려줘"
Claude: [주기적으로 웹사이트 체크 → 새 글 발견 시 알림]
```

**스크린샷 자동 저장:**
```
나: "이 페이지 스크린샷 찍어서 프로젝트 폴더에 저장해줘"
Claude: [스크린샷 촬영 → 옵시디언에 저장]
```

## ⚠️ 5. 설정하면서 겪었던 시행착오들

솔직히 처음엔 좀 헤맸어요 ㅠㅠ 제가 실수했던 것들 공유할게요.

### 실수 1: 폴더 구조 너무 복잡하게 만들기

**처음에 한 짓:**
```
Projects/
  ├── Work/
  │   ├── Client-A/
  │   │   ├── 2024/
  │   │   │   ├── Q1/
  │   │   │   │   ├── January/
  │   │   │   │   │   ├── Week-1/
  │   │   │   │   │   │   ├── ...
```

이렇게 했더니 찾기도 어렵고 Claude도 헷갈려하더라고요 😅

**개선 후:**
```
Projects/
  ├── Active/ (현재 진행 중)
  ├── Archive/ (완료된 것들)
  └── Templates/ (템플릿)
```

훨씬 간단하니까 관리하기 편해요!

### 실수 2: 파일 이름에 공백/특수문자 사용

**나쁜 예:**
```
"2024년 1월 회의록 (중요!).md"
"프로젝트 #1 - 수정본_최종_진짜최종.md"
```

이러면 자동화할 때 오류 나요!

**좋은 예:**
```
"2024-01-Meeting-Notes.md"
"Project-01-Final.md"

영문, 숫자, 하이픈만 쓰는 게 제일 안전해요.

실수 3: 너무 많은 플러그인 설치

처음엔 "와 이것도 되네? 저것도 되네?" 하면서 플러그인을 30개 넘게 깔았어요. 그랬더니 옵시디언이 느려지고 플러그인끼리 충돌나고... 난리였어요.

지금 쓰는 필수 플러그인 (10개 이하):

  • Obsidian Local REST API (MCP 연동용, 필수!)
  • Dataview (검색용)
  • Templater (템플릿용)
  • Calendar (일일 노트용)
  • Tag Wrangler (태그 정리용)

이 정도만 있어도 충분해요!

실수 4: 보안 설정 안 하기

MCP는 강력한 만큼 위험할 수도 있어요. API 키 같은 거 노트에 그대로 저장했다가 큰일 날 뻔했어요!

꼭 해야 하는 것:

  • API 키는 별도 파일에 저장 (Git에 올리지 말 것!)
  • 민감한 폴더는 MCP 접근 제한
  • 정기적으로 백업 (이거 정말 중요!)

실수 5: 백업 안 하기

한 번 파일이 날아갔을 때 정말... 눈앞이 깜깜했어요 😭 다행히 일부는 복구했지만, 한 달치 노트가 증발했어요.

지금 하는 백업 방법:

  1. Git으로 버전 관리 (매일 자동 커밋)
  2. 클라우드 동기화 (Dropbox, iCloud 중 택1)
  3. 외장하드 주간 백업

귀찮아도 백업은 꼭 하세요! 진짜로요!

💎 6. 이거 꼭 써봐야 하는 사람 vs 굳이 안 써도 되는 사람

✅ 강력 추천하는 사람들

1. 블로거 / 콘텐츠 크리에이터

  • 자료 조사 → 정리 → 초안 작성이 자동화돼요
  • 예전에 쓴 글 찾기 쉬워요
  • SEO 키워드 관리도 편해요 저도 블로거라서 진짜 많이 도움받고 있어요!

2. 프리랜서 / 1인 사업자

  • 여러 프로젝트 동시 관리
  • 클라이언트별 자료 정리
  • 업무 자동화로 시간 절약 시간이 곧 돈인 프리랜서에게 완전 필수!

3. 개발자

  • 코드 스니펫 관리
  • 기술 문서 자동 정리
  • Figma, GitHub 등 다른 도구와 연동 특히 프론트엔드 개발자분들한테 좋을 것 같아요.

4. 학생 / 연구자

  • 논문 정리
  • 강의 노트 자동화
  • 참고자료 관리 공부하면서 정리까지 되니까 일석이조!

5. 중간관리자

  • 회의록 자동 정리
  • 팀 커뮤니케이션 관리
  • 보고서 작성 지원 특히 슬랙 연동이 엄청 유용할 거예요.

❌ 굳이 안 써도 되는 사람들

1. 노트 거의 안 쓰는 사람

  • 딱히 기록할 게 없으면 과한 도구예요
  • 간단한 메모장이면 충분할 수도

2. 디지털 도구 낯선 분들

  • 설정이 좀 복잡해서 진입장벽 있어요
  • 노션, 에버노트도 어려우면 이건 더 어려워요

3. 모바일만 쓰시는 분

  • 옵시디언 모바일 앱도 있긴 한데, MCP는 PC에서만 가능
  • 주로 휴대폰으로 작업하시면 별로예요

4. 간단한 할 일 관리만 필요한 분

  • 투두리스트 앱 하나면 충분해요
  • 이 정도 시스템은 오버일 수 있어요

🎯 제가 1년 써보고 내린 결론

장점:

  • ✅ 정보 관리가 완전히 자동화됨
  • ✅ 검색이 정말 강력함 (시맨틱 검색 최고!)
  • ✅ 다른 도구들과 연동 가능
  • ✅ 내 데이터가 내 컴퓨터에 있어서 안심
  • ✅ 업무 생산성 최소 2배는 올라감

단점:

  • ❌ 초기 설정이 좀 복잡함 (2-3시간 필요)
  • ❌ 학습 곡선이 있음 (1-2주는 적응 기간 필요)
  • ❌ Claude API 비용 발생 (근데 생각보다 적게 나와요)
  • ❌ 가끔 AI가 실수함 (100% 신뢰는 금물)

솔직한 총평: 처음 한 달은 "이거 내가 왜 하지?" 싶었어요. 설정하기 귀찮고, 익숙한 노션이 더 편하고...

근데 두 달째부터 느끼기 시작했어요. "어? 이거 없으면 어떻게 했지?" 이제는 하루에 최소 50번은 쓰는 것 같아요.

시간 절약 효과:

  • 블로그 글쓰기: 4시간 → 1시간
  • 자료 조사: 2시간 → 30분
  • 회의록 정리: 1시간 → 10분
  • 일일 계획: 30분 → 5분

하루에 5-6시간 절약되는 셈이에요. 이게 쌓이면 1년에 1,800시간... 거의 9개월치 시간이에요!

📝 마무리하며

길게 썼는데, 핵심만 정리하면:

  1. MCP + Obsidian = AI가 내 노트를 자동으로 관리해줌
  2. 웹, 슬랙, 구글맵 등 다른 도구와 연동 가능
  3. 초기 설정은 좀 어렵지만, 익숙해지면 생산성 폭발
  4. 블로거, 프리랜서, 개발자한테 특히 추천

저는 이제 이거 없이는 못 살 것 같아요 😊 혹시 궁금한 거 있으시면 댓글로 물어보세요! 아는 범위에서 최대한 도와드릴게요.

아, 그리고 설정하다가 막히는 부분 있으면 공유해주세요. 같이 해결해봐요!

Obsidian Dataview 함수 완벽 가이드: 데이터 조작의 모든 것

📋 목차

  1. Dataview 함수란 무엇인가?
  2. 함수의 기본 작동 원리
  3. 생성자 함수 완벽 활용법
  4. 숫자 연산 함수 마스터하기
  5. 객체, 배열, 문자열 조작 함수
  6. 문자열 처리 고급 기법
  7. 유틸리티 함수로 효율성 극대화
  8. 실전 활용 예제

1. Dataview 함수란 무엇인가?

Obsidian Dataview 함수는 노트 데이터를 조작하고 변환하는 강력한 도구입니다. 단순한 데이터 조회를 넘어서 필터링, 그룹화, 계산, 변환 등 복잡한 데이터 처리를 가능하게 합니다.

💡 Dataview 함수의 핵심 장점

  • 유연한 데이터 조작: FROM 명령 외 모든 데이터 명령에서 사용 가능
  • 표현식 기반: 리터럴, 메타데이터 필드, 다른 함수를 매개변수로 활용
  • 벡터화 지원: 단일 값과 목록 모두에서 동작
  • 실시간 업데이트: 노트 변경 시 자동으로 결과 갱신

🎯 활용 분야

  • 프로젝트 관리 대시보드 구축
  • 독서 노트 통계 분석
  • 일정 및 태스크 관리
  • 지식 연결망 시각화

2. 함수의 기본 작동 원리

📝 함수 구조 이해하기

모든 Dataview 함수는 다음 형식을 따릅니다:

functionname(parameter1, parameter2)

✅ 매개변수 규칙:

  • 필수 매개변수: 괄호 없이 표시
  • 선택적 매개변수: [parameter] 대괄호로 표시
  • 표현식 사용: 리터럴, 필드, 다른 함수 모두 가능

🔄 함수 벡터화의 이해

단일 값 처리:

lower("YES") = "yes"
round(16.555555, 2) = 16.56

목록 처리 (자동 벡터화):

lower(["YES", "NO"]) = ["yes", "no"]
replace(["yes", "ree"], "e", "a") = ["yas", "raa"]

이 특성으로 대량 데이터 처리가 effortless하게 가능합니다!


3. 생성자 함수 완벽 활용법

생성자 함수는 새로운 데이터 구조를 만드는 핵심 도구입니다.

🏗️ object() - 객체 생성의 마법사

기본 사용법:

object("a", 6) 
// 결과: {a: 6}

object("name", "김철수", "age", 30, "job", "개발자")
// 결과: {name: "김철수", age: 30, job: "개발자"}

💡 실전 활용 예시:

TABLE object("제목", file.name, "생성일", file.ctime, "태그수", length(file.tags)) as "노트 정보"
FROM "프로젝트"

📝 list() - 동적 목록 생성

배열 생성:

list(1, 2, 3) = [1, 2, 3]
array("월", "화", "수") = ["월", "화", "수"]

데이터 수집에 활용:

TABLE list(file.tags, file.outlinks) as "관련 정보"

📅 date() - 날짜 파싱의 달인

다양한 날짜 형식 지원:

date("2024-01-15") // 표준 ISO 형식
date("12/31/2024", "MM/dd/yyyy") // 커스텀 형식
date([[2024-01-15]]) // 데일리 노트 링크

실용적 날짜 처리:

TABLE 
  date(due) as "마감일",
  dur(date(due) - date(today)) as "남은 시간"
WHERE due != null

4. 숫자 연산 함수 마스터하기

🧮 기본 수학 함수

반올림 계열:

round(16.555555, 2) = 16.56    // 소수점 둘째 자리
floor(12.937) = 12             // 내림
ceil(12.937) = 13              // 올림
trunc(12.937) = 12             // 소수점 제거

📊 통계 함수로 데이터 분석

기본 통계:

min([1, 2, 3, 4, 5]) = 1
max([1, 2, 3, 4, 5]) = 5
sum([1, 2, 3, 4, 5]) = 15
average([1, 2, 3, 4, 5]) = 3

💡 실전 예제 - 독서 통계:

TABLE
  sum(pages) as "총 페이지",
  average(pages) as "평균 페이지",
  round(average(rating), 1) as "평균 평점"
FROM "독서노트"
WHERE completed = true

고급 통계 함수:

minby(this.file.tasks, (k) => k.due)    // 가장 빠른 마감일
maxby(projects, (p) => p.priority)      // 우선순위 최고 프로젝트

🔧 reduce() - 만능 집계 함수

다양한 연산자 지원:

reduce([100, 20, 3], "-") = 77          // 뺄셈
reduce([200, 10, 2], "/") = 10          // 나눗셈
reduce([true, false, true], "&") = false // AND 연산
reduce(["⭐", 3], "*") = "⭐⭐⭐"        // 문자열 반복

5. 객체, 배열, 문자열 조작 함수

🔍 contains 계열 - 데이터 검색의 핵심

기본 검색:

contains("Hello World", "World") = true
contains([1, 2, 3], 2) = true
contains(file, "tags") = true

대소문자 구분 없는 검색:

icontains("Hello", "HELLO") = true

정확한 단어 매칭:

containsword("Hello there!", "hello") = true
containsword("Hello there!", "hell") = false

📋 배열 조작의 고수되기

정렬과 역순:

sort([3, 1, 4, 1, 5]) = [1, 1, 3, 4, 5]
reverse([1, 2, 3]) = [3, 2, 1]

필터링과 매핑:

filter([1, 2, 3, 4, 5], (x) => x > 3) = [4, 5]
map([1, 2, 3], (x) => x * 2) = [2, 4, 6]

💡 실전 활용 - 중요한 태스크 필터링:

LIST
map(
  filter(file.tasks, (t) => contains(t.text, "중요")),
  (t) => t.text
) as "중요 태스크"

🧹 데이터 정리 함수

null 값 제거:

nonnull([1, null, 2, null, 3]) = [1, 2, 3]

배열 평탄화:

flat([[1, 2], [3, 4], 5]) = [1, 2, 3, 4, 5]

조건부 검사:

all([true, true, false]) = false
any([true, false, false]) = true
none([false, false, false]) = true

6. 문자열 처리 고급 기법

🔤 정규표현식 마스터

패턴 테스트:

regextest("\\d+", "abc123def") = true
regexmatch("\\d+", "123") = true
regexmatch("\\d+", "abc123") = false

고급 문자열 치환:

regexreplace("2024-01-15", "(\\d{4})-(\\d{2})-(\\d{2})", "$3/$2/$1")
// 결과: "15/01/2024"

✂️ 문자열 변형 함수

대소문자 변환:

upper("hello world") = "HELLO WORLD"
lower("HELLO WORLD") = "hello world"

문자열 분할과 결합:

split("apple,banana,orange", ",") = ["apple", "banana", "orange"]
join(["apple", "banana", "orange"], " | ") = "apple | banana | orange"

💡 실전 예제 - 태그 정리:

TABLE
  join(
    map(file.tags, (tag) => replace(tag, "#", "")),
    ", "
  ) as "태그 목록"

📏 문자열 형식화

패딩과 자르기:

padleft("5", 3, "0") = "005"
truncate("긴 제목입니다", 8, "...") = "긴 제목입..."
substring("Hello World", 0, 5) = "Hello"

7. 유틸리티 함수로 효율성 극대화

🛡️ default() - null 값 처리의 달인

기본값 설정:

default(dateCompleted, "진행중") 
default(rating, 0)
default(tags, ["미분류"])

💡 실전 활용 - 프로젝트 상태 관리:

TABLE
  default(status, "시작 전") as "상태",
  default(priority, "보통") as "우선순위",
  default(due, "미정") as "마감일"
FROM "프로젝트"

🎲 choice() - 조건부 로직

간단한 if-else 구현:

choice(completed, "✅ 완료", "⏳ 진행중")
choice(priority > 3, "🔥 긴급", "📋 일반")

📅 날짜 포맷팅 마스터

다양한 날짜 형식:

dateformat(file.ctime, "yyyy-MM-dd") = "2024-01-15"
dateformat(file.ctime, "yyyy년 M월 d일") = "2024년 1월 15일"
dateformat(now, "HH:mm:ss") = "14:30:25"

기간 표시:

durationformat(dur("3일 7시간"), "d'일' h'시간'") = "3일 7시간"

🔗 링크 메타데이터 활용

링크 정보 추출:

meta([[프로젝트#다음 작업]]).display = "다음 작업"
meta([[프로젝트#다음 작업]]).subpath = "다음 작업"
meta([[프로젝트#다음 작업]]).type = "header"

8. 실전 활용 예제

📊 프로젝트 대시보드 구축

TABLE 
  choice(status = "완료", "✅", 
    choice(status = "진행중", "🔄", "⏸️")) as "상태",
  default(priority, "보통") as "우선순위",
  choice(
    due != null AND due < date(today), "🚨 지연",
    choice(due != null AND dur(due - date(today)).days <= 3, "⚠️ 임박", "⏳ 여유")
  ) as "긴급도",
  dateformat(due, "MM/dd") as "마감일"
FROM "프로젝트"
WHERE !contains(file.name, "템플릿")
SORT priority DESC, due ASC

📚 독서 통계 분석

TABLE
  "📖 " + string(length(
    filter(file.tags, (t) => contains(t, "독서"))
  )) + "권" as "독서량",
  "⭐ " + string(round(
    average(
      map(
        filter(rows, (r) => r.rating != null),
        (r) => r.rating
      )
    ), 1
  )) as "평균 평점",
  "📄 " + string(sum(
    map(
      filter(rows, (r) => r.pages != null),
      (r) => r.pages
    )
  )) + "페이지" as "총 페이지"
FROM "독서노트"
WHERE completed = true
GROUP BY dateformat(file.ctime, "yyyy년 M월") as "월별"
SORT key DESC

📝 태스크 관리 시스템

TASK
WHERE !completed
WHERE due != null
WHERE meta(section).subpath = "다음 작업"
SORT choice(
  contains(text, "긴급"), 1,
  choice(contains(text, "중요"), 2, 3)
) ASC, due ASC

🔗 지식 연결망 분석

TABLE
  length(file.outlinks) as "발신 링크",
  length(file.inlinks) as "수신 링크",
  round(
    length(file.outlinks) + length(file.inlinks), 0
  ) as "총 연결수",
  join(
    slice(
      sort(
        map(file.outlinks, (link) => meta(link).path)
      ), 0, 5
    ), ", "
  ) as "주요 연결"
FROM ""
WHERE length(file.outlinks) > 0 OR length(file.inlinks) > 0
SORT (length(file.outlinks) + length(file.inlinks)) DESC
LIMIT 20

💡 Dataview 함수 활용 팁

성능 최적화 전략

  1. 필터링을 먼저: WHERE 절로 데이터를 먼저 줄이기
  2. 중첩 함수 최소화: 가독성과 성능을 위해 단순하게 구성
  3. null 값 처리: nonnull() 함수로 안전한 계산
  4. 인덱싱 활용: 자주 사용하는 필드는 인덱스 생성

🎯 디버깅 방법

  1. 단계별 테스트: 복잡한 함수를 부분별로 테스트
  2. 타입 확인: typeof() 함수로 데이터 타입 검증
  3. 중간 결과 출력: TABLE로 중간 계산 결과 확인
  4. 에러 메시지 활용: Dataview 에러 메시지를 통한 문제 파악

📈 고급 활용 패턴

조건부 집계:

sum(map(
  filter(rows, (r) => r.status = "완료"),
  (r) => r.points
))

동적 그룹화:

GROUP BY choice(
  due != null AND due < date(today), "지연",
  choice(due != null, "예정", "미정")
) as "상태별"

복합 정렬:

SORT 
  choice(priority = "높음", 1, choice(priority = "중간", 2, 3)),
  due ASC,
  file.name ASC

🎯 핵심 요약

Obsidian Dataview 함수는 단순한 데이터 조회를 넘어 노트 간 연결과 패턴을 발견하고, 자동화된 대시보드를 구축하며, 개인 지식 관리를 혁신하는 강력한 도구입니다.

💎 성공적인 활용을 위한 핵심:

  • 점진적 학습: 기본 함수부터 차근차근 익히기
  • 실전 적용: 실제 노트 관리에 바로 적용해보기
  • 커뮤니티 활용: Obsidian 커뮤니티의 다양한 예제 참고
  • 지속적 개선: 사용하면서 점진적으로 고도화

이 가이드를 통해 Dataview 함수의 진정한 파워를 경험하고, 개인 지식 관리의 새로운 차원을 열어보세요!

 

'개인지식관리' 검색 결과

총 2개의 글이 있습니다.

옵시디언(Obsidian)과 MCP로 완전 자동화된 지식 관리 시스템 만들기 - 제 1년 사용 후기

지식 공유/옵시디언 · · by · 댓글 1개
안녕하세요! 노트 앱 덕후로 살아온 지 벌써 5년째인데요, 에버노트부터 시작해서 노션, 로그시크... 정말 별걸 다 써봤어요 😅그런데 작년에 옵시디언(Obsidian)에 MCP(Model Context Protocol)라는 걸 연결해서 쓰기 시작했는데, 이게 진짜 게임 체인저더라고요! AI가 제 노트를 읽고 쓰고 검색하고... 완전 개인 비서 수준이에요.처음엔 설정이 좀 복잡해서 "이거 왜 하지?" 싶었는데, 지금은 이거 없으면 못 살 것 같아요. 제가 1년 넘게 써보면서 터득한 활용법들을 공유해볼게요!📋 목차 (바쁘신 분들은 3번부터 보세요!)MCP + Obsidian이 뭐길래? (기초 개념)실제로 뭘 할 수 있나? (핵심 기능들)제가 매일 쓰는 활용법 BEST 5 (실전!)다른 도구들과 연동하기 ..

Obsidian Dataview 함수 완벽 가이드: 데이터 조작의 모든 것

지식 공유/옵시디언 · · by · 댓글 5개
📋 목차Dataview 함수란 무엇인가?함수의 기본 작동 원리생성자 함수 완벽 활용법숫자 연산 함수 마스터하기객체, 배열, 문자열 조작 함수문자열 처리 고급 기법유틸리티 함수로 효율성 극대화실전 활용 예제1. Dataview 함수란 무엇인가?Obsidian Dataview 함수는 노트 데이터를 조작하고 변환하는 강력한 도구입니다. 단순한 데이터 조회를 넘어서 필터링, 그룹화, 계산, 변환 등 복잡한 데이터 처리를 가능하게 합니다.💡 Dataview 함수의 핵심 장점유연한 데이터 조작: FROM 명령 외 모든 데이터 명령에서 사용 가능표현식 기반: 리터럴, 메타데이터 필드, 다른 함수를 매개변수로 활용벡터화 지원: 단일 값과 목록 모두에서 동작실시간 업데이트: 노트 변경 시 자동으로 결과 갱신🎯 활용..