웹 2.x 시대의 서버측 웹 개발 환경 : Intro
웹 2.0 시대는 갔다?성질이 못되서인지 남들이 우르르 몰려드는 곳이나 주제에 대해 다르게 생각하는 것을 즐기는 편입니다. 저에게는 ‘웹 2.0’의 등장도 그랬습니다. 비교적 다른 이들보다 일찍부터 웹이 가져다줄 변화 가능성에 눈떴던 만큼 그런 웹의 가능성을 2.0이라는 이름으로 다시 치장하려는 사람들의 행위가 마음에 들지 않았을 것입니다. 그래서 저는 그동안 사람들에게 웹 2.0의 거품을 더 얘기했던 것 같습니다. 그랬던 웹 2.0이 화려한 등장을 뒤로 하고 조금씩 우리들의 관심에서 멀어지고 있는 것처럼 보입니다. 웹 2.0은 허깨비였던 것일까요?
지금은 웹 2.x 시대?하지만 웹 2.0의 회의론자였던 저는 지금 웹 2.0을 부정하기가 어려움을 인정합니다. 그동안 웹은 너무 많이 바뀌었잖아요? 닫혀있고 감춰졌던 웹의 자원들(Resources)은 열렸고 보다 쉽게 사용할 수 있게 되었습니다. 현실 세계가 웹처럼만 바르게 가면 얼마나 좋을까를 생각해볼만큼 웹은 바른 길로 가고 있습니다. 누가 강요하지 않아도 스스로 표준과 기본 철학을 따라서 점점 알아먹기 쉽고 모두에게 평등하며 악(惡)하지 않은 방향으로 진화해가고 있습니다. 국내 대부분의 웹포털은 그들의 서비스에 Open API를 제공하고 웹 표준을 지킴으로써 다양한 어플라이언스에서 사용이 가능하도록 배려하고 있습니다. 전통적인 기업들에서도 웹 2.0의 바람은 거세어져서 웹 2.0의 여러 기술들은 다양한 방식으로 채용되고 있습니다. 다양한 어플라이언스(클라이언트)를 배려하고 재사용이 가능하도록 API와 표준화된 인터페이스가 당연히 제공되는 분위기, 우리는 지금 웹 2.x 시대를 살고 있습니다.
서버측 웹 개발 환경은 그대로일까?그동안 웹 2.0기술은 순전히 클라이언트 기술로 충분히 해결이 가능하다고 여겨졌습니다. 흔히 웹 2.0의 대표 기술이라 불리던 AJAX가 그동안 서버측 웹 기술로 구현되던 것을 브라우저에서 구현한 것이기 때문에 서버측 웹 개발 환경이 크게 변할 것들은 많지 않았죠. 물론 XML 처리 구현이 조금 늘기는 했으되 부담을 느낄 정도로 변화가 많다고 보기는 힘들겠죠. 그러다보니 사실 그동안 몇년간 JSP나 서블릿, PHP 같이 서버측 웹 개발 기술에서 이슈가 될만한 기술이나 패러다임들은 그다지 나타나지 않았습니다. 하지만 그것은 웹 2.0 시대의 얘기인 것 같습니다. 우리는 지금 수없이 많이 공개된 웹 서비스들이 존재하는 웹 2.x 시대에 살고 있습니다. 무언가 변화가 오고 있습니다.
웹 기반 애플리케이션의 서비스 흐름에서 볼 때 전통적으로 서버는 웹 브라우저 및 클라이언트에 대해 그들이 실제 원하는 서비스에 대해 중재자 (Facade 혹은 Mediator) 역할을 수행하였습니다. 이러한 아키텍처에서는 서버의 힘이 매우 큽니다. 클라이언트와의 통신 방식과 클라이언트에게 전달할 서비스의 내용을 책임지며 모든 데이타가 오고가는 통로이기 때문에 컴퓨팅 파워와 안정성도 매우 중요할 수 밖에 없습니다. 즉, 서버 하나만 잘 키우면 되는 방식입니다.
반면에 웹 2.x 시대에는 권력의 일부가 웹브라우저 및 클라이언트로 이동합니다. 클라이언트는 원하는 서비스의 중재 역할의 일부를 담당하고 이러한 서비스들간의 조합을 통해 보다 사용자 중심적인 환경을 제공받습니다. 전통적인 방식에서는 클라이언트와 서버간의 통신 방식을 서버가 정하지만 웹 2.x 시대에는 다음과 같은 3가지 기술이 사용됩니다.
단순하고 쉽다고 막개발해선 안된다흔히들 서버측 웹 애플리케이션을 개발하고 운영하는 분들은 이러한 웹 2.0 기술을 대수롭지 않게 여깁니다. 그만큼 기술적인 난이도가 어려운 것도 아니고 오히려 서버측에서 했어야 했던 일을 클라이언트에 일부 위임하는 것이니 더더욱 주먹구구식 설계 및 개발, 운영이 되기 쉽습니다. 하지만 클라이언트의 접근과 서비스, 컨텐츠의 모양 및 보안, 거의 모든 것을 서버에서 알아서 담당했던 예전과 다르게 웹 2.x 시대의 서버는 보다 많은 자유를 클라이언트에게 제공하게 되면서 또 다른 체계적인 개발 방법과 환경을 고려하게 되었습니다. 본 ‘웹 2.x 시대의 서버측 웹 개발 환경 변화’ 시리즈에서는 이러한 내용을 몇 편에 걸쳐서 다루려 합니다…