옵시디언 – 북트레싱 https://booktracing.com 책추천, 책리뷰, 자기계발 Wed, 10 Jan 2024 07:04:57 +0000 ko-KR hourly 1 https://wordpress.org/?v=6.9 https://booktracing.com/wp-content/uploads/2023/09/cropped-파비콘-1-75x75.png 옵시디언 – 북트레싱 https://booktracing.com 32 32 플러그인 중 가장 강력한 옵시디언 데이터뷰, dataview https://booktracing.com/%ec%98%b5%ec%8b%9c%eb%94%94%ec%96%b8-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b7%b0-%ed%94%8c%eb%9f%ac%ea%b7%b8%ec%9d%b8-dataview/ https://booktracing.com/%ec%98%b5%ec%8b%9c%eb%94%94%ec%96%b8-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b7%b0-%ed%94%8c%eb%9f%ac%ea%b7%b8%ec%9d%b8-dataview/#respond Wed, 10 Jan 2024 07:04:53 +0000 https://booktracing.com/?p=3772

이번은 ‘옵시디언의 꽃’ 이라 불릴만 한 Dataview 플러그인에 대한 기본적인 사용법과 활용 방법에 대해서 간단히 살펴보려고 하는데요.

옵시디언 데이터뷰 플러그인은 옵시디언에 저장된 데이터를 효과적으로 관리하는 데 많은 도움이 됩니다.,
이 플러그인으로 데이터베이스 내의 정보를 정돈하고 필요한 데이터를 필터링하여 테이블, 리스트, 캘린더 등으로 시각적으로 표현할 수 있습니다.

지난 영상에서 우리가 제작했던 데일리 노트를 DB로 활용하여 위클리, 먼슬리, 이얼리 노트에 데이터를 모아서 볼 수 있도록 만들 수 있고
또 동적으로 작동하기 때문에, 사용자가 입력한 데이터에 따라 바로바로 정보가 업데이트되어 작성한 노트들의 정보를 실시간으로 볼 수 있는 장점도 가지고 있습니다.

옵시디언을 사용하면서 가장 중요한 플러그인 중 하나인 데이터뷰에 대해 알아보겠습니다.

Dataview 플러그인 언어

플러그인을 사용하는 언어는 두 가지가 있는데 일반적으로 DQL을 사용합니다.
Dataview Query Language의 약자로, SQL 언어와 유사한 하지만 Dataview를 위한 언어라고 보시면 되겠습니다.
그리고 dataviewjs는 자바스크립트를 이용하여 쿼리를 만들 수 있는데, 이 내용은 너무 복잡하고 어렵기 때문에 옵시디언을 라이트하게 쓰시는 분들은 DQL block 만 사용하셔도 충분히 사용이 가능합니다.
dataview 플러그인에서 자바스크립트로 블록을 만들어 사용이 가능하다는 사실만 확인하고 넘어가시면 되겠습니다.

데이터뷰 깃허브에서 자세한 내용을 참조하세요

옵시디언 데이터뷰 쿼리 구조

데이터뷰 쿼리 작성을 하기 전에 데이터뷰에 어떤 식으로 명령을 내려야 하는지 전반적으로 살펴본 다음에 세부 내용을 하나씩 보도록 하겠습니다.

데이터뷰 플러그인의 쿼리 작성에 대한 설명을 드릴 텐데요. 우선 그 쿼리의 구조에 대해 알아보겠습니다.
쿼리의 구조를 보게 되면, 먼저 어떤 형태로 데이터를 볼 것인지 결정을 할 수 있고,
구성 요소를 추가하여 세부적인 설정을 할 수 있습니다.

형식

형식은 총 네 가지로 작성을 할 수 있는데 TABLE, LIST, TASK, CALENDAR가 있습니다.

키워드

그리고 키워드를 사용하여 데이터링 필터링 하거나 정렬을 할 수 있습니다.
여기 사용 가능한 키워드를 보면
그리고 그 구문에 세부 정보를 넣어서 쿼리를 완성합니다. 세부 정보를 작성하는 방식은 여러 가지가 있습니다.

