Foam

June 30, 2020

Overview

FoamRoam ResearchZettelkasten에 영감을 받아 만든 개인 지식 관리 시스템입니다. 다르게 말하면 기능을 배낀 아류작이죠.

Personal Knowledge Management (PKM) system

개인 지식관리 시스템 (이하 PKM)은 쉽게 생각하면 개인 위키입니다. 각 위키 글 별로 주제가 있고 그 사이를 연결하는 하이퍼텍스트 링크가 있죠. PKM도 작은 단위의 글, 정보를 디렉토리 구조와 상관없이 기록하고 서로 링크를 걸어 정보가 꼬리에 꼬리를 물고 이어질 수 있게 하는 시스템입니다.

개인 위키는 위키를 구동할 호스팅 서버가 필요한 게 보통인 데, PKM은 프로그램을 통해 구동하거나 다른 IDE에 플러그인으로 제공되는 경우가 대부분입니다.1 중앙서버에서 동작하는 Super NotesRoam Research도 개인이 서버를 운영하는 게 아니라 만든 회사의 클라우드 서비스를 이용하는 것이니 서버 관리의 괴로움은 없죠.

Install

  • VSCode 설치
  • foam-template 코드 저장소 템플릿을 이용해 개인 저장소 생성
  • 로컬 디렉토리로 Clone
  • VSCode에서 해당 저장소 디렉토리를 오픈
  • 처음 오픈 시 Extension 설치를 물어보는 데 Install All

저의 경우에는 여기에 추가로 Markdown Footnotes를 설치했습니다. 다른 곳에서도 설치하려면 .vscode/extensions.json에 아래 라인을 추가하면 됩니다.

// file: .vscode/extensions.json
{
    "recommendations": [
        // ... prev extensions
        ...
        
        // Markdown Footnotes
        "bierner.markdown-footnotes"
    ]
}

사용법

PKM의 핵심은 Backlink와 Graph입니다. 역링크는 현재 페이지를 가리키는 링크를 가지고 있는 페이지 목록을 보여주는 것이고, Graph는 페이지가 서로 어떻게 연결되어 있는지 그래프로 그려주는 기능입니다. 이 두개의 기능을 통해 페이지가 독립되어 있지만 서로 엮여있을 수 있게 됩니다.

아직은 Foam이 Roam Research의 모든 기능을 구현하지는 못해서 subdirectory document를 graph로 잘 못 보여준다던지, Daily Note 기능이 없고, Unique ID도 없지만, 핵심인 두가지가 있어서 여전히 도움이 많이 됩니다.

일단 기록하고자 하는 페이지를 만들고 (.md 확장자) 그 안에 두서없이 짤막하게 기록합니다. 주제하나에 너무 많은 글을 기록하는 것은 나중에 관리하기가 어려워 지는 듯 합니다. 자세하게 써야 하는 내용이 있다면, 해당 내용은 따로 파일을 생성해서 Internal Link를 걸어주는 게 낫습니다.

예를 들면 아래와 같이 VSCode에 대한 설명은 따로 링크를 걸어서 vscode.md 파일에 기록합니다.

# FOAM 사용법

FOAM은 ROAM 기능을 [[VSCode]]에 구현한 Extension이다.

#foam #roam #vscode

그러면 vscode.md 페이지에서 역링크는 foam.md가 보이고, Graph에서 두 페이지가 서로 연결되어있습니다.

일견 단순해 보여서 효과가 없을 것 같아 보입니다. 그러나 정보가 쌓일 수록 정보가 꼬리에 꼬리를 물게 되어 하나의 주제를 선택해서 여러 다양한 정보를 뽑아낼 수 있습니다.


  1. Super NotesRoam Research의 경우에는 중앙 서버에서 구동됩니다.↩︎