IT

[옵시디언 꿀팁] 특정 노트의 속성(Property) 값을 다른 노트로 자동 연동하는 방법 (Dataview)

나의지식 2026. 1. 20. 22:18

옵시디언을 사용하다 보면 '프로젝트 관리 노트'에 있는 마감일이나, '인물 노트'에 있는 나이 정보를 다른 노트(예: 주간 리포트, 소설 원고)에서 그대로 가져와 쓰고 싶을 때가 있습니다.

매번 복사해서 붙여넣기 하면 원본이 수정될 때마다 일일이 다 고쳐야 하는 번거로움이 있죠. 오늘은 Dataview 플러그인을 활용해 원본 노트의 속성 값이 바뀌면, 참조하는 노트의 내용도 자동으로 바뀌게 하는 방법을 소개합니다.

1. 준비물: Dataview 플러그인 설정

가장 먼저 커뮤니티 플러그인인 Dataview가 설치되어 있어야 합니다. 설치 후에는 반드시 아래 설정을 켜주셔야 이 기능이 작동합니다.

  1. 설정(Settings) > Dataview 메뉴로 진입합니다.
  2. Enable Inline Queries (인라인 쿼리 활성화)를 켭니다.
  3. Enable JavaScript Queries (자바스크립트 쿼리 활성화)를 켭니다.

💡 왜 켜야 하나요?
우리는 문장 중간에 코드를 넣는 '인라인(Inline)' 방식과, 특정 페이지의 데이터를 가져오는 '자바스크립트(JS)' 문법을 사용할 것이기 때문입니다.


2. 사용 방법 (문법)

다른 노트의 속성을 불러오는 기본 문법은 다음과 같습니다. 이 코드를 노트 아무 곳에나 붙여넣으면 됩니다.

`$= dv.page("파일제목").속성이름`
  • $=: 자바스크립트 인라인 쿼리를 시작한다는 뜻입니다.
  • dv.page("파일제목"): 특정 노트를 지목합니다. (확장자 .md는 뺍니다)
  • .속성이름: 그 노트의 YAML/Properties에 있는 키(Key) 값을 적습니다.

3. 실전 예시: 프로젝트 상태 관리

상황을 가정해 봅시다. Project A라는 노트가 있고, 여기에 현재 진행 상황을 속성으로 관리하고 있습니다.

A. 원본 노트 (Project A.md)

속성(Properties)에 아래와 같이 데이터가 들어 있습니다.

---
status: 진행중
deadline: 2025-12-31
manager: 김철수
---

 

B. 참조할 노트 (주간업무보고.md)

이제 주간 업무 보고서에서 Project A의 상태를 불러와 보겠습니다. 글을 쓰다가 필요한 곳에 백틱(`)을 포함한 코드를 넣습니다.

작성 내용:
현재 프로젝트 A의 상태는 $= dv.page("Project A").status 입니다.
담당자는 $= dv.page("Project A").manager 님이며, 마감일은 $= dv.page("Project A").deadline 까지입니다.

 

C. 결과 화면 (읽기 모드 / 라이브 프리뷰)

현재 프로젝트 A의 상태는 진행중 입니다.
담당자는 김철수 님이며, 마감일은 2025-12-31 까지입니다.

이제 Project A 노트에서 status를 "완료"로 바꾸면, 주간 업무 보고서의 내용도 즉시 "완료"로 바뀝니다.


4. 주의사항 (Tip)

  1. 파일명 변경 주의: 위 방식은 파일 제목을 텍스트("Project A")로 지정하기 때문에, 만약 원본 노트의 파일명을 바꾸면 링크가 깨집니다. 파일명을 바꿨다면 코드 안의 제목도 수정해줘야 합니다.
  2. 편집 모드 vs 읽기 모드: 편집 모드(Source Mode)에서는 코드가 그대로 보이고, 라이브 프리뷰(Live Preview)읽기 모드(Reading Mode)로 전환해야 실제 값이 보입니다.
  3. 속성 이름 띄어쓰기: 속성 이름에 띄어쓰기가 있다면 대괄호를 써야 합니다.
  • 예: created datedv.page("Project A")["created date"]

마무리

이처럼 Dataview의 인라인 쿼리($=)를 활용하면, 데이터를 한 곳에서만 관리하고 여러 곳에서 재사용하는 '단일 진실 공급원(SSOT)'을 구축할 수 있습니다.

여러분의 옵시디언 활용에 도움이 되길 바랍니다!

반응형