개인 작업에서 만들어진 바이너리 파일 버전관리 방법 소개

아무리 위키를 편하게 사용하고 있어도 컴퓨터를 사용하며 생산한 모든 정보를 위키 모양으로 저장할 수 있지는 않습니다. 표만 생각해도 위키로 만들 수 있는 표는 이전 시대에 비해서는 아주 조금 더 정교해졌지만 여전히 셀을 조금만 병합하면 편집할 수 없는 상태에 빠지기 쉽습니다. 또 작은 플로우차트 하나만 넣으려고 해도 위키만으로는 아무 것도 할 수 없습니다. 더군다나 현대에는 크로스플랫폼을 지원한다며 웹 기반으로 동작하는 앱이 많아 작업 결과를 문서 중간에 첨부하기 쉽지 않습니다. 가장 전통적인 접근은 그림으로 만들어 붙여 넣는 거지만 이러면 나중에 편집하기 어려워지고 또 노션이나 컨플루언스 같은 웹 기반 도구는 같은 웹 기반 앱의 작업 결과를 임베드 할 수 있기는 하지만 썩 안정적으로 동작하지 않기도 합니다.

만약 위키 문서 중간에 파워포인트 프리젠테이션을 첨부해야 한다면 여러 고민이 시작됩니다. 파일 모양으로 첨부할 수 있는데 그러면 내가 편집해 내 컴퓨터에 저장한 버전과 문서에 첨부된 버전 사이에 차이가 생기기 시작합니다. 그림으로 만들어 첨부하면 같은 문제가 있을 뿐 아니라 나중에 수정한 프리젠테이션을 문서에 반영할 때 문서를 그림으로 만드는 귀찮은 단계가 추가되고요. 파워포인트 프리젠테이션을 원드라이브에 넣고 원드라이브 상에서 편집하며 다른 문서에 첨부할 때 원드라이브 주소를 사용할 수도 있습니다. 이는 마이크로소프트에서 가장 권장하는 방법처럼 보이고요. 하지만 여전히 위에서 설명한 웹 앱의 불안정한 동작을 보일 뿐 아니라 이런 행동을 보안 상 용납하지 않는 환경도 있습니다.

결국 처음으로 돌아와 파일을 직접 첨부하거나 파일을 올린 공유디렉토리 경로를 사용하기도 하는데 근본적으로 문제를 해결해 주지 못합니다. 컨플루언스 위키를 거의 뇌의 기록과 사고를 보완하는 도구로 사용하기 시작하면서 하게 된 고민 중 하나는 위키 문서에 호환되지 않는 형태의 정보를 어떻게 위키에 포함시키느냐 하는 것입니다. 위에 설명한 파워포인트 프리젠테이션이 대표적인 사례입니다. 위키에 모든 정보를 집중 시키고 있으니 파워포인트 같은 바이너리 파일 역시 위키에 집중 시키고 싶지만 위키는 바이너리 파일을 첨부하고 바이너리 파일 각각의 버전을 보관해 주기는 하지만 이를 편리하게 편집할 수 없습니다. 만약 위키 문서에 한번 첨부한 바이너리 파일을 편집하고 싶으면 파일을 다운로드 해 편집해 저장한 다음 이를 다시 문서에 첨부파일로 올려야 합니다. 한동안은 실제로 이렇게 사용했는데 문서를 작성하다가 문서에 필요한 바이너리 파일을 쉽게 찾을 수는 있었지만 그 파일을 쉽게 편집할 수는 없었습니다.

한동안은 로컬에 비주얼 SVN 서버를 설치하고 파일을 수정할 때마다 로컬에 커밋하며 버전을 관리했는데 버전을 관리할 수는 있었지만 위키 문서에 연동되지 않아 문서에 연관된 파일을 빠르게 찾기는 쉽지 않았습니다. 종종 위키 문서에 파일을 첨부하는 대신 svn 경로를 붙여 넣었다가 나중에 이 경로를 열어 파일을 사용하곤 했는데 대체로 괜찮았지만 기계가 바뀌거나 서버 경로가 바뀌면 파일을 찾을 때마다 매번 경로를 수정해 줘야 해서 불편했습니다.

시간이 흐르며 깃헙 같은 형상관리 상태를 웹을 통해 조회할 수 있는 도구가 나타나면서 웹 기반으로 동작하는 위키에 바이너리 파일을 연결해 쉽게 편집하고 관리할 수 있는 방법을 만들 수 있게 됐습니다. 가장 최근에 사용하는 체계는 빗버킷을 사용하는 것입니다. 빗버킷에 어떤 장점이 있다기보다는 컨플루언스 위키를 사용하고 있으니 같은 회사 제품에 연동이 더 잘 될 거라는 기대를 했습니다. 나중에 알고 보니 빗버킷이 특별히 아틀라시안 제품에 더 잘 연동되는 것 같지는 않습니다. 깃헙이 워낙 널리 사용되어 깃헙 역시 비슷한 수준으로 쉽게 연동할 수 있고요.

운영 방법은 이전과 같습니다. 컨플루언스에서 위키 문서를 작성하다가 바이너리 파일을 만들고 편집할 일이 생기면 클론 된 내 컴퓨터 상에서 파일을 만든 다음 이를 빗버킷에 커밋하고 이 경로를 위키 문서에 포함합니다. 파일은 파일 대로 버전 관리가 되고 위키에는 웹 경로를 첨부하면 되니 기계가 바뀌는 상황에 대응할 수 있을 뿐 아니라 내 컴퓨터에 리파지토리 전체가 다운로드 되어 있으니 편집을 시작하기도 편해졌습니다. 게다가 할일관리에 지라를 사용하고 있어 회사에서 하는 것과 똑같이 파일을 커밋할 때 지라 이슈키를 언급하면 지라와 빗버킷 양쪽에 자동으로 링크가 생겨 어떤 작업을 위한 편집인지 파악하기도 쉬워졌고요.

이 체계를 모든 사람들에게 권하긴 좀 그렇지만 주로 위키를 사용해 문서를 작성하고 그 사이에 여러 바이너리 파일을 만들 일이 있다면 깃헙이나 빗버킷 같은 도구를 통해 버전을 관리하고 또 위키 문서와 연동하는 방식을 추천합니다. 단 이 방법은 바이너리 파일 크기가 크지 않을 때만 유용하게 사용할 수 있습니다. 제 경우에는 문서 파일이 몇 십 메가를 잘 넘지 않기 때문에 사용할 수 있는 방법이지만 종종 프리젠테이션 파일은 몇 기가에 쉽게 도달하고 영상 파일은 이보다 백 배 큰 파일이 쉽게 나타나므로 사용할 만한 방법이 아닙니다. 또 빗버킷은 한달에 10메가 이상인 파일을 총 1기가까지만 무료로 사용할 수 있어 무료로 사용하려면 요구사항을 주의해서 판단해야 합니다.