자동화프로젝트

옵시디언

목표

  • 노션에 꿀리지 않을 정도의 편의성을 갖춘다

  • 학습정리에만 매진할 수 있는 환경을 만든다

결과

1. 쓰레기통 자동화

옵시디언에서 처음 파일 삭제를 할때 세가지옵션이 존재한다

  1. 로컬 쓰레기통에 버리기
  2. 영구적으로 삭제하기
  3. 옵시디언 파일 내부의.trash 파일에 버리기

나는 나중에 잘못될 수도 있다는 생각에 3 번 옵션으로 선택 하였는데, 그러면 파일들이 삭제는 되지않고.trash 에 계속해서 축적되는 상황이 두려웠다

그래서 crontab 이라는 리눅스 자동화 툴을 사용하여 일요일에서 월요일로 넘어가는 자정에 자동으로.trash 를 비우고 지운 로그를 남기게끔 구현하였다 (참고로 맥의경우 cron 에 대해 권한설정을 좀 해줘야한다…)

로그데이터

2. GIt 플러그인

github 에 자동으로 커밋, push 해주는 플러그인이 있어 적용 시켜놨다

나중에 데이터가 손실되거나 유실된 경우에 복구할수 있는 방책이 생기는 셈이다

현재는 너무 자주 커밋을 하고 Push 를 하는것 같아 푸시하는 횟수를 좀 줄일 생각이다

(바뀐 현재) 지금 커밋은 5 분단위 푸시는 30 분단위로 설정해 두었는데 조심할점은 옵시디언을 끄면 커밋이나 푸시가 되지 않는다는 것이다 따라서 끄기전에 수동으로 커맨드창에서 커밋하고, 푸시를 해주어야 한다

3. 여러 플러그인들 활용 (부수적인)

  1. Advance Table
    • 테이블을 마크다운에서 만들때 더 편하게 만들어주는 플러그인 이다
  2. Auto Link Title
    • URL 을 복붙하면 자동으로 링크로 만들어주는 플러그인 이다
  3. Remember Cursor Position
    • 파일들의 이전 커서를 기억하여, 해당 파일을 열었을때 해당 위치로 이동시켜주는 플러그인 이다
  4. Smart Typograpthy
    • vscode 나 노션과 같이 특정 문자 괄호, 화살표 등을 입력했을때 자동으로 특정 문자로 바꾸거나 추가해주는 플러그인이다

4. Dataview 플러그인

옵시디언에서 없어서 안될 가장 중요한 플러그인이다

노션에서는 데이터베이스 기능을 제공하는것과 달리 옵시디언은 따로 제공하고 있지 않으므로 dataviewSql 문법을 사용하여 우리가 원하는 정보만 쏙 뽑을줄 알아야한다. 이점이 좀 어려운데 인터넷 검색을 하면 크게 어렵지 않다

그리고 Dataview 를 사용하면 dataviewjs 라는 자바스크립트 문법을 옵시디언에서 적용할 수 있다

아직은 높은 수준으로 활용하지 못하지만, 파일마다 양식과 태그를 적절하게 사용하면, 파일들을 태그나 속성별로 Dataview 를 사용하여 그룹화 시키는 것은 어렵지 않다 따라서 우리는 정해진 틀의 파일을 사용해야지 dataview 를 높은 수준으로 활용할 수 있다

추가사항: 현재 수정일자로 dataviewjs를 통해 페이지들을 정렬하여, 최근사용한 주제가 최상단에 오게 바꿈 array.sort(page => page.수정일, "desc") 이런 방식으로 정렬가능

이를 도와 주는것이 template 플러그인 이다

5. Template 플러그인

template 플러그인도 옵시디언에 없어선 안될 중요한 플러그인 이다

이 플러그인은 우리가 정한 양식을 template 폴더에 저장하여 필요할때마다 특정 파일에 템플렛 양식을 적용 시킬수 있다

따라서 우리가 기본적인 파일 양식을 템플렛으로 정해놓으면 우리는 매번 파일생성할때마다 제목, 속성을 적어주는 것이 아니고 이미 적용되어있는 파일에 학습정리만 하면 되는 환경이 된다

또한 비단 파일양식만 사용하는것이 아니고, 사용하기 까다로운 dataview 기본양식이나, multi-column 기본양식과 같이 파일단위가 아니고 단일 필기 단위로도 로드 할수 있는 매우 큰 장점이 있다

