2012년 5월 15일 화요일

왜 WOT(Web of things) 인가? - 1부

출처 : http://dreamgoer.net/194


이미 앞서 포스팅에서 미래인터넷(내가 관심있는 미래인터넷 그리고 WOT, 클릭)을 얘기하면서 WOT(Web of things)에 대해 앞으로 소개를 하겠노라고 얘기했었습니다. 그래서 오늘 그 시작을 해볼까 합니다. 

WOT라는 놈이 그리 쉽게 이해가 될 놈이 아니기 때문에, WOT 관련해서는 기존에 나와있는 자료들을 좀 활용하여 설명해보고자 합니다. (설명하면서 제 스스로도 정리해보는 시간으로 활용할 계획이기도 합니다)

먼저 이 얘기를 풀 중심자료로 슬라이드 쉐어에 있는 "Web of Things - Connecting People and Objects on the Web"라는 자료를 선정해보았습니다. 먼저 자료 전체는 아래와 같습니다. 

슬라이드쉐어에 가서 Web of things 검색하면 여러가지 자료가 나옵니다. 그 중에 이 자료가 설명하는데 편할 것 같아, 이 놈을 선정한 거구요. 이 자료를 설명하는 데 있어서도 지루하지 않도록 3번에 나눠서 포스팅을 하도록 하겠습니다. 오늘은 M2M, IOT도 있는데, 왜 WOT까지 나왔느냐에 대한 얘기입니다. 


[영리해지는 Things들]
가전은 우리 생활에 뗄레야 뗄수 없는 Things 들입니다. 그런데 이 놈들이 갈수록 영리해지고 있습니다. 이제 가전제품에 CPU가 안들어가는 게 거의 없습니다. 밥솟만 해도, 버튼을 누르면 각종 메뉴별로 알아서 요리를 해주는데, 이런 식의 프로그램이 돌기 위해서는 낮은 성능이라도 CPU가 들어가게 됩니다. CPU라는 놈은 제가 그 옛날 정보처리기사딸때 외웠던 한글이름으로는 "중앙연산처리장치"이며, 컴퓨터에서 머리역할을 한다고 외웠던 놈입니다.네치에 머리역할을 할 수 있는 CPU가 들어가는 것을 볼때 장치는 분명 똑똑해지고 있는 것입니다. 


생각해보세요. 80년대 거실을 차지하던 아날로그 전화기가 지금은 스마트폰으로 얼마나 똑똑해졌는지. 그냥 전파 받아서, 채널별로 변복조 하여 디스플레이하던 아날로그 TV가 IPTV로 변모되면서 셋탑에 무엇(CPU, 하드디스크 등등)이 들어가는지 말입니다. 



[혼자 영리해봐야 별 수 없다]

그런데 그 놈들이 혼자 영리해져봤자 그리 요긴하지는 않습니다. 밥솥이 아무리 지혼자 잘나서 영리해져봤자, 사용자가 무엇을 요리할지 선택해주지 않는 한, 지가 알아서 할 수 있는 게 없습니다. 

JJ가 함부로 마구 만든 예를 들어보죠. 이를테면 화려한 싱글을 즐기는 한 아가씨가 있다고 해봅시다. 이 아가씨는 집을 정말 좋아하고, 온갖 자동화기기(Home automation)로 집을 단장했습니다. 이 아가씨는 딱 자신이 원하는 취향대로 설정을 잘 해둡니다. 즉 저녁에 집에 돌아올 시간 20분전에, 냉난방이 가동되도록 하고, 10분전에 샤워를 위한 온수가 준비되게 하고, 그게 끝나면 맛있는 잡곡밥을 먹을 수 있도록 30분전에 밥통이 요리를 시작하는 겁니다. (물론 쌀과 물은 아침 출근시간에 미리 들어가 있다는 전제겠지요)


그런데 갑자기 왠일. 갑작스레 상사가 고객사의 요청으로 함께 저녁을 할 일이 생긴겁니다. 당장 집까지 가서 예약해둔, 냉난방 가동, 온수 예약, 밥통설정을 취소할 수도 없고... 지혼자 잘난 물건들도 내 앞에 없으면 다 허사가 되고 마는 겁니다. 아마 아침도 잘 안먹는 이 아가씨로서는 내일 저녁이나 되서, 하루지난 밥으로 저녁을 떼워야 할 겁니다. 


