Foam

Overview

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

Personal Knowledge Management (PKM) system

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

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

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에서 두 페이지가 서로 연결되어있습니다.

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

댓글