공동작업

오피스 문서의 공동작업에 대한 여러 가지 방법들을 구경하다가, 동시에 수천명의 플레이어가 한 서버 군에 접속해서 온갖 행동을 서로 동기화하는건 그렇게 간단한데, 문서 하나를 고작 두세명이서 편집하는건 어째서 이렇게도 어려운가 하는 생각이 들었습니다. 온라인 게임에서는 수백명의 유저가 한 장소에 모여 동시에 대화하고, 서로 입고 있는 옷을 동기화하고, 모두의 움직임을 동기화하는데는 고작 클라이언트를 설치하고 실행하는 과정만 있으면 됩니다. 그런데, 오피스 문서에 여러 사람이 동시에 작업하기 위해서는 준비해야 하는 것이 한두가지가 아닙니다.

수많은 작업 공유 방법이 있지만, 가장 이상적인 모델은 공유된 장소에 있는 문서에 동시에 여러 사람이 접근해도 문서 자체에 락이 걸리지 않고, 락은 유저가 편집하고 있는 라인이나 문단, 표나 그림 오브젝트 까지만 걸리는 식입니다. 문단이나 라인을 넘어가면 바로 그 문단이나 라인의 락이 풀리고, 표나 그림 오브젝트 역시 마우스 포커스가 옮겨지고 시간이 지나면 바로 락이 풀려 그대로 동시에 다른 사람이 편집할 수 있게 되는 식입니다. 각각의 작업자가 편집하는 내용은 실시간으로 반영돼 다른 사람의 화면에도 나타나야 합니다.

생각해보면, 온라인 게임을 구현하는 것에 비해 엄청나게 어려운 일은 아니지 않나 하는 생각이 들었습니다. 동시에 몇 명이 같은 문서를 열어 편집하고, 편집 사항이 실시간으로 다른 사람의 화면에 반영됩니다. 위에서 이야기한 훨씬 더 빡센 온라인 게임의 동기화보다 왠지 쉬울 것 같은 생각이 듭니다. 하지만 현실은 문서를 여러 사람이 만지기 위해서는 '웬만하면' 버전 관리 도구를 따로 이용해야 하고, 그렇지 않으면 소위 '취합'이라고 불리는 '수동 병합'의 나락으로 굴러떨어지기 일쑤입니다. 문서를 공유하도록 도와주는 서버 프로그램 같은 것도, 결국은 동시에 한 명만 편집하거나, 변경 사항을 하나하나 확인해 적용해야 하도록 만들어져 있습니다.

지금 이상적인 문서 동시작업과 가장 가까운 도구는 구글 스프레드시트 정도인데, 구글 스프레드시트는 동시에 여러 사람이 시트를 열고 동시에 제한 없이 편집할 수 있게 되어 있습니다. 물론, 편집 중인 셀에 락이 걸리는 식의 제한은 있습니다. 다른 오피스 관련 파일에도 이렇게, 최소한의 구역에만 락을 걸고, 동시에 다른 사람의 작업을 동기화시켜주는 기능이 필요하단 생각입니다.

2007/11/18 21:21 2007/11/18 21:21

트랙백

답글

  • Rica | 2007/11/19 00:35 | 답글 | 수정

    말씀하신 것처럼, 기술적으로 대단히 어려울 것 같지는 않습니다. 스프레드시트의 공동작업은 이미 구글이 현실화했고, 프리젠테이션 작업도 페이지 단위로 락을 걸면 상당히 쉬울 것 같고요. 워드프로세서는 페이지 넘어가는 문제 때문에 좀 까다로울 것 같지만 이런저런 제약을 추가해서 해결할 수 있을 듯합니다.

    실시간 공동작업에는 저도 굉장히 관심을 가지고 있기 때문에 이리저리 조사해 봤었습니다. (대학원 때 흥미를 느껴서 잠시 조사해 봤는데 논문이 되기 어렵겠다는 것을 깨닫고 접었습니다.) 실시간 협업 기능을 자랑하는 프로그램군이 몇 있었지만, 그럭저럭 제대로 작동시켜 볼 수 있었던 것은 구글 스프레드시트와 Writely 정도더군요. 분명히 이런 식의 편집이 편할 때가 있는데, 어째서 아직까지 쓸만한 도구도 알려지지 않고 협업 편집 방식도 보급되지 않았는지 모르겠습니다.

  • 답글: OpenID LogoMilfy | 2007/11/19 23:42 | 답글 | 수정

    워드프로세서의 페이지 넘김을 잠깐 생각해봤는데, 락이 걸려서 편집되는 동안에는 페이지가 다음으로 넘어가지 않고 계속해서 길어지다가, 락이 풀리고 나면 페이지가 다음으로 넘어가는 처리가 되는 식은 어떨까 싶었습니다. 여기저기 가서 이야기해보면 '위키에 MS워드 에디터가 달려있으면 좋겠다'라든지, '구글 스프레드시트처럼 완전 실시간 동시작업이 됐으면 좋겠다' 등으로 요구사항은 다들 비슷비슷한데, 이걸 수용하는 제품이 거의 없다는게 신기합니다. ;;

  • 답글: OpenID Logohey | 2007/11/21 10:47 | 답글 | 수정

    그죠, 구글 워드도 되는 거였죠? 예전에 관심이 있어서 찾아본 적이 있었는데, (http://hailydaily.net/soojung/개발/2005/08/26/30.html) 클라이언트 기반 프로그램으로는 쓸만한 게 없더라고요. 버전 관리나 diff도 원활하게 되어야 할텐데, 클라이언트 애플리케이션은 데이터를 폐쇄적으로 관리해서 그런게 아닐까 하는 생각이 들었어요. 게다가 저장소가 있어야 하기 때문에 번잡하잖아요.

답글을 남깁니다.

[로그인][오픈아이디란?]


[요즘에 쓴 글] [예전에 쓴 글]

(C)Milfy / neoocean.net, milfy@neoocean.net