2007/11/18 21:21
공동작업
오피스 문서의 공동작업에 대한 여러 가지 방법들을 구경하다가, 동시에 수천명의 플레이어가 한 서버 군에 접속해서 온갖 행동을 서로 동기화하는건 그렇게 간단한데, 문서 하나를 고작 두세명이서 편집하는건 어째서 이렇게도 어려운가 하는 생각이 들었습니다. 온라인 게임에서는 수백명의 유저가 한 장소에 모여 동시에 대화하고, 서로 입고 있는 옷을 동기화하고, 모두의 움직임을 동기화하는데는 고작 클라이언트를 설치하고 실행하는 과정만 있으면 됩니다. 그런데, 오피스 문서에 여러 사람이 동시에 작업하기 위해서는 준비해야 하는 것이 한두가지가 아닙니다.
수많은 작업 공유 방법이 있지만, 가장 이상적인 모델은 공유된 장소에 있는 문서에 동시에 여러 사람이 접근해도 문서 자체에 락이 걸리지 않고, 락은 유저가 편집하고 있는 라인이나 문단, 표나 그림 오브젝트 까지만 걸리는 식입니다. 문단이나 라인을 넘어가면 바로 그 문단이나 라인의 락이 풀리고, 표나 그림 오브젝트 역시 마우스 포커스가 옮겨지고 시간이 지나면 바로 락이 풀려 그대로 동시에 다른 사람이 편집할 수 있게 되는 식입니다. 각각의 작업자가 편집하는 내용은 실시간으로 반영돼 다른 사람의 화면에도 나타나야 합니다.
생각해보면, 온라인 게임을 구현하는 것에 비해 엄청나게 어려운 일은 아니지 않나 하는 생각이 들었습니다. 동시에 몇 명이 같은 문서를 열어 편집하고, 편집 사항이 실시간으로 다른 사람의 화면에 반영됩니다. 위에서 이야기한 훨씬 더 빡센 온라인 게임의 동기화보다 왠지 쉬울 것 같은 생각이 듭니다. 하지만 현실은 문서를 여러 사람이 만지기 위해서는 '웬만하면' 버전 관리 도구를 따로 이용해야 하고, 그렇지 않으면 소위 '취합'이라고 불리는 '수동 병합'의 나락으로 굴러떨어지기 일쑤입니다. 문서를 공유하도록 도와주는 서버 프로그램 같은 것도, 결국은 동시에 한 명만 편집하거나, 변경 사항을 하나하나 확인해 적용해야 하도록 만들어져 있습니다.
지금 이상적인 문서 동시작업과 가장 가까운 도구는 구글 스프레드시트 정도인데, 구글 스프레드시트는 동시에 여러 사람이 시트를 열고 동시에 제한 없이 편집할 수 있게 되어 있습니다. 물론, 편집 중인 셀에 락이 걸리는 식의 제한은 있습니다. 다른 오피스 관련 파일에도 이렇게, 최소한의 구역에만 락을 걸고, 동시에 다른 사람의 작업을 동기화시켜주는 기능이 필요하단 생각입니다.
