지식 요소의 가공과 분석, 그리고 여러가지 도구의 활용에 관한 내용

개인적인 연구노트 및 지식저장소의 구성과 관리 철학

0. 들어가는글

지적 자산으로서 여러가지 지식 조각들을 관리할때, 개인적으로 가장 중요하게 여기는 점은 ‘최적화’나 ‘자동화’에 크게 매몰될 필요가 없다는 점입니다. 덜 완벽해도 괜찮습니다. 오히려 이곳저곳 덕지덕지 붙어있는 아이디어 노트 대충 흩어져 있더라도 전혀 문제가 없습니다. 지적 자산을 쌓는 과정에서 ‘반복적’이고 ‘수동적’인 부분은 용납하는 수준을 넘어서 장려해야 되는 길이라 생각합니다. 여기에 대해 저는 두 가지 생각이 있는데,  지식의 깊이와 현실성은 일종의 숙련도에서 자유로울 수 없다는 점과 (해당 글은 기회가 닿는다면 새로운 글타래로 열어볼까 싶습니다),  이러한 인간적 자유도를 허용함으로서 개인이 사용하는 지식 저장소를 유지 관리하는데 유연성이 훨씬 올라갈 수 있기 때문입니다. 제가 구성하는 지식저장소의 경우 각 조각의 형식에 크게 의존하지 않습니다. 수많은 수동적, 개인화, 파편화의 조각위에 서 있습니다. 하지만, 일상적/주기적으로 관리되고 있습니다. 이 때 구성과 관리의 측면에서 중요하게 생각하는 세 가지 요소, 개인화, 맥락화, 그리고 검색성을 이 글에서 정리해보도록 하겠습니다.

관련글 내부링크:

[1] 문헌 관리 시스템의 변경
[2] 공방의 지식관리 구조 
[3] 지식 단위에 관한 이야기 
[4] 맥 시스템에서 지식 조각의 검색 및 관리: 향후 업데이트 될 예정.

1. 일반화의 함정: 지식 조각들의 반복, 중복, 파편화를 두려워 하지 말자

상당히 재미있게 들릴 수 있는 지점인데, 어떻게 반복적이고 수동적인 지식 저장소의 관리가 더 효율적일 수 있을까요? 상당히 많은 일에 있어서 일반화의 작업자체가 지식 생산품인 경우가 많이 있습니다. 예를들어, 특정 분야에서 사용된 방법론을 확장하거나 일반화 시켜서, 다른 분야에 적용해보거나 혹은 추상화된 지식 그 자체로 압축시키는 과정들은 그 자체가 하나의 새로운 연구주제가 되기 마련입니다. 지식 노동자 입장에서는, 해당 지식을 일반화 하는것 자체가 직업적 성취와 관련되기 마련입니다. 일반적인 지식들을 특수한 경우에 적용하는것, 그리고 다시 특수한 목적에서 사용되는 방법론을 일반화 시키는 작업등은, 그 자체로 전문적인 업무과정이라 이야기하고 싶습니다. 이러한 연유에서, 본인의 전문분야를 위해 지식 저장소를 구성할때 일정수준이상의 일반화를 이룩하기 위해서는, 그것만으로도 새로운 과제가 발생한다고 생각합니다. 

지식 저장소 자체가 연구주제가 아닌 이상에, 이를 위해 구성하는 여러가지 관리 도구들이 지속적으로 일정 수준 이상의 집중력을 요구한다면 문제가 있다고 생각합니다. 이런 목적의 도구들은, (특별한 기능이 필요하지 않는 한) 아주 복잡하고 강력한 기능들로 무장하는 것 보다는 직관적이고 손에 잘 붙으면서, 어느정도 배움의 용이성이 있어야 합니다. 이는 대규모 사람들을 대상으로 서비스하는 데이터베이스와는 다른 철학이고, 그 구성에 대한 노력은 지속적이지만 한정적이라는 부분을 늘 상기할 필요가 있습니다.  이렇게 일반화의 장점을 포기함으로 인하여 달성되는 개인화/파편화된 지식의 조각들은 잘 정립된 맥락적 정보 위에서 스스로가 이용자가 되는 지식 공간 내에서 상당한 지식 압축률 및 전달력을 보이기 마련입니다 [3]. 저는 지식 조각의 특성에서 맥락적 정보가 빠지거나 또 다른 일종의 ‘중성화’작용을 했을때 그 지식의 압축율과 전달력은 떨어진다고 생각합니다.

