동기화(Synchronization)의 문제 :: 2007/01/24 01:23

connectionless한 대부분의 정보통신기술은 동기화(Synchronization)의 문제점을 필연적으로 갖고 있다. 그문제점을 어떤 방법으로 쉽게 해결하는가는 모든 서비스 개발자들의 숙명적인 과제이다.

동기화의 가장 일반적인 예제는 PodCast이다. 항상 연결되어 있지 아니하는 iPod와 인터넷은 가끔씩 USB로 PC와 연결됨으로써, 두 데이터가 동기화된다. 다시 연결이 끊어지면 시간이 흐름에 따라, iPod와 인터넷은 또 서로 다른 데이터를 갖고 있게 된다. iPod의 장점은 간단하게 USB연결만으로 인터넷과의 동기화 쉽게 이룩해내었다는 것이다.

위키에서 글을 쓰는 것도 비슷하다. EditText를 누른 시점에서 Save text를 누르기까지, 그 시간동안은 connectionless한 상태이고, 그때문에 동기화의 문제가 또 등장한다. RaceCondition 문제가 바로 그것이다. 대부분의 위키엔진들은 이것을 자동으로 합쳐준다던가, comflict 메세지를 띄우면서 사용자에게 전달한다던가의 방법으로 그 문제를 해결하고자 한다. 위키뿐이 아니지, Subversion등의 각종 Source Code Control System 도 마찬가지이고 인터넷 금융거래도 마찬가지이다.

이 글을 쓰고 있는 지금 이 순간(광주행 새마을호 열차안)도 그렇다. 내가 이글을 썼다고 바로 내 글로써 공개되는 것이 아니라, 인터넷에 접속해서 이 글을 올리는 행동이 수반되어야 한다. 그것뿐이 아니다. 이 글의 내용이 각종 검색엔진에게 노출되고, 그것이 인덱싱되고, 그것이 특정 검색어의 검색결과로 등장해야만 한다. 이 과정은 "동기화의 문제를 언급한 블로거가 있는가" 란 질문을 갖고 있는 어느 한 네티즌이 검색엔진 몇개를 돌려보고는 "아 있군." 이라는 궁극적인 동기화를 위해서 중간에 거쳐야 하는 단계들이다.

그러고보니, 이런 문제를 해결하는 수단으로써, RSS 가 또한 의미를 지닌다. 검색엔진을 통하는 과정을 생략하는 수단을 제공하니까 말이다. 어떻게 보면, 많은 정보통신기술들이 동기화 문제를 어떻게 대하고 있느냐라고 생각해 볼 수 있겠다.

광주 출장에서는 어떤 데이터베이스의 구축에 관한 논의들을 했었다. 여기도 마찬가지. 데이터베이스를 구축한 시점. 그리고, 그 데이터를 갱신하기까지의 시점. 그 사이의 비동기상태를 어떻게 해결할 것인가는 나만의 고민은 아니였던 듯 하다.

그냥 막 생각나는 질문들
1. 내 머리속과 이 블로그는 이떻게 동기화되는가?
1. 나와 내가 사랑하는 사람과의 마음은 어떻게 동기화되는가?
1. 같은 벽위의 두 추시계는 서로 동기화된다던데, 이런 자연적인 동기화현상은 이것과 어떤 관계가 있을까?
Trackback Address :: http://yong27.biohackers.net/trackback/259
Name
Password
Homepage
Secret