저자: 『IT EXPERT 웹 서비스 실전 프로그래밍』의 저자 이한수
21세기를 시작하는 원년인 2001년부터 붉어져 나온 IT 업계(특히, 엔터프라이즈 컴퓨팅)의 가장 큰 이슈는 아마도 개방성을 지향하는 오픈 소스와 업체간의 이합집단을 타파하고 좀더 건설적인 하나의 비전을 제시 하고자하는 표준화의 거대한 움직임이 아닐까 한다.
개방성과 표준화라는 공동의 목표를 찾지 못했던 시기에 EJB/CORBA 및 DCOM 등의 분산 컴포넌트 기술로만 분산 컴퓨팅을 생각하고 해결하려고 한 개발자는 다만 필자뿐이 아닐 것이다. 많은 개발자들은 소프트웨어 벤더에서 제시하는 제각기 다른 방식의 분산 컴퓨팅 개발 모델을 사용하여 서로 다른 방향의 길로 가야만 했던 것이다.
하지만 이제 개방성과 표준화라는 덕목을 고루 갖춘 웹 서비스의 등장으로 우리는 분산 컴퓨팅의 새로운 국면으로 접어들고 있다. 현존하는 대부분의 개발 언어와 플랫폼이 존재하다고 생각해도 될 인터넷 포털 업체인 라이코스코리아㈜에 근무했던 필자는 지금도 "웹 서비스"라는 기술을 처음 접하였던 때를 생생히 기억하고 있다. 그 당시 필자가 접하는 대부분의 프로젝트에서 가장 먼저 고민하고 많은 시간을 투자해야 했던 부분이 바로 플랫폼 및 개발 언어의 선정이다. 기획 혹은 사업 부서에서의 요구 사항은 분명 하고도 명확했다. 서로 다른 언어로 개발되고 서로 다른 플랫폼에 존재하는 서비스들을 고객들로 하여금 마치 하나의 서비스로 보일 수 있도록 연동을 하게 해달라는 것이었다. 모든 플랫폼에서 작동 할 수 있는 자바로 개발하자니 자바를 다루지 못하는 개발자가 반대하고… MS 계열의 개발도구를 사용하자니 유닉스 플랫폼에서 사용할 수 없고… 한마디로 진퇴양난의 상황이 자주 벌어지곤 했다.
그때 궁여지책으로 생각해낸 방법이 각 서비스 내부에서는 독립적인 방법으로 로직을 수행하고 서비스 간의 연동시에는 HTTP를 통해 GET 혹은 POST 방식을 사용하여 데이터를 주고 받는 것이었다. 이 방법으로 서비스 연동이 가능하긴 했지만 GET/POST 방식으로 데이터를 전달 하기에는 자료형의 제약이 너무 컸고(문자형 데이터만을 보낼 수 있기 때문에) 복잡한 데이터 구조를 가지는 객체를 전달 할 수 없는 등등… 부수적인 문제점이 많이 발생 했다. 그리고 결정적으로 연동 하고자 하는 서비스가 제 3의 회사인 경우, 주고 받는 데이터에 대한 정의 및 사용 방법을 매번 다시 정의해야 했고 항상 동일한 방법을 사용 할 수 도 없었다. 결국 이러한 방식의 개발은 전체 시스템을 매우 복잡하고 불안정하게 가져갈 수 밖에 없는 잠재적인 요인이 될 수 있는 것이었다.
웹 서비스 기술은 바로 이러한 상황에서 고민하던 필자에게 아주 좋은 해결안을 제시해 주었다. 데이터 표현의 표준인 XML 을 사용하고 웹 전송의 표준인 HTTP를 사용 하므로 어떤 플랫폼에서 어떤 개발 언어를 사용 하든 간에 상관없이 데이터의 정의 및 전송에 대한 고민을 하지 않아도 되기 때문이었다. 그리고 이러한 필자의 생각과 뜻을 함께해준 기술 이사님 덕분에 웹 서비스 기술을 실제 상용 프로젝트에 적용해본 결과 기대 이상의 좋은 반응을 얻을 수 있었다. 이제 더 이상 개발 부서간에 서로가 선호하는 개발 언어나 플랫폼을 주장할 필요가 없어졌고 매번 주고 받는 데이터의 정의에 대해 논의할 필요도 없어졌다.
하지만 필자가 느끼는 웹 서비스의 중요성이나 장점을 모든 사내 개발자가 공유할 수 있었던 것은 아니다. 이는 웹 서비스를 처음 접하게 되는 많은 국내 개발자들도 마찬가지 일 것이다. 향후 3~4 년 후에 우리의 컴퓨팅 환경에 가장 큰 영향을 줄 기술로 많은 전문가들과 개발자들은 웹 서비스를 꼽고 있다. 그만큼 웹 서비스는 우리가 접하고 있는 많은 부분에 적용될 수 있고 또 우리가 통상 생각해 오던 프로세스를 변하게 할 수 있는 아주 중요한 기술인 것이다.
하지만 우리는 이 웹 서비스에 대해 얼마나 알고 있는가? 그렇게 중요하다고 하는 이 웹 서비스를 도대체 어디에 적용하여야 하는 것일까?
흔히 웹 서비스에 대해 안다고 하는 것은 SOAP, WSDL, UDDI 등 웹 서비스를 구성하는 기본적인 표준안들에 대해 지식을 습득하는 것을 말한다. 하지만 웹 서비스는 이론적으로만 접근하여 알아가는 학문적인 주제가 아니다. 웹 서비스에 대해 단순히 이론적으로만 접근하여 지식을 얻는 것으로 만족 하기에는 웹 서비스 기술이 너무나 가까이 다가와 있는 것이다. 이미 많은 J2EE 및 .Net 솔루션 업체들이 웹 서비스를 위한 제품들을 내놓고 있고 웹 서비스를 실제 프로젝트에 적용한 예를 종종 찾아볼 수 있다.
이제는 웹 서비스 기술에 대해 좀더 실전적인 접근이 필요하다.
웹 서비스의 기본 혹은 이론에 대해 아는 것도 중요하지만 우리가 접하고 있는 현실의 문제들을 해결할 수 있는 방법의 하나로 웹 서비스를 적극 고려해 보아야 할 때인 것이다. 웹 서비스가 우리가 직면하고 있는 많은 문제들에 대한 답을 제시할 수 있으나 역시 항상 최고의 대안이 되는 것은 아니다. 따라서 적극적인 웹 서비스 기술에 대한 고려와 경험만이 이 좋은 기술을 올바르게 적용하기 위한 방법론을 제시해 줄 것이다. 필자는 여러분이 웹 서비스가 새로운 기술이라고 하여 두려워하지 말고 가능한 많이 경험해 보길 바란다. 이러한 실전적인 경험은 글로 쓰여져 있는 그 어떤 웹 서비스의 정의와 적용 방법론보다 값진 여러분만의 지식을 가져다 줄 것이라 확신한다.
필자가 집필한 『IT Expert 웹서비스 실전 프로그래밍』은 여러분에게 이러한 실전적인 경험을 다양하게 접할 수 있는 기회를 제공하고 있다. 인터넷 포탈 업체의 기술 연구소에 근무하면서 수행하였던 여러 실제 프로젝트를 담아 웹 서비스에 대해 이론적으로만 접해 본 혹은 웹 서비스에 처음인 개발자들에게 도대체 웹 서비스라는 기술을 언제 어떻게 적용해야 하는지에 대한 보다 실전적인 예를 보여 주려 노력하였다.
적어도 이 책을 접한 독자 여러분들은 웹 서비스라는 기술에 대한 올바르게 이해나 현재 운영되고 있는 시스템에 "웹 서비스를 어디에 적용하면 좋을까?" 라는 접근 방식 보다는 "현재 시스템이 가지는 문제점은 웹 서비스를 적용 함으로써 많은 부분 해결 될 수 있다" 혹은 "이 프로젝트에는 웹 서비스 기술이 정답이야"와 같은 접근 방식에 대한 지식을 가지게 될 것이라 확신한다. 웹 서비스의 당위성에 대해 확신을 가지게 될 것이라는 말이다.
다시 한번 강조하지만 웹 서비스라는 기술은 한 권의 책을 끝까지 숙독하고 덮어 두는 방법으로는 자기 것이 될 수 없다. 책에서 습득한 지식을 바탕으로 다양한 상황을 집적 접해보고 적용해 보아야만 비로서 완성된 자기만의 기술로 얻어질 수 있는 것이다.
독자 여러분… 이제 더 이상 웹 서비스를 읽어서 이해 하려 하지 말고, 직접 웹 서비스를 경험해보기 바란다.
2002년 12월 10일 저자 이한수