여기서 가장 중요한 점은, 아이디어가 되던 연구의 중요 단락이 되던, 일단 기록하는 겁니다. 그게 어디인지는 상관없습니다. 보던 책의 귀퉁이가 될수도, 포스트잇이 될수도, 혹은 공책이 될 수 도 있습니다. 지금 사용하고 있던 문서 파일이 될 수도 혹은 파워포인트 장표로 만들수도 있습니다. 형식과 배경, 장소등을 완벽히 무시한 채 지금 하고있는 생각에 몰입해서 지식의 조각을 만드는것은 가장 중요한 작업이라 생각합니다. 이게 어디에 위치하고, 어떻게 가공하고, 관리하는지는 차후의 문제라고 생각합니다.

2. 지식의 단위에 대한 이해: 맥락에 대해 구성/이해하자

아마도 예전 글에서 지식의 단위에 대한 언급을 간략하게 한 적이 있는 듯 합니다. 지식 조각의 목적 혹은 용도, 그리고 배경에 따라 지식은 다른 형태로 가공되고 압축되곤 하기에, 지식에 있어서 그 배경적 속성을 배제하고 이야기할  수 없다는 것이 주된 논지입니다.  단편적인 지식들이 모이고 서로 짜임새 있는 맥락을 구성하려고 노력하다보면, 점진적으로 일관성과 선형적 흐름으로 구성된 문헌으로 완성되곤 합니다.

저의 지식조각들은 여러 형식들이 혼재한 상태로 만들어집니다. 한두줄의 짧은 아이디어 노트부터 수십 페이지에 걸친 한 맥락으로 묶인 긴 노트까지의 과정을 어떠한 한 가지 길로는 표현할 수는 없습니다. 느슨하게나마 존재하는 각 지식조각간의 관련성을 찾고 (없다면 새로운 맥락을 만들고) 시간과 노력이 쌓이면서, 제각기 다른 형식을 가진 (물리적인 형식 포함) 다양한 내용들이 엮이기 시작합니다. 간혹 연구의 방향이 먼저 제시되는 경우도 있는데, 이는 해당 맥락에 맞추어 지식의 방향을 구성하게 됩니다. 어느경우가 되던지, 그 연구의 맥락을 관통하는 데이터베이스의 이름과, 제목 혹은 키워드 기본적인 목차를 구성하면서 조금씩 명확해지곤 합니다. 조금은 다른 이야기이지만 제가 적은 [1, 2]의 글에서 어떻게 지식관리의 구성이 달라지는지에 대해 언급되어 있습니다.

이제 단순히 나열되어 있는 지식 조각들이 새로운 맥락 위에서 조성될 토대가 어느정도 구성되었습니다. 재미있게도, 이런 맥락을 만들게 해준 초기 지식조각들의 기대수명은 그렇게 길지 않아서, 특정 맥락을 만들어 두고 점점 깊이가 깊어지고 연구가 정교해짐에 따라, 점차 참조하지 않게 됩니다.  이러한 지식 조각의 (일종의) 수명은 특정 맥락에 있어서 지식 조각이 가질 수 있는 압축성과 전달력과 관련되었다고 생각합니다. 이러한 맥락의 구성단계는 경로의존성이 매우 크곤 해서, 그 맥락을 제공하는 시초가 어디에 있느냐에 따라 종종 달라집니다 [*]. 기존에 다른곳에서 존재하던 조각이 새로운 시초의 중요한 단초가 되어 연구 생명이 부여된다면, 그에 맞춰 조각 역시 새로운 형태를 가지는게 중요한 듯 합니다. 이는 각 지식 조각의 파편화를 불러일으키게 됩니다만, 각 파편화된 조각들이 각기 적절한 맥락 위에 있으면 큰 문제가 되지 않습니다. 다시말해서, 지식 조각이 어느 맥락위에 서 있는지 알 수 있는 장치가 필요합니다. 전통적인 폴더 구조에서는 그 폴더 자체가 해당 역학을 해 주곤 합니다만, 데이터베이스등을 통해서 구성되는 경우에는 이런 역할을 하는 (부분적으로) 선형화된 구조가 많은 도움을 줍니다. 