따라서 사용할때 오래걸리는 테이블 작성, dataview 작성과 같은것은 미리 template을 만들어두는것이 좋다

그리고 template 도 똑같이 자바스크립트 문법을 사용할 수 있는데, 여기서 사용자 커스텀 함수를 만들어 사용할 수 있다 자세한 방법은 인터넷에 전부 나와있다

나는 이를 매우 많이 활용하였는데 이는 QuickAdd 플러그인에서 설명하겠다

6. QuickAdd 플러그인

비교적 최근 (오늘..) 에 안 플러그인 인데, 사용해보니 많은 장점들이 있다

QuickAdd 플러그인을 사용하면 특정 템플릿으로 특정폴더에 자동으로 파일을 추가하고, 바로 해당파일로 리다이렉트 되게 해준다

이를 단축키를 설정을 해놓는다면, 나같은 경우 CMD + N 로 해두었는데, 옵시디언을 열자마자 단축키를 사용하여 학습정리를 할수 있다

여기서 템플릿과의 조화가 아름다운데,

단축키를 누르게 되면 파일 제목을 적는 란이 나온다, 그리고 파일 제목을 적으면 파일이 생성된다 너무나도 당연한 얘기지만 이를 템플릿에 템플릿 문법을 적용시켜 놓으면 제목을 적는것 만으로도 많은 부분들을 자동화 시킬수 있다

자동화 작동 방식

  1. CMD +N 을 누른다
  2. 파일 제목을 (주제) 제목 번호를 적는다
  3. 자동으로 파일의 속성에 주제를, 시리즈 번호를, 현재 날짜를 그리고 수정된 날짜를 적는다
  4. 그리고 작성한 (주제) 제목 번호에서 “(주제)” 를 파싱하여 제거하고 헤더에 ” 제목 번호 ” 를 적는다
  5. 헤더아래에 주제 태그를 적는다
  6. 그리고 파일을 생성하였다는 날짜정보와 파일정보를 로그파일에 기록한다
  7. 랜덤 배너를 파일의 배너로 추가한다

해당 7 가지 단계를 파일 제목만 기록하면 한번에 이루어지게 세팅하였다 물론 여러 유저 케이스들도 고려하여 파싱 에러가 나는경우 생기는 디폴트 값들도 전부 설정해 두었다

  • 결과

7. HeatMap Calendar 플러그인

엄청 막 중요한 도구는 아니지만 만족도가 높다 이 플러그인은 사용자가 정한 intensity 에 따라 달력에 색깔이 진한정도로 표시하는 도구이다

쉽게 말해 백준이나 github 의 잔디 쌓기와 똑같은 용도인데 그 잔디쌓는 기준을 어떻게 할지 사용자화 할 수 있다

예를 들어 매일 운동을하고 운동기록을 남기는 사람에게는 하루 운동 강도, 운동 시간이 될수 있다

하지만 나는 하루에 몇개의 기록을했는지, 일주일에 정기적으로 노트필기를 하고 있는지에 대한 자기만족형 기록을 하고 싶은 의도가 크기 때문에 로그데이터를 활용하여 동일한 날짜들을 filtering 해서 업로드 횟수를 강도로 사용하고 있다

여기서는 dataviewjs 를 매우 많이 활용하는데 자바스크립트 문법을 알고 있다면 인터넷 검색으로 기본양식을 가져와 쉽게 원하는대로 바꿀 수 있다

8. Shared Note 플러그인

아직 활용은 안해봤지만 유용할거 같아 사용중인 플러그인이다

노션에서는 사용중인 노트를 공유하여 인터넷 상에 게시하는 기능을 제공하는데 옵시디언에서는 내가 알기로 유료로 제공하거나 제공하지 않는다

이때 자기가 필기한 옵시디언 노트를 공유하고 싶다면 Shared Note 라는 플러그인을 사용하면 된다

사용하기 위해서는 이 플러그인 사이트에 방문하여 어느정도 절차를 통과하고 API 키를 받아서 옵시디언에 등록해야한다

등록한 후에는 노트를 인터넷 상에 공유할수 있다

(단, 노션에 비해서 인터넷 게시하는데까지 걸리는 시간이 좀 길다..)

아직 하지 못한것들

솔직히 이정도면 정말 많이 추가해준것 같다, 더 뭘 해야할지 모를 정도로

하지만 그럼에도 기존에 있던것들이 말썽을 부리거나 더 좋은 방법이 생기면 적용시킬 생각이다