그래서 Thing 혼자 독립적으로 영리한 것보다, 적당히 멍청해도 connected 되는 게 어찌보면 더 중요합니다. 왜냐하면 입출력만 잘 할 수 있고 그것을 외부로 전달할 수 있으면, 외부에 더 강력한 CPU와 메모리를 갖춘 놈이 더 영리한 짓거리를 할 수 있기 때문입니다. (아 바로 그게 소위 요새 말하는 클라우드 컴퓨팅이라는 거겠죠)

생각해보십쇼. 그 아가씨가 사용하는 에어컨, 밥통, 보일러가 모두 통신칩이 내장되어 있다면, 좀 다른 상황이 만들어질 수도 있었을 겁니다. 이를테면, 그 아가씨가 스마트폰을 사용하여 캘린더에 저녁식사 일정을 넣자마자, 개인 일정 프로그램이 저녁이라는 키워드를 알아듣고, 집안에 예약된 각종 물건들의 예약을 알아서 취소하거나, 고객과의 미팅이 끝나는 시간에 맞춰 다시 예약설정을 하는 겁니다. 좀 억지스럽긴 하지만 기술적으로 가능은 한 것이죠.



[그래요. 그런데 왜 그런 서비스가 안되나요?]

앞에서도 제가 좀 억지스럽다는 말씀을 드렸습니다. 이유야 들자면 여러가지가 있겠지만, 무엇보다도 각 물건들은 제조사도 틀리고, 통신기능을 담는다고 해도, 통신하는 방식에 대한 표준이 없으므로, 클라우드에 존재할 개인 일정프로그램이 이 걸 다 지휘(Ochestrate)할 여력이 없기 때문입니다. 


만약 세상에 하나의 제조사만 있어서, 표준통신 방식을 정해놨다면 몰라도, 각 물건마다 상이한 기능셋, 그리고 이를 접근하는 프로토콜별로 제어하는 어플을 개발하려고 하면 정말 난감할 것입니다. (각종 물건별로 통신을 맞추는 것은 정말 롱테일 마켓에 엄청난 노가다로 들이대는 겪일 겁니다) 그래서 M2M이란 놈이 아직까지도 한계를 겪는 것이기도 할 겁니다. 

M2M(Machine to Machine)이라는 놈 자체가, 애초에 이통사업자들의 떨어지는 ARPU를 보전하기 위한 수단으로 시작되었습니다. 모든 개인에게 휴대폰이 주어지자 음성 통신 사업이 포화상태에 이르렀고, 사업자들끼리 가격경쟁을 하면서 ARPU도 떨어지자, 다른 수익원을 찾아 눈을 돌린 것입니다. 사람에서 눈을떼자 사람보다 더 많은 Things로 넘어갔고, 그래서 각종 원격검침에서부터 M2M 어플이 시작된 겁니다. 어쨋든 제가 하고 싶은 얘기는 M2M은 통신료 수익을 내기 위한 부분에 집중을 하고 있다는 얘기이며, 그 얘기는 이통사업자별로 수익과 관련된 부분이므로 상위 프로토콜에 있어서도 표준보다는 자신의 플랫폼에 Lock-in을 시킬 수 있는 방향으로 흘러가게 되었다는 것입니다.  
따라서 필요한 것은 범용적인 프로토콜입니다. 고성능 CPU가 들어가지 않더라도, 가볍고, 간단하게 정보를 주고 받을 수 있는 그런 프로토콜 말입니다. 그리고 그게 표준이 있다면 더욱 좋겠지요. 


그런데 그런 프로토콜을 만들기는 쉽지 않습니다. 삼성이 만들면, 경쟁사인 LG는 다른 쪽을 택할 것이고, 아마 소니, GE 등등 각 가전회사는 이 표준에 있어서 어느 누구에게도 양보하려고 하지 않을 것입니다. 물건들의 통신 프로토콜 표준을 리딩한다는 것은 가전시장에서 갖는 파워가 엄청날테니까요. (그래서 표준이라는 게 항상 쉽지 않은 거겠죠) 



[아차, 그런데 웹(HTTP)이 있었군요!] 