저의 지식조각들은 여러 형식들이 혼재한 상태로 만들어집니다. 한두줄의 짧은 아이디어 노트부터 수십 페이지에 걸친 한 맥락으로 묶인 긴 노트까지의 과정을 어떠한 한 가지 길로는 표현할 수는 없습니다. 느슨하게나마 존재하는 각 지식조각간의 관련성을 찾고 (없다면 새로운 맥락을 만들고) 시간과 노력이 쌓이면서, 제각기 다른 형식을 가진 (물리적인 형식 포함) 다양한 내용들이 엮이기 시작합니다. 간혹 연구의 방향이 먼저 제시되는 경우도 있는데, 이는 해당 맥락에 맞추어 지식의 방향을 구성하게 됩니다. 어느경우가 되던지, 그 연구의 맥락을 관통하는 데이터베이스의 이름과, 제목 혹은 키워드 기본적인 목차를 구성하면서 조금씩 명확해지곤 합니다. 조금은 다른 이야기이지만 제가 적은 [1, 2]의 글에서 어떻게 지식관리의 구성이 달라지는지에 대해 언급되어 있습니다.

3. 지식조각 큐레이션: 찾을수 없다면 없는것. 기억할수 없다면 모르는것. 

지식의 관리의 핵심은, 지속적인 노력을 통해서 중요한 지식들을 놓치지 않고 다시 찾을 수 있게 해주는 부분이라 생각합니다. 저는 이런 면에서 파일명을 적절하게 지어주는 부분, 주제 혹은 프로젝트별로 폴더를 구성하거나 적절한 버전 컨트롤을 하는 부분, 그리고 비선형적 자료구성을 위해 태그나 혹은 내부링크등을 구성하는 방법등을 동원하곤 합니다. 물론 데본씽크와 같은 자료관리 소프트웨어의 도움을 받기도 하고 문헌관리 도구들을 이용하기도 합니다. 이러한 특정 소프트웨어들의 활용은 개인의 작업환경에 크게 의존하기에 따로 글타래를 열어 볼 예정입니다.

첫 번째로 언급할 내용은, 전통적인 트리 구조 (폴더구조)입니다. 선형적인 자료구조로서, 그 내부에 포함된 수많은 자료들은 중복 및 파편화될 가능성이 있지만, 그 구조 자체가 중요한 맥락적 정보를 담고 있는 경우가 많이 있습니다. 시스템을 막론하고 (물리적 파일철도 마찬가지입니다) 폴더구조는 기본 구조로서 매우 안정적이고, 필요한 요소를 찾아낼 확률이 매우 높습니다. 조금 품을 들여 한 폴더를 통채로 복사하거나 뒤져보면, 거의 결정적인 수준으로 필요한 파일이 포함됩니다.폴더로 구성한 파일의 경우에는, 많은 경우 크게 헤메이지 않고 필요한 파일들을 금세 찾아내곤 하는데, 이는 폴더를 구성할때 개인이 가지고 있는 경험이 어느정도 반영되기 때문이라 생각합니다. 단점은 명백합니다. 일정 수준 이상으로 지식조각이 증식하고 난 다음에, 지식간의 연결고리를 유연하게 가져가기 어렵습니다. 물론 심볼릭 링크등을 이용하면 가능하기도 합니다만, 이는 오히려 폴더식 구조의 중요한 장점을 침해하곤 합니다. 

