옵시디언 데이터뷰 기본문법

반응형
    반응형

    옵시디언 데이터뷰 기본문법

    옵시디언을 쓰시는 분들은 제2의 뇌라고 불리는 제텔카스텐 노트법을 구현하기 위해서 쓰실 겁니다. 제텔카스텐을 구현하면서 검색을 잘할 수 있게 해야 하는데 데이터뷰를 통해서 검색이나 목록정리를 아주 잘 할 수 있습니다. 제 생각엔 데이터뷰가 굉장히 유용한 플러그인 같습니다.

    기본문법

    SQL을 쓰시던 분들이라면 쿼리문을 많이 해봤을텐데요. 데이터뷰도 쿼리문으로 이루어져 있습니다. 문법이 필요한데요. 그 중에 많이 쓰는 기본문법을 추려봤습니다.

    필수

    • 어떤 타입으로 불러올것인가 (TABLE/LIST/TASK)
    • 가져올 내용은 무엇인가(Field)
      옵션
    • 어디서 가져올 것인가(FROM)
    • 어떤 조건을 만족시켜야 하는가(WHERE)
    • 정렬은 어떻게 할것인가(SORT)
    • 묶을 것인가 흩트릴것인가(Groupby, Flatten)

    문법 사용방법

    옵시디언에서 데이터뷰를 사용하려면 코딩 수식(```)으로 시작하고 옆에 dataview라고 씁니다. 그다음에 문법을 써내려가면 됩니다. 문법에 대한 자세한 내용은 아래에 있으니 참고해주세요.

    어떤 타입으로 불러올것인가 (TABLE/LIST/TASK)

    데이터뷰의 타입은 Table/List/Task 세가지가 있습니다.


    Table 은 아래 그림처럼 표 모양으로 나옵니다. 컬럼은 쉼표(,)를 붙여서 계속 추가할 수 있습니다.

    ```dataview
    Table file.cday as "날짜"
    ```

    컬럼 이름을 지정하려면 field 뒤에 as를 써서 지정합니다.
    위 쿼리문에서 컬럼이름을 날짜로 지정했습니다. 쿼리문이기 때문에 위와 같이 큰 따옴표로 이름지정을 해주어야 합니다.

     

    LIST 는 노트를 목록으로써 표현합니다.

    LIST

     

     

    기타 정보를 넣으려면 옆에 field를 넣어줍니다. 표처럼 되지 않고 한개씩만 덧붙일 수 있습니다.

    LIST file.cday

     

    노트생성날짜가 콜론 옆으로 붙어서 불러와집니다.

    표가 아니기 때문에 컬럼이 없습니다. as 를 뒤에 넣으시면 오류가 나옵니다.

     

    Task 는 노트내용 중 체크박스로 썼던 목록을 보여줍니다.

    Task

     

    가져올 내용은 무엇인가(Field)

    항목이라고 볼 수 있습니다. 이 포스팅에서는 간단하게만 얘기하겠습니다.

    자세한 내용은 아래 포스팅을 참고해주세요.

    옵시디언 데이터뷰 필드(Field) 총정리

     

    옵시디언 데이터뷰 필드(Field) 총정리

    데이터뷰 Field 총정리 데이터뷰 Field에 대해 따로 정리합니다. 필드가 별건 아닌데 헷갈리기도 하고 쿼리문은 오류가 뜨면 왜 안되는지 명확하게 알려주질 알아서 애를 먹습니다. 단어 의미를 정

    seong6496.tistory.com


    아래와 같이 노트정보(프론트메터,내장필드)나 노트내용(인라인쿼리)를 넣어주면 됩니다. 데이터뷰에 가장 간단하게 쓸 수 있는 게 프론트메터입니다. 프론트매터는 이미 저장된 그 이름을 쓰면 되서 간편합니다. 만약 '완성' 이라는 프론트매터를 사용했다면 그대로 가져와 씁니다.

    ```dataview
    TABLE file.cday as "날짜", 완성

     


    완성이라는 프론트매터의 내용을 표로써 보여줍니다.

    어디서 가져올 것인가(FROM)

    From에는 태그나 폴더명을 써주면 지정한 태그나 폴더에서 데이터를 가져옵니다. 태그라는 걸 알려주기 위해 태그 앞에 # 를 붙여야 하고 폴더명은 큰 따옴표로 표현해주어야 합니다. 아무것도 안 쓰면 전체를 대상으로 검색해줍니다.

    From #tag or "Folder name"

     

    어떤 조건을 만족시켜야 하는가(WHERE)

    조건문으로 부등식으로 표현됩니다. 2024부터 이런 식으로 합니다. 이것도 내용이 많아서 추후에 따로 자세하게 포스팅을 하겠습니다. 간단한 예제로 아래 예제처럼 2024년 1월 1일 이후의 노트만 가져오려면 file.cday>date(2024-01-01)을 입력해줍니다. 

     

     

    정렬은 어떻게 할것인가(SORT)

    정렬은 간단합니다. 지정한 field 값을 기준으로 오름차순(ASC), 내림차순(DESC)를 정합니다. 아래 노트생성날짜를 오른차순으로 정렬해달라는 쿼리문입니다. 

    SORT file.cday ASC

     

    묶을 것인가 흩트릴것인가(Groupby, Flatten) 

    개인적으로는 많이 쓰지 않는 기능이지만 groupby나 flatten을 간단하게나마 정리합니다.

     

    Groupby 는 문서를 지정한 분류에 맞게 모아줍니다.
    예를 들어, 노트를 연도별로 분류하고 싶다면 아래와 같이 할 수 있습니다. Group By dateformat(file.cday,"yyyy")를 아래와 같이 넣어주고 Table에서 필드마다 **rows**를 붙여줍니다.

    ```dataview
    TABLE 
    rows.file.name as "노트제목"
    From "1.Fleeting Notes"
    Sort file.name DESC
    Group By dateformat(file.cday, "yyyy")
    ```

     

    Group by에 설정이 되면 컬럼의 인덱스로 잡힙니다. as 를 이용해 컬럼이름을 만들 수 있습니다.

    ```dataview
    TABLE 
    rows.file.name as "노트제목"
    From "1.Fleeting Notes"
    Sort file.name DESC
    Group By dateformat(file.cday, "yyyy") as "연도"
    ```


    Flatten은 Groupby의 반대의 기능입니다. 모아져 있는 것을 하나하나 분해해주는 역할을 합니다. 보통 한 노트의 태그를 여러개 쓰니 프론트매터에 등록된 태그로 나눠보겠습니다.  

    ```dataview
    TABLE 
    tags as "태그"
    From "1.Fleeting Notes"
    Sort tags DESC
    Flatten tags
    ```


    위와 같이 같은 노트지만 태그에 따라 나눠집니다.옵시디언으로 독서리스트에 쓰시는 분이라면 정리하기 좋을 것 같다는 생각이 듭니다.

    내용을 종합하면 데이터뷰는 다음과 같이 문법을 쓸 수 있습니다. 필수는 TABLE/LIST/TASk 이고 나머지는 사실상 옵션입니다. 

     

    TABLE|LIST|TASK <field> [AS "Column Name"], <field>, ..., <field> 
    FROM <source> (like #tag or "folder")
    WHERE <expression> (like 'field = value')
    SORT <expression> [ASC/DESC] (like 'field ASC') 
    GROUP BY <expression>(like 'dateformat(file.cday,"yyyy") [AS "Column Name"])
    Flatten <field>

     

    마치며

    데이터뷰 기본 문법에 대해 알아보았는데요. 막상 해보면 별거 아닌데 긴가민가하실거라고 생각됩니다. 검색을 편하게, 노트를 효율적으로 관리하기 위해 사용하는 도구이니 사용하다보면 익숙해지니 문법에 너무 연연해하지 말고 일단 써보시길 바랍니다.

     

    함께보면 좋은 글

    옵시디언 데이터뷰 필드(Field) 총정리

    옵시디언 Aliases(별칭) 사용방법과 장점

    옵시디언 특수기호, 이모지 입력하기

    옵시디언 맥+윈도우+IOS+안드로이드 무료로 동기화 하기

     

    댓글

    Designed by JB FACTORY

    ....