본문 바로가기
Plugin

Obsidian 옵시디언, 원하는 정보만 쏙쏙 골라주는 Dataview - (2)

by Obsidianary 2022. 1. 5.

Obsidian 옵시디언, 원하는 정보만 쏙쏙 골라주는 Dataview - (2)

 

목차

  • 데이터 어노테이션(Data Annotation)
  • 데이터 쿼리(Data Query)
  • 고급 기능(Advanced)

 

데이터 어노테이션(Data Annotation)

데이터 어노테이션(Data Annotation)이란 어떤 데이터를 Dataview에서 가져오게 할 지 표시를 해두는 방법을 말합니다. 크게 2가지 레벨인 페이지 레벨, 태스크 레벨 존재합니다. 하지만 더 자주 사용되고 커스텀 할 여지가 많은 것은 페이지 레벨입니다. 

페이지 레벨

데이터뷰(Dataview)는 마크다운 페이지 단위로 수집하는 것이 원칙입니다. 따라서 페이지 내부의 어떤 정보들을 가져올 것인지를 어노테이션(Annotation), 즉 사용자가 따로 표시한 것을 조회해오는 것입니다. 따로 Annotation는 방법 역시 3가지 방식이 있씁니다

 

1. 프론트매터(Frontmatter)

각 노트의 프론트매터에 있는 필드, 키값은 데이터뷰에서 가져올 수 있습니다. 

---
created: 2021-11-12
wakeup: 07:00
sleep: 23:30
workout: ✅
gratitude: ✅
---

# 2021-11-12 Daily Notes

위에는 제가 일간 노트로 사용하고 있는 프론트매터의 예시입니다. 저는 일간노트에 습관을 프론트매터에 기록을 하고 있습니다. 이렇게 기록한 경우에 데이터뷰는 프론트매터에 있는 정보들을 긁어올 수 있게 됩니다. 예를 들어 wakeup, sleep을 가져와서 매일 매일 기상,취침 시간을 정리한 표를 볼 수 있는 것 입니다. 아래와 데이터뷰 쿼리문을 만들어섯 다른 노트에 삽입하게 되면 프론트매터의 값을 예쁘게 표로 보여주게 됩니다.

```dataview
TABLE wakeup as 기상시간, sleep as 취침시간, workout as 운동, gratitude as 감사일기
FROM 2021-11-12
```

 

2. 인라인필드(Inline Field) - ::

프론트매터가 아니라 글을 쓰는 중간에 어떠한 정보를 데이터뷰에서도 볼 수 있도록 하고 싶다면 "::" 콜론 2개를 이용하면 됩니다. 

::

노트의 중간에 drama:: 오징어게임 이렇게 적으면 drama에 대한 정보를 데이터뷰에서 볼 수 있는 것입니다. 이는 프론트매터에 `drama: 오징어게임` 으로 적는 것과 같은 것입니다. 좀 더 자연스럽게 적기 위한 것이고 문장에 여러 개의 인라인필드를 사용하고 싶다면 대괄호를 이용하면 됩니다.  

[drama:: 오징어게임] 너무 재미있었다. [drama:: D.P]도 꿀잼이었다.
```dataview
TABLE drama as 드라마
FROM "/"
WHERE file.name = "드라마"
```

3. 자체내장(Implicit)

자체내장(implicit)는 옵시디언 노트 파일 자체가 가지고 있는 메타 정보를 보여주는 것입니다. 따라서 이 안에 있는 정보들은 사용자가 만들지 않아도 데이터뷰가 조회할 수 있습니다. 보통은 이 자체내장 필드 자체를 조회하기 일반적인 데이터뷰 사용에서 WHERE 조건절에 많이 사용하게 됩니다. 위의 예시에서도 file.name = 드라마를 사용한 것처럼 말이죠.

 

자체내장 필드(Implicit fields) 목록

-   file.name:  파일명
-   file.folder: 해당 파일이 속한 폴더명
-   file.path: 해당 파일이 속한 전체 경로
-   file.link: 해당 파일의 링크
-   file.size: 해당 파일의 크기
-   file.ctime: 해당 파일이 만들어진 시간(시간 + 날짜)
-   file.cday: 해당 파일이 만들어진 날짜
-   file.mtime: 해당 파일이 수정된 시간(시간 + 날짜)
-   file.mday: 해당 파일이 수정된 날짜
-   file.tags: 해당 파일에 존재하는 모든 태그에 대한 배열 
-   file.inlinks: 해당 파일을 참조하는 다른 노트들 목록
-   file.outlinks: 해당 파일이 참조하는 다른 노트들 목록
-   file.aliases: 해당 노트의 alias
-   file.tasks: 해당 파일에 존재하는 모든 할일목록(체크리스트)

 

 

다음은 이해를 돕기 위해서 자체내장 필드 값은 어떻게 나오는 지 캡쳐해보았습니다. 아래 내용은 다음 시리즈에서 포스팅할 내용인 인라인 쿼리입니다. 지금은 '위에 자체내장 필드값이 이렇게 나오는 구나' 정도로만 이해해주세요.

 

Inline Query를 바로 사용한 경우

 

태스크 레벨

데이터뷰는 태스크에 대해서도 굉장히 힘을 많이 주었습니다. 따라서 노트가 아닌 보관함 내에 있는 모든 태스크를 조회할 수 있게 되어 있습니다. 이 때 좀 더 다양한 옵션을 주어서 원하는 할 일 목록만 가져올 수 있게 됩니다. 또한 위에서 노트에 대해서 내장된 필드를 가지고 있는 것 처럼 태스크에 대해서도 여러가지 내장된 필드를 가지고 있습니다. 

 

즉, 태스크 이름, 태스크가 포함된 노트의 위치 등등이 있으며 사용자가 태스크 생성일, 마감일, 완료일 같은 것을 추가로 인라인 필드(Inline Fields) 어노테이션 방식으로 넣어주면 더 많은 정보를 추후에 조회할 때 조건문으로 넣어서 가져올 수 있게 됩니다. 

 

```
- [ ] 우유 사오기
- [ ] 블로그 포스팅하기 [due::2022-01-06, completion::2022-01-05]
- [ ] 아침 운동하기 [created::2022-01-05]
- [ ] 아침 운동하기 🗓️2022-01-05
- [ ] ️점심 운동하기  ✅2022-01-05
- [ ] 저녁 운동하기 ➕2022-01-05
```

 

다음 포스팅에서는 좀 더 구체적인 쿼리문을 작성하는 방법에 대해서 포스팅하도록 하겠습니다. 

 

시리즈

Obsidian 옵시디언, 원하는 정보만 쏙쏙 골라주는 Dataview - (1)

Obsidian 옵시디언, 원하는 정보만 쏙쏙 골라주는 Dataview - (2)

Obsidian 옵시디언, 원하는 정보만 쏙쏙 골라주는 Dataview - (3)

 


 

Obsidian 옵시디언 사용자 모임 : 네이버 카페

Second Brain을 만들기 위한 Obsidian에 관한 정보, 노하우, 꿀팁 등을 공유합니다.

cafe.naver.com

 

Obsidian 사용자 모임

#obsidian #옵시디언 #노션 #RoamResearch #스마트글쓰기 #세컨드브레인 #secondbrain #제텔카스텐

open.kakao.com

 

 

댓글