이러한 폴더식 자료구조를 이야기할때, 저는 자주 언급하는 점이 바로 git과 같은 버전관리 도구의 활용입니다. 개발자가 아님에도, 상당히 오래 전부터 git을 써 오곤 했는데, 이와같은 도구들은 자료관리의 수고로움을 획기적인 수준으로 줄여줍니다. 저의 git 저장소들은 일반적으로 논문 혹은 코드를 위한 저장소로 구분되어 있고 (혼재되어 있는 경우도 있습니다), 논문 저장소들은 사실 2번에서 언급한 맥락적 지식의 배경이 어느정도 구성된 다음에 만들어지고, 많은 분들과 마찬가지로 여러가지 우여곡절들을 겪고 투고된 최종버전까지 기록됩니다. 각 저장소는, github와 유사한 서버의 저장소를 이용하여 (현재는 일하고 있는 기관에서 제공되는 gitlab을 베이스로 구성된 내부 서버를 사용합니다) 원격 작업 혹은 백업의 분산화를 달성해 둡니다. 여기에 git에 포함된 태그기능을 활용하여, 학회발표자료의 코드/데이터등을 마크해두고, 필요시 그 순간으로 되돌릴 수 있습니다. 결과 자료 자체는 (어떠한 형식으로 발표했던 간에) 또 다른 순수한 폴더로 자료를 보관해두곤 합니다만, 그 계산의 바탕이 되는 코드나 그 때 고려하고 있던 이론적인 방법론등은 git에 크게 의존하고 있습니다. 

두 번째로 언급할 내용은, 비선형적 자료관리를 할 수 있는 여러가지 환경입니다. 예를들어 제가 사용하는 Mac에서는 파일 기반으로 태그를 삽입할 수 있는 기능을 지원합니다. 이는 잘 관리되었을때 검색성을 크게 향상시켜주곤 합니다만, 자료들을 결정적으로 찾아주는 능력이 떨어지곤 합니다. 즉, 태그를 잘 구성해놨다는 가정하에 특정 범주에 해당되는 자료를 훑어보는 용도로는 효과적으로 작용하곤 합니다만, 개인의 경험을 기반으로 이미 구성한 특정 자료를 찾아보기에는 폴더구조만큼 직관적이면서 결정적이지는 않습니다. 또한, 폴더구조를 적극적으로 활용하면서 비슷한 자료들의 파편화가 많이 진행된 경우에는 이 태그로 보여주는 자료가 시간적 그리고 논리적 흐름에서 어디에 위치했는지 알기 어려운 부분이 있습니다.  물론 심볼릭 링크를 활용하거나 스마트 폴더 기능을 이용하여 구현 할 수 있습니다. 다만 심볼릭 링크의 경우 폴더구조와 git등을 포함해 얽히다보면, 폴더구조의 간결성이라는 장점을 놓치게 되는 문제가 가끔 발생해서 저는 프로젝트 폴더 내에서는 대용량 데이터를 제외하고는 심볼릭 링크등을 최소화 시키는 편입니다. 반면에 스마트폴더의 경우에는 여러가지 조건값들을 잘 설정하고, 태그를 활용한다면 맥 기본 시스템을 활용해서 할 수 있는 가장 좋은 방법인 듯 합니다. 저의 경우에는, 조금더 이런 기능들을 본격적으로 지원해주면서 텍스트 기반으로 지식을 잘 엮을 수 있는 소프트웨어들을 찾아서 사용하곤 했습니다.