먼저 키워드로 들어갈 수 있는 옵션을 보면 FROM, WHERE, SORT, GROUP BY, LIMIT, FLATTEN 등이 있습니다.
이 6가지

  1. FROM: 특정 태그, 폴더, 또는 링크와 같은 소스에서 페이지를 선택합니다.
  2. WHERE: 노트 내부의 정보나 메타데이터 필드를 기반으로 노트를 필터링합니다.
  3. SORT: 결과를 특정 필드 및 방향에 따라 정렬합니다.
  4. LIMIT: 쿼리 결과의 수를 지정된 숫자로 제한합니다.
  5. GROUP BY: 여러 결과를 하나의 결과 행당 한 그룹으로 묶습니다.
  6. FLATTEN: 하나의 결과를 특정 필드나 계산에 따라 여러 결과로 분할합니다.

예를 들어, TABLE date, task FROM "Daily Notes" 쿼리를 사용하면 “Daily Notes” 폴더에 있는 노트들에서 날짜와 할 일 목록을 테이블 형태로 보여줄 수 있습니다. 또한, WHERE 구문을 추가하여 특정 조건을 만족하는 데이터만을 선택할 수 있으며, SORT를 통해 원하는 기준으로 데이터를 정렬할 수 있습니다.

이 외에도 Dataview 플러그인은 노트의 메타데이터를 활용하여 더 복잡한 데이터 구조를 만들 수 있게 해줍니다. 예를 들어, 태그, 카테고리, 작성자 등의 메타데이터를 기반으로 노트들을 그룹화하고 분석할 수 있습니다.

FROM (파일 선택)

어떤 파일로 부터 가져올지를 작성하는 곳입니다.

  1. 첫 번째로 어떤 태그가 있는 노트를 가져올 것인지, 어떤 폴더에 있는 노트들에서 가져올 것인지, 혹은 특정한 파일로부터 가져올 것인지
  2. 특정한 노트를 기준으로 나가거나, 들어오는 노트들을 가져올 것인지 마지막으로 위의 것들을 조합해서 가져오는 방법도 있습니다.

#태그

폴더

FROM “폴더A/폴더AA”

특정 파일

FROM “폴더A/파일A.md”

링크

  • [[note]]로 연결되는 모든 링크
  • outgoing [[note]]

모두를 조합

and 또는 or을 사용해서 복잡한 연산자를
예를 들어보면 폴더A와 폴더B에 있는 것들 중에서 태그가 #태그 인 것만
#태그 and (“폴더A” or “폴더B”)

WHERE

  1. 조건 지정:
  • 특정 필드나 값에 대한 조건을 지정합니다. 예를 들어, 특정 태그가 있는 노트를 찾거나, 특정 날짜 범위에 작성된 노트를 필터링할 수 있습니다.
  1. 비교 연산자 사용:
  `=`, `!=`, `>`, `<`, `>=`, `<=`
  1. 논리 연산자 사용:
- `AND`, `OR`, `NOT`

예시

TABLE
WHERE contains(file.tags, "#습관")
TABLE
WHERE contains(file.path, "templater")
TABLE
WHERE contains(author, "전중환")
TABLE
WHERE book_page >100
LIMIT 3
TABLE
WHERE contains(file.folder, "000. Inbox")
LIMIT 3

날짜와 시간 기반 필터링:

  • 특정 날짜 이후: WHERE date > "2022-01-01"
  • 날짜 범위: WHERE date >= "2022-01-01" AND date <= "2022-12-31"
  • 오늘 날짜 기준: WHERE date = today

논리적 조건

  • AND 연산자: WHERE 조건1 AND 조건2
  • OR 연산자: WHERE 조건1 OR 조건2
  • NOT 연산자: WHERE NOT 조건

복합 조건:

  • 복합 조건의 사용: WHERE (조건1 OR 조건2) AND 조건3

숫자 및 범위 기반 필터링:

  • 숫자 비교: WHERE 숫자필드 > 10
  • 범위 지정: WHERE 숫자필드 BETWEEN 10 AND 20

Obsidian의 Dataview 플러그인은 노트의 메타데이터와 내용을 다양한 방식으로 필터링하고 조회할 수 있도록 해줍니다. 하지만 정확한 사용법과 가능성은 Dataview의 버전과 Obsidian의 데이터 구조에 따라 다를 수 있으므로, 구체적인 사용을 위해서는 해당 플러그인의 문서를 참고하는 것이 좋습니다.

SORT

SORT 다음은 위의 TABLE 다음에 작성한 방식과 같습니다.
SORT 뒤에 어떤 기준으로 정렬을 할지 하나 골라서 입력하고, 그 뒤에 오름차순은 asc, 또는 내림차순 desc를 입력해주면 되고, 어떤 방식으로 정렬할지 정하지 않는다면 자동으로 오름차순이 적용됩니다.

TABLE
    file.ctime
SORT file.ctime DESC
LIMIT 3

사용 가능한 키워드

프론트매터 내의 Key값, file.link, file.cday, file.mday, file.name

데이터뷰 테이블 예시

플러그인 중 가장 강력한 옵시디언 데이터뷰, dataview

dataview 소스 코드

```dataview
TABLE without id
	("![|100](" + cover_url + ")") as "책 표지",
	file.link as "책 제목",
	author[0] as "저자",
	tags[1] as "태그",
	total_page as "페이지",
	finish_read_date as "읽은 날짜",
	book_note as "독서 노트"


FROM "50. Book/51. 도서 목록" OR "리뷰"



SORT author[0], finish_read_date


```

]]>
https://booktracing.com/%ec%98%b5%ec%8b%9c%eb%94%94%ec%96%b8-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b7%b0-%ed%94%8c%eb%9f%ac%ea%b7%b8%ec%9d%b8-dataview/feed/ 0 데이터뷰 플러그인 사용법 쉬운 설명, 옵시디언 Dataview nonadult
메모 분류법(노트 관리)- 폴더, 태그, 메타데이터, MOC https://booktracing.com/%eb%a9%94%eb%aa%a8-%eb%b6%84%eb%a5%98%eb%b2%95-%eb%85%b8%ed%8a%b8-%ea%b4%80%eb%a6%ac/ https://booktracing.com/%eb%a9%94%eb%aa%a8-%eb%b6%84%eb%a5%98%eb%b2%95-%eb%85%b8%ed%8a%b8-%ea%b4%80%eb%a6%ac/#respond Thu, 16 Nov 2023 13:44:08 +0000 https://booktracing.com/?p=3712 메모 분류법은 왜 필요한가

메모나 노트 작성을 관리하는 과정에서, 초기에는 분류의 필요성을 크게 느끼지 못할 수도 있다.
하지만 노트가 수천 개, 수만 개로 늘어나게 되면 어떤 내용을 저장했는지 기억하기 어려워지고 필요한 정보를 찾기 힘들어진다.

이런 상황에서 효과적인 메모 분류법이 중요해진다. 노트를 분류하는 방법은 여러가지가 존재하는데 아래에서 하나씩 살펴보도록 하자.

폴더

우리가 가장 익숙한 방법은 폴더 방식이다. PC를 사용하면 폴더로 파일을 분류하고 관리하기 때문이다.
폴더는 직관적인 접근과 시각화가 가능해서 초보자도 손쉽게 사용할 수 있어 유용하다.

폴더의 문제점

하지만 폴더로만 분류를 하면 폴더가 너무 많아지는 문제가 발생한다. 폴더는 직관적으로 볼 수 있는 장점이 있으나, 다양한 분야에 관심을 가질 수록 필연적으로 폴더의 개수도 늘어나기 마련이다.

폴더만 사용하면 이런 문제에 직면하게 되고 태그나 기타 분류 방식을 찾게 된다.

폴더의 한계

폴더에는 명확한 한계점이 있다. 기본적으로 하나의 파일은 하나의 폴더에만 속할 수 있기 때문이다.
PC에서 사용하는 파일도 마찬가지지만 메모는 A폴더에도 해당되면서 B폴더에도 해당되는 경우가 빈번히 발생한다.

김익한 교수의 ‘거인의 노트’에서 아래와 같은 글을 읽었다고 하자.

생각이 몸에 많이 남아 있으면 ‘양질전화‘가 일어난다. 양이 많아지면 질적인 변화, 즉 변화가 온다는 뜻이다. 다시 말해 새로운 아이디어와 영감도 자주 떠오르게 된다. 이런 능력은 반복적인 연습과 습관으로 체득되는 것이다.

어떤 폴더에 저장해야 할까?

독서/거인의 노트, 독서/발췌 ,용어 등의 폴더에 저장할 수 있다.

하나의 노트는 하나의 폴더에만 들어가기 때문에 명확한 기준이 있어야 한다. 어떤 폴더에 저장을 하든 모두 올바른 분류법이 될 수 있지만 2개 이상이 될 수가 없다.

태그

위와 같은 경우에는 기준에 따라서 폴더를 만든 다음에 태그를 사용해서 보조로 그룹핑이 가능하다. 만약 폴더 이름이 독서/거인의 노트라면 태그로 #용어을 추가하여 묶어줄 수 있고, 폴더가 용어라면 태그로 #거인의 노트로 추가해 줄 수도 있다.

