2007년 5월 3일 목요일

Google Calendar와 Outlook을 Synchronize 하기위한 노력들

Windows Mobile 기반 PDA나 Smart Phone을 사용하는 사람은 PDA ↔ ActiveSync ↔ Outlook의 독점적 연결관계 때문에 Main PIMS로 Outlook을 사용하지 않을 수가 없습니다. Outlook은 MS의 다른 office suite들과 마찬가지로 표준과 개방성과는 거리가 멀죠.

반 면 Google의 Calendar(이하 gCal)는 온라인 협업, 브라우저 기반의 accesibility 등 여러면으로 Outlook과는 다른 활용도가 있습니다. 그야말로 브라우저만 있으면 어디에서나 일정을 확인할 수 있는 편리함이 있습니다.

만약 gCal과 Outlook이 Two-way synchronization이 된다면?
오프라인과 온라인 , 더불어 모바일의 세계를 아우르는 궁극의 스케줄러 솔루션이 됩니다...
정말 많은 사람들이 바라던 이상적인 솔루션일텐데요. 이런 이상적인 동기화를 꿈꿀 수 있게 된 배경에는 gCal이 데이터 서버로서 인프라 역할을 하기 때문이겠습니다.

2006 년 초부터 해외의 여러 사람들이 gCal과 Outlook을 연결하기 위한 노력했고, 부분적으로 동기화를 성공시킨 솔루션은 나왔습니다. 그러나 근본적으로, gCal가 recurrence exception을(되풀이의 예외) 아직 지원하지 않기때문에, 현재로서는 gCal과 Outlook이 완전히 동기화되는 솔루션이 나올수가 없어보입니다.


동기화 솔루션을 '직접연결 방식'과 '간접연결 방식'으로 크게 나눠서 소개하겠습니다.


직접연결 방식

제3의 서버나 장치의 도움 없이 gCal과 Outlook이 직접 연결되는 방식을 말합니다.

여러 솔루션중, RemoteCalendars 라는 Outlook Plug-in이 이상적인 솔루션에 가장 가깝습니다만, 작동이 불완전합니다. How to Sync Google Calendar with Outlook and SmartPhones AutomaticallyIncorporate Google Calendar Into Outlook이 라는 포스트에 설치법이 소개되었습니다. 직접 설치해보았는데 설정이 정말 tricky 하군요. Sourceforge의 개발자 포럼을 확인해보니 최신버전 5.82는 버그가 있어서 구버전인 5.81을 설치해야합니다. 어쨋든 싱크가 원활히 되지는 않습니다. 계속해서 에러가 발생하고, 잘못하면 Outlook의 모든 일정을 한방에 지워버릴 수도 있으니 테스트 싱크 전에 반드시 일정을 백업해야 합니다.

모바일폰용 Java VM에서 돌아가는 gcalsync라는 무료 소프트웨어도 나와있습니다만 테스트할 하드웨어가 없는 관계로 성능에 대해서는 평가할 수가 없군요.

상 용 제품으로 출시된 솔루션들도 있는데, CompanionLink사의 CompaionLink for Google Calendar는 직접 설치해본 결과 vaporware에 가까운 것 같습니다. 싱크는 되지 않고 찜찜한 느낌만 남기는군요. 웬만하는 시도하지 마시기 바랍니다.


간접연결 방식

gCal과 Outlook 사이에 제3의 데이터 서버 또는 매개 디바이스가 있는 방식을 말합니다.

가장 추천할 방식은 -The Holy Grail of Synchronization에 소개된- ScheduleWorld.com을 중간 거점으로 사용해 동기화하는 방법입니다. The Holy Grail of Synchronization에는 Funambol Outlook plug-in을 사용하면 Outlook ↔ ScheduleWorld.com ↔ gCal이 two-way 싱크가 된다고 설명되어있습니다. 그러나 Outlook 2003에서 직접 설치해본 바로는 싱크 도중에 Funambol plug-in에서 에러가 발생하는군요. 아마도 한글(유니코드)때문이 아닐까 예상해봅니다. 한가지 희망적인 것은, PocketPC용 Funambol plug-in은 비교적 잘 작동한다는 것입니다.

PocketPC PDA가 있을 경우에 한해서 다음 절차대로 하면 gCal ↔ ScheduleWorld.com ↔ PocketPC ↔ Outlook의 양방향 싱크가 이뤄집니다.

1) ScheduleWorld.com에 가입합니다.

  • Password가 적혀있는 email을 받습니다.

2) ScheduleWorld의 Preferences 페이지를 엽니다.

  • General Preferences 섹션에서
    - 필요하면 Password를 변경합니다.
    - Time zone (Asia/Seoul)과 locale(Korean (South Korea))을 설정합니다.
    - 저장합니다.
  • Calendar 섹션에서
    - Automatically sync with your specific Google Calendar at the start of a SyncML sync(gCal 동기화) 옵션을 선택합니다.
    - Corresponding Google Calendar Username (email)에 gCal 계정을 기입합니다.
    - Google Calendar Title의 "Find Calendars" 버튼을 누르면 구글 인증페이지가 뜹니다. "확인"하세요. 그럼 버튼 오른쪽의 drop-down 리스트에 calendar 목록이 나타납니다. 싱크할 calendar를 선택합니다. 선택한 하나의 calendar와만 싱크가 이뤄집니다.
    - 저장합니다.
  • Fundambol SyncML Client Congifuration 섹션에서
    - Server URL / Username 을 확인해 메모해둡니다.
3) ScheduleWorld의 일정 페이지로 가는  아이콘을 누른 후, 좌측의 "Google Sync" 링크를 눌러서 싱크시킵니다.

4) PocketPC용 Funambol plug-in을 내려받고(PIM-Only 버전을 받으시면 됩니다) PDA에 설치합니다. PDA에서 Funambol을 실행합니다.
  • Edit - Communication Settings... 에서
    - Funanbol Server URL, Username 에 메모해둔 내용을 넣습니다.
    - Password도 넣습니다.
5) PDA가 인터넷에 연결된 상태에서(보통 싱크 케이블이 연결된 상태나 무선랜에 연결된 상태) Funanbol의 "Synchronize" 버튼을 누릅니다.

이렇게 하면 PDA의 Funambol이 ScheduleWorld.com에 저장된 gCal의 일정과 싱크하면서, PDA에서 변경된 일정이 ActiveSync를 통해 Outlook과 싱크됩니다.

이 방법의 단점으로는
  • PDA가 있어야 한다.
  • PDA를 사용해 "수동으로" 싱크하는 것이기 때문에 Outlook ↔ gCal이 직접 "자동으로" 싱크되는 편리함과는 거리가 멀다.
  • Outlook의 "하루종일" 일정이 "12:00AM-11:59PM" 형식으로 바뀐다.

이 방법 외에 PDA와 Apple의 iCal을 이용한 방법도 있습니다. gCal ↔ Apple iCal ↔ PocketPC ↔ Outlook 이 서로 싱크되는 관계로 만드는 two-way 솔루션입니다. 문제는 Apple과 PDA가 있어야 하고, gCal과 Outlook 사이의 round trip이 상당히 번거롭다는게 문제입니다.


언젠가는 온라인과 오프라인, 모바일을 아우르는 편리한 싱크 솔루션이 나오겠죠? Open-source인 RemoteCalendars에 기대를 걸어봅니다.