위와 같은 이유들로 인해, 자연스럽게 목적에 맞는 도구 몇가지를 조합해서 사용되곤 합니다. 첫 번째로 언급했던 기본 폴더 구조 역시 저에게 매우 중요한 도구입니다. 이는 비교적 결정적인 성격을 띠고 있고, 간단하면서도 강력합니다. 어느경우든, 제가 생산한 최종 결과물에 해당되는 핵심자료들은 기본 폴더 구조로 관리됩니다. 아이디어의 발전과정등은 물론 해당 자료들을 구성하는 git이 기록하고 있긴 합니다만, 순간 순간의 지식 조각들은 또 다른 디지털 연구 공간을 활용합니다. 특히 비선형적 지식관리 도구는 적절한 개념을 ‘인지’하는것이 핵심이기 때문에, 도구를 분리해서 사용하는 방법 그 자체에서 개인의 활용 철학이 녹아내어, 일하는 도중에 집중력이 분산되지 않도록 노력합니다 [**].  이러한 측면에서 저는 비선형 자료관리도 (현재는 Devonthink를 사용합니다), 참고문헌 관리도구를 (현재는 Bookends를 활용하고 있습니다) 이용합니다 [***]. 최근에 회자되고 있는 대부분의 소프트웨어들은 그 분야에서 필수적이라고 생각되는 기능들을 잘 제공하기에, 소프트웨어의 자세한 장단점 분석보다 오히려 오래 사용해와서 서로가 길이 잘 들어서 작업환경에 부담되지 않게 하는게 더 중요하다는 생각을 합니다. 이러한 큰 틀을 제공하는 도구들 외에도 여러가지 도구가 있지만, 이 글의 목적에는 부합하지 않으므로 새로이 글타래를 열어서 소개해 볼 예정입니다. 

비선형적 자료관리를 위한 데이터베이스등의 도구들을 활용하게 되더라도, 천 번째로 언급한 지식 저장소처럼 폴더구조로 확보한 자료들은 독립적으로 구성해둡니다. 이는 두 번째로 언급된 지식 관리 도구에서 참조합니다만, 그 속에 완전히 들어과서 관리되지는 않습니다.  많은 자료관리 도구에서는, 그 내부에서 파편화를 담보로 하지 않고서도 수많은 선형적 자료를 구성할 수 있습니다. 이러한 프로젝트 폴더 내에서는 심볼릭 링크등을 최소화 시키고 파일로서 존재시키거나, 개인 클라우드 등을 이용한 파일링크를 작성 문헌내에서 참조하는 등 얽힘 요소를 배제하려고 노력하는 편입니다. 

4. 부록: 지식 조각의 수명

저는 위에 언급한 자료관리 도구들을 활용함으로 인하여, 지식 조각의 수명과 맥락에 대한 문제역시 함께 해결하곤 합니다. 지식조각의 수명은, 단순한 파편화의 문제는 아닙니다. 중복적으로 여러곳에 적용가능한 지식조각들은, 본인의 경험 및 그 맥락에 맞춰 충분히 압축적인 경우가 많습니다. 이는 용도에 맞게끔 가공된 형태이고, 그렇게 압축이 되어 있지 않은 상태에서 일반적인 기술은 매우 길고, 주안점을 파악하기 힘들어집니다. 한 곳에서 적용가능했던 아이디어 혹은 이론이 다른 곳에서는 쉬이 적용하지 못하거나, 또 다른 고려를 해야 할 수도 있습니다. 예전에는 맞다고 생각했던 가정들을 재방문 해야 할 때도 있습니다. 이러한 과정등을 통해, 구성된 시점과 맥락적 장소에 따라 비슷한 내용의 지식 조각이라도 전혀 다른 형태를 가지는 경우가 있습니다. 또한, 이러한 지식적 조각은 맥락과 강하게 결합하곤 해서 따로 떼서 놓게 되면 그 자체로는 큰 힘을 발휘하기 힘든 경우가 많이 있습니다. 꼭 그 모습이 예전 프로그래밍 언어를 배울때 함수공간과 변수의 수명에 대한 이야기와 비슷한 면모가 있어 보여, 저는 이를 지식 조각의 ‘수명’이라고 곧잘 부르곤 합니다. 

