위키와 함께 동작하는 데이터베이스에 대한 요구사항
이전 문서 아무데나 가리킬 수 있는 URI에 대한 요구사항에 이어 오늘은 위키에 통합되어 동작하는 데이터베이스에 대한 요구사항을 생각해봤습니다. 노션 데이터베이스 기능을 굉장히 부러워 했습니다. 내가 알고 있는 그 데이터베이스가 노션과 잘 통합되어 있어 아무데서나 원하는 모양으로 불러올 수 있고 데이터베이스 자체만으로도 독립적으로 입출력 할 수 있습니다. 여러 페이지에서 데이터베이스의 서로 다른 레코드나 값 하나를 불러와 즉시 인용할 수도 있고 간단한 계산을 할 수도 있습니다.
이전에 도쿠위키를 사용하던 시대에는 struct 플러그인이 비슷한 역할을 했으나 기능이 한참 모자랐습니다. 특히 페이지에서 데이터베이스 상의 레코드 하나를 가져올 수는 있었지만 값 하나를 불러와 인라인에 바로 사용할 수는 없었습니다. 노션의 이 기능 하나만으로도 노션으로 이전을 심각하게 고민할 정도였습니다.
컨플루언스에는 아틀라시안이 직접 지원하는 데이터베이스 기능이 없습니다. 서드퍼티 제작사에서 개발해 지원하는 orderly라는 익스텐션이 있습니다. 노션만큼 잘 통합되지는 않지만 노션과 비슷한 데이터베이스를 사용할 수는 있습니다. 데이터베이스를 만들고 칼럼을 선언하고 레코드를 추가해 데이터베이스를 만들 수 있습니다. 페이지에서 데이터베이스의 레코드를 조회한 결과를 표시하거나 값 하나를 조회한 다음 인라인에 표시할 수 있습니다. 사진만 첨부할 수 있고 집계 기능이 없으며 페이지에 데이;터베이스를 불러올 때 표시 방법이 제한적이기는 하지만 노션 마이그레이션 안내 페이지를 기웃거리지는 않게 됐습니다.
위키에 통합된 데이터베이스를 사용하다 보니 데이터베이스와 위키가 완전히 따로 논가는 느낌을 받았습니다. 위키위키의 태생은 여러 사람이 동시에 편집해 더 빨리 문서를 만들어내는 도구입니다. 여러 사람이 동시에 문서를 편집할 수 있기에 누가 어디를 고쳤는지 조회할 수 있어야 하고 문서가 수정될 때마다 버전이 새로 생성되어 이전 버전을 참고할 수 있어야 합니다. 반면 데이터베이스는 근본적으로 문서의 일부가 아닙니다. 데이터베이스는 독립해서 동작합니다. 스스로 로그를 남길 수도 있겠지만 위키 방식의 로그와는 다를 겁니다. 노션과 컨플루언스 모두 데이터베이스 수정 로그에 접근할 수는 없습니다.
하지만 데이터베이스에 위키가 통합되어 동작하는 이상 데이터베이스 로그 역시 위키 로그의 일부로써 통합되는 방향이 옳다고 생각합니다. 데이터베이스는 페이지에 의존하지 않고 스스로 수정될 수 있습니다. 이는 데이터베이스 자체의 로그에 포함되어야 합니다. 페이지에 포함된 데이터베이스는 페이지에 의해 수정될 수 있는데 이런 수정은 데이터베이스 수정이기는 하지만 페이지 수정사항에 나타나야 합니다. 수정 원인이 페이지이건 데이터베이스기던 간에 이들이 통합된 페이지에 변경사항을 만들어냈기 때문입니다.
팀에서 활용하는 법인카드 지출내역을 기입하는 페이지가 있고 그 안에 데이터베이스가 있다고 사정해 봅시다. 나는 그 데이터페이스를 내 개인 페이지에 필터를 걸어 포함해 놓고 내가 사용한 내역과 팀이 사용한 내역을 분리해서 볼 것 같습니다. 이 때 팀원 중 누군가가 법인카드 사용내역을 업데이트 하면 내 개인 페이지의 수정 내역에 이 데이터베이스 업데이트 내역이 기록되어 어떤 이유에 의해 지금 내가 보고 있는 위키 페이지가 업데이트 되었는지 원인을 파악할 수 있어야 합니다.
참고로 데이터베이스를 제외한 다른 항목들은 위키 스타일로 로그를 남기기도 합니다. 컨플루언스에는 여러 드로잉 도구를 임베드하고 컨플루언스 페이지 안에서 직접 수정할 수 있는데 도구에 따라 저장 방식이 다릅니다. 어떤 도구는 페이지의 매크로 안에 직접 수정사항을 기입하기도 하고 어떤 도구는 첨부파일을 수정한 다음 첨부파일을 임베드 하는 방식으로 동작하기도 합니다. 이들이 데이터베이스에 비해 나은 점은 어떤 방법으로든 페이지에 수정 기록을 남겨 지금 보고 있는 페이지가 어떤 수정으로 인한 결과인지를 파악할 수 있게 해 준다는 점입니다.