그런데 통신의 표준하면 떠오르는게 있었군요. 바로 웹이지요. 제가 14,400bps 모뎀을 통해, 하이텔, 천리안을 쓰던 시절, 윈도우 3.1이 나오고 나서 좀 있다보니까, 각 통신사의 접속 프로그램들이 윈도우 기반으로 바뀌기 시작했습니다. Dos 방식과 달리, 그래픽으로 사용하기도 쉬워집니다. 하이텔도, 천리안, 유니텔, 채널아이등 모두 GUI기반으로 바뀐 겁니다. 그런데 이들은 각각 자기들 세계에서만 놀 뿐 이쪽에서 저쪽으로 정보를 공유하지도 못했고, 접속할때마다 다른 프로그램을 설치해야 했습니다. 

그런데 웹이 나오면서 이들이 설자리를 모두 잃어버리게 됩니다. 웹은 하이텔, 나우누리, 천리안 뿐만 아니라, 이 프로토콜만 지키면 개인조차도 홈피를 만들어 정보를 공유할 수 있게 된 겁니다. (그러자 다음, 네이버, 야후 등이 하이텔, 천리안, 나우누리의 자리를 완전히 뺏어가 버리게 되었지요) 

그렇다면, 왜 Things에서도 그게 안되겠느냐 하는 겁니다. 즉 Things간에 주고받는 프로토콜도 어느 한 대기업의 지적재산권에 종속되느니, 아예 HTTP기반으로 적용해버리자는 거지요. 사실 웹(HTTP)은 10년이상의 세월을 거쳐, 보완 발전되고, 증명되었습니다. 전세계를 커버할 정도로 Scalability가 입증되었고, 어느 한 사이트가 무너진다고 다른 사이트가 연쇄적으로 영향을 받지도 않게 되어 있습니다 (즉 충분히 Loosely coupled되어있습니다) 게다가 많은 개발자들이 이미 익숙해져 있는 프로토콜이고, 툴도 사방에 깔려 있습니다. 


아마 이쯤되면, 흠 쫌 말이 되긴 하는 것 같은데... 뭔가 논리적인 비약이 있는 것 같아 하실 겁니다. 그렇게 생각하셨다면 정말 예리하신 겁니다. 네. 사실은 제가 웹(HTTP)라는 말로 좀 어설프게 넘어갔습니다. 사실 HTTP에서 주고받는 HTML로 웹페이지 만들어 놨다고 해서 지능적이 되는 것은 아닙니다. 왜냐하면 기본적인 HTML 웹페이지는 인간이 잘 읽을 수 있도록 마크업해놓은 언어일뿐, 실제 기계가 무엇인가 이를 보고 해석할 수 있게 되어 있는 구조는 아니기 때문입니다. 

그래서 WOT에서 얘기하는 HTTP란 그 안을 들여다 보면, 지금 웹 개발자들이 프로그램들끼리 연동할 수 있는 그 HTTP를 말하는 겁니다. 이 말은 좀 더 구체적으로 말하자면, 요새 유행하는 웹기반의 Open API 방식인 RESTful Approach를 말하는 겁니다. 기술 모르는 분들은 구글맵이랑 부동산을 엮은 매쉬업 프로그램을 생각하시면 됩니다. 서로 다른 웹인데, 프로그램들끼리 HTTP를 주고 받아서 새로운 웹 페이지를 생산해 내는 바로 그런 구조를 말하는 겁니다. 

결국 웹/HTTP(Restful 웹)이 프로그램들끼리 매쉬업을 할 수 있듯이, 사물에도 그렇게 HTTP를 적용해보면 사물들끼리도 communication이 가능해진다는 얘기입니다. 게다가 이 기술은 이미 검증되어 많은 개발자들이 알고 있는 기술이고, 툴도 많으며, 사실상 웹세계의 표준이므로 M2M 세계의 상위 프로토콜로는 Best-fit이라는 얘기입니다.


아마 REST 라는 놈을 모르시는 분들은 뭔가 하실 겁니다. 다음 포스팅(2부)에서는 REST라는 놈에 대해 기술적으로 좀 더 심도있게 들어가서, 되든 안되든 제 블로그 독자님들의 동의를 끌어내 볼 생각입니다. (참고로 보시면서궁`금하신 사항이 있으면 언제든지 댓글 달아주세요. 비록 제가 정답을 드린다는 보장은 없지만서도 ㅠㅠ...)

댓글 없음:

댓글 쓰기