[*] 이미 존재하는 프로젝트와 관련이 있거나, 필자의 내적 동기에 의해서 시작되는 연구이거나, 혹은 한 조각의 실험적 생각등이 시작지점이 된다면 상응하는 저장소의 구성 및 발전은 상당히 다른 경로를 가지기 마련입니다. 이 때 시초가 되는 혹은 중요 단계가 되는 지식 조각은, 많은 경우 기존의 (또 다른) 맥락적 구성 위에서 조성된 경우가 많이 있습니다. 

[**] 저는 개인적으로 도구 활용시 개인의 인지능력에 대해 재미있는 주제라고 생각합니다. 매우 오랫동안 애용해오던 소프트웨어들의 경우 그 단축키나 명령어등이 손에 붙어서 생각하지 않고도 나오곤 합니다. 그런데 재미있게도, 어떤 생각에 몰입이 일정범주를 넘어가기 시작하면 매일과 같이 10년넘게 사용하던 소프트웨어라고 하더라도 몰입의 정도에 따라 익숙함의 정도가 덜한 기능들이 떠오르지 않는 경우가 제법 많이 있습니다. 당연한 기능 키의 조합이나 작업환경의 절차등에서도 제가 지켜오던 단순한 습관들이 지켜지지 않는 경우가 많이 있습니다. 저는 이러한 이유로 제 작업환경을 개인화 하고, 고착화 시키곤 합니다. 현재는 Mac에서 제공되는 Accessibility 관련 기능을 활용하고 있습니다. 여기에 대해서는 한번 따로 글타래를 열어 볼 예정입니다.

[***] 비선형적 자료관리를 위한 데이터베이스의 경우 여러 소프트웨어들이 나오곤 하는데 저의 경우 Devonthink를 사용한지 제법 오래되었습니다. 그 전에 이러한 목적으로 사용하던 도구들에는 MacJournal, wikidpad, folder + emacs orgmode를 사용하곤 했었습니다. 오픈소스로는 Joplin을 좋은 대안으로 생각합니다. 반면에 참고문헌 관리도구로는 Bookends 사용하고 있습니다만 이 역시 다양한 좋은 상용프로그램 / 오픈소스들이 존재합니다. 이러한 소프트웨어의 선택 및 활용은, 개인의 작업환경 및 철학에 크게 의존하기 때문에 일반화 하기가 매우 어렵습니다만, 특별히 시작점을 찾기 힘들다면 유명한 소프트웨어를 사용해서 스스로가 길이 드는 방법이 좋습니다. 만약 특별히 돈을 들이지 않고, 습관을 기르고 싶으시다면 여러가지 무료로 공개된 도구들을 활용하는것도 좋습니다. 예로들어, 제가 오래 애용하던 MacJournal은 최근와서 무료로 풀리기 시작했습니다. 해당 소프트웨어는 오랫동안 꾸준히 마이너 업데이트가 지원되었고, 위에 언급한 기본적인 철학들을 적용하기 좋습니다. 문헌관리 소프트웨어의 경우에는 흔히들 사용하시는 Mendeley나 JabRef등을 활용하는것도 좋습니다. 이 외에 여러가지 좋은 소프트웨어가 존재합니다. 운영체제와 별개로, 시스템 전체의 tag를 지원하는 소프트웨어도 많이 있습니다. 예로들어 Mac의 경우에는 어느 시점부터 태그를 기본 옵션으로 제공해줍니다. 여기에 Smart folder기능을 활용하면 상당히 좋은 자료관리 시스템이 만들어집니다. 오래전 사용한 기억에서는, 윈도우나 리눅스 시스템 (저는 우분투 / 오픈수세를 사용했었습니다)에서도 비슷한 기능이 제공되거나 오픈소스등으로 설치할수 있었던 것으로 기억합니다. 


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *