에어콘 메타포를 이용한 WS-*와 REST 이야기 SOA

...
아이러니하게도 인간이 거의 완벽하다는 가정하에 시스템을 만들어내려고 했던 사람들은 결국에는 인간의 영혼을 파괴하는 시스템을 만들게 됩니다. 이런 시스템은 내부로부터 썩어 들어가기 때문에, 마치 삐걱거리면서 부패해가는 거대한 참나무처럼 악취와 쓰레기만 남기고 스스로 붕괴해버립니다. 우리는 이미 1991년 소련이 붕괴할 때 이와 같은 일이 벌어지는 것을 경험했습니다. 바꿔 말하자면, 인간이 본래 복잡하고 연약하지만 재치있다는 점을 고려해서 융통성, 점검과 균형, 관용을 바탕으로 하는 시스템을 만들면 우리가 예측하는 것보다 더 오래 살아남게 됩니다.
이 법칩은 소프트웨어에도 동일하게 적용할 수 있습니다. 유연성 있고 단순하면서도 관대한, 그래서 인간의 결점과 약점을 너그럽게 융서해 주는 소프트웨어는 결국 살아남아서 점점 더 발전하게 되는 반면, 추상적이면서 지나치게 빡빡한 시스템은 결국 스스로 붕괴하게 됩니다.
...
- 애덤 보스워드ICSOC04 에서 강연했던 내용 중...

2001년 졸업 논문으로 SOAP 기반 RPC를 위한 Adapter에 대한 내용을 썼던 calmglow는 그 당시 처음 SOAP을 접하고 '이것이다!'라고 감탄해마지 않았던 시절을 기억한다. HTTP가 세계를 지배할 수 있게 한 단순성과 확장성의 미덕을 그대로 가지고 있는 SOAP의 아이디어는 전율을 일으키게 하고 calmglow가 웹서비스에 빠져들게 한 계기를 만들어 주었다.
그렇게 단순하고 명확했던 SOAP은 시간이 지나 웹서비스라는 이름으로 조금씩 그 덩치를 키우더니 어느새 공룡이 되었고 SOA를 만나 제국의 일원이 되었다.


출처: http://www.loudthinking.com/arc/000585.html

그러던 중에 calmglow는 몇년 전 REST를 만났다. 마치 예전 SOAP을 대했을 때 느꼈던 감동을 다시 한번 느끼며. HTTP가 가진 장점을 그대로 물려받은 REST를 참으로 요긴하게 사용했고 그 생산성과 확장성에 언제나 즐거웠다.
그러나 calmglow가 감히 대적할 수 없는 수많은 아키텍트들은 SOA의 탑을 높이 세워나갔고 더욱 견고해졌다.
그러면서 전혀 다른 두 개의 축, Web 2.0과 SOA를 만났다. 이 두 개의 세계는 참으로 다른 철학으로 만들어졌다. calmglow가 생각하기에 이 둘의 가장 큰 차이점 중의 하나는 단순성이다. 이 두 개의 세계는 모두 유연성을 목표로 만들어졌지만 유연성을 높이는 수단으로서 Web 2.0은 단순성의 개념에 기반을 두었던 반면 SOA는 수많은 layer의 복잡한 표준을 기반으로 이룩되었다.

오늘 calmglow는 REST vs WS-*: A parable이라는 포스트를 소개하고자 한다. 에어콘 메타포를 이용하여 REST기반의 회사와 WS-*를 기반으로 하는 에어콘 회사 둘을 비교한 것이다. WS-Star 에어콘 회사는 기존의 단순한 REST기반의 에어콘 회사가 제공해줄 수 없었던 수많은 고급 기능을 제공할 수 있었고 탄탄한 아키텍처 위에서 고객에게 공기 청정 서비스를 제공한다. 그들의 시스템은 설사 달에다가 집을 지었다 할지라도 충분히 에어콘 서비스를 할 수 있을 정도의 견고한 설계 철학을 바탕으로 개발되었다(정말 그것이 우리에게 필요한 지 여부는 중요하지 않지만). 그럼에도 불구하고 WS-Star의 제품을 구매한 고객들은 어마어마한 에어콘 시스템 규모에 놀라면서도 결국은 에어콘의 가장 기본적인 기능인 온도 조절 자체는 해결하지 못하는 우스꽝스러운 결과에 직면해야 했고 이전의 REST 에어콘 회사의 제품을 구매하게 되었다라는, 수많은 은유와 패러디가 있는 즐거운 이야기이다.