옵시디언이나 베어앱의 경우에는 태그의 중첩이 가능하기 때문에 #독서/거인의 노트등으로도 태그 사용이 가능하다.

그 외에도 위의 발췌문에는 많은 키워드 들이 포함되어 있다. #변화, #아이디어, #연습 등 여러 태그를 포함시킬 수 있다.

링크와 MOC

링크는 옵시디언에서 정말 중요한 분류법 중 하나이기도 하고 노션에서도 자주 사용된다. MOC를 만들어 링크로 연결하면 더욱 시각적으로 쉽게 접근이 가능하다.

MOC란?

Meta Map of Contents를 뜻하며, 지식 관리 툴을 사용하여 정보와 노트를 구조화하고 관계를 시각화 하기에 용이하다.

이는 노션에서 자주 사용하는 개념이기도 한데, 단점을 꼽자면 복잡한 구조를 한 눈에 파악하기가 힘들다. 하지만 메인 페이지에서 MOC 형태로 만들어 활용을 한다면, 접근성과

MOC 예시

MOC는 언뜻 보면 폴더와 비슷해보이지만 실제로는 차이가 있다.

MOC란 여러 곳에 폴더에 흩어져 있는 노트들을 하나로 모아서 보여주기 때문에 더욱 쉬운 접근이 가능하다.

메모 분류법(노트 관리)- 폴더, 태그, 메타데이터, MOC

노트의 요소들 중에서 분류하고 싶은 요소만 따로 모아서 새로운 분류 체계를 추가하는 것이다.
Meta Note를 주제, 프로젝트, 관심사 등에 따라 만들어 핵심 페이지로서의 기능을 제공한다.

MOC의 단점

MOC는 나의 기준에 따라서 수동으로 작성이 되기 때문에 작성과 수정이 번거로울 수가 있다.

만약 위의 예시의 1.2. 수영을 제거한다고 하면 실제 노트(혹은 페이지)를 삭제하고 MOC 내에서 한 번 더 삭제를 해줘야 한다.(옵시디언, 노션 모두)

그래서 MOC를 너무 많이 만들게 되면 최신화 시키는데 노력과 시간을 많이 들여야 한다.

메타데이터, 프론트 메터

프론트 메터(Front Matter)는 메타데이터(Meta Data)의 한 형태로, 의미적으로는 메타데이터의 서브셋에 속하지만 종종 ‘메타데이터’라는 용어로 포괄적으로 사용된다.

메타데이터는 옵시디언의 강력한 기능 중 하나이며, Obsidian에서는 YAML 형식을 사용하여 메타데이터를 정의한다. YAML 형식에 대해 자세히 몰라도 되지만 익숙해지는 것이 중요하다.

옵시디언에서는 글의 첫 부분에 위치하는 ‘프론트 메터’를 통해 메타데이터를 정의할 수 있다. 이 프론트 메터는 ‘Properties’라고도 불리며, 이를 활용한 분류방법은 매우 다양하고 확장 가능하다.

옵시디언 메타데이터

마무리

노트나 메모 관리의 궁극적인 목표는 Output을 하기 위해서이다. 만약 메모를 저장만 하고 활용을 하지 않는다면 그냥 작성을 했다는 것에 만족할 뿐이고, 실질적으로 내게 도움이 되는 부분은 거의 없다.

노트 관리는 단순히 정보를 저장하는 것을 넘어서서 정보를 빠르게 검색하고 연관된 아이디어를 발견하며, 지식의 구조화를 도와주는 역할을 한다. 위에서 설명한 다양한 방법들은 지식 관리와 개인 생산성 향상에 도움이 될 것이다.

처음 지식관리를 하려는 사람에게는 분류법의 다양함에 부딪혀 커다란 장벽이 될 수도 있지지만 그렇다고 너무 겁 먹을 필요는 없다.

아무런 노트도 없을 때는 막막하기만 하겠지만 노트를 몇 개 만들다 보면 어떻게 분류를 하면 좋을지 대략적으로 감이 잡히게 된다. 그리고 여기서 소개하는 방법을 참고하여 자신만의 분류법을 만드는 것을 추천한다.

]]>
https://booktracing.com/%eb%a9%94%eb%aa%a8-%eb%b6%84%eb%a5%98%eb%b2%95-%eb%85%b8%ed%8a%b8-%ea%b4%80%eb%a6%ac/feed/ 0