대다수의 우리는 지금은 비록 SOA가 바로 적용되기에는 무리가 있지만 언젠가는 어쩔 수 없이 SOA 세상이 될 것이라고 생각한다. 과연 그럴까? 벤더들이 중심을 이루는 SOA의 발전이 고객과 기술자들과 별도로 가능할까라는 점에서 calmglow는 종종 의구심을 갖는다. 현재의 SOA는 너무 거대해져버려서 몇 안되는 다국적기업 벤더가 아니면 도저히 소화해 낼 수 없는 지경이 되버렸다. 이러한 현상은 향후 과점 시장의 모습을 띌 수 있음을 의미한다. 즉 몇몇 기업이 시장을 소유함으로써 기술과 자본을 좌지우지할 수 있다는 것이다.

그렇다고 해서 막연히 SOA 및 WS-* 대신 REST로 가자고 자신있게 주장할 수 있을까? 분명 REST는 개발생산성과 확장성 등에서 뛰어난 기술일 수는 있다. 또한 Flickr등에서 볼 수 있듯이 REST의 성공 가능성 역시 특정 부분에 한해서는 입증되고 있다. 하지만 REST가 WS-*의 대체물이 될 수는 없다고 본다. 그저 REST가 대체할 수 있는 것은 SOAP 자체일 뿐이다. 아무리 WS-*에 쓰레기같은 스펙들이 많다고 투덜투덜대지만 적지 않은 WS-* 안에는 많은 이들의 고민과 경험이 묻어있는 것들이 많으며 우리가 필요한 WS-* 스펙들만을 사용하면 되는 것이다. 그렇게 부담가지며 WS-*를 바라볼 필요는 없다고 생각한다. REST를 WS-* 혹은 SOA의 일부로서 받아들이고 있는 움직임의 예는 오픈소스 진영에서 확인할 수 있다. 적지 않은 ESB 오픈소스 프로젝트에서는 기본적으로 REST를 지원하고 있다.

결국은 어떠한 것이 더 경쟁력을 가지느냐에 따라 살아남는 문제일텐데, 해가 지나도 언제나 끊이지 않는 WS-*와 REST관련 포스트들은 너무나 소모적이다. 마치 리눅스가 좋은가 윈도우가 좋으냐 같은 것으로 토론하는 쓸모없는 게시판을 보는 것 같다.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://calmglow.egloos.com/tb/2417415 [도움말]

덧글

  • 샤도우 2006/06/09 12:09 # 답글

    제대로된 SOA 적용을 처음으로 하고 있는 사람입니다... 쉽지 않군요 Portal, ESB, BPM, 서비스 도출 등등...
  • Yozz 2006/06/10 02:12 # 답글

    정말인가요? 오옷. 기대됩니다!!! 자주 샤도우님 블로그를 구독하겠습니다. 좋은 블로거를 뵙게 되어 반갑습니다.
  • 샤도우 2006/06/10 10:38 # 답글

    들러주셔서 반갑습니다... 아마도 이렇게 본격적으로 하는 것은 전세계적으로 처음인거 같습니다... 부담도 많이 되구요...
  • 정지웅 2006/08/13 14:38 # 삭제 답글

    좋은 글 잘 읽고 갑니다. 아무것도 모르는 처지에, SOA에 대해 제대로 공부하고 싶은데, 이 블로그에서 깊이부터 확연히 다른 깨우침을 많이 얻어가네요. 앞으로도 자주 들리겠습니다.
  • Yozz 2006/08/14 15:19 # 답글

    정지웅님의 블로그야 말로 제가 깨우침을 많이 가져가는 곳입니다. 방문해주셔서 영광입니다.
  • openmind 2006/09/18 20:04 # 삭제 답글

    SOA를 솔루션의 구성으로 초점을 맞추는 것은 너무 벤더 입장만 강조한것입니다. ESB 를 사용하면 SOA가 아니라 WAS를 아니면 SOAP 만 사용했다하더라도 그것이 Service 의 가치를 기반으로 하고 있다면 SOA 겠지요.
    SOA는 새로운 솔루션의 구성이 아니조.
    SOA를 통해 누구 어떻게 얼마만큼의 새로운 가치를 얻는지..
    SOA!!! prove your worth.. 를 생각할때인것 같습니다.
덧글 입력 영역