1. 웹 환경의 변화와 새로운 기술의 요구
이제까지 자바스크립트는 웹브라우저쪽에서 폼처리등의 간단한입력처리등 을 하는데 주로 사용되어 왔고 이것은 현재도 대체적으로 사실 입니다. 한때 DHTML등이 인기를 끌면서 한때 자바스크립트가 부각된 적도 있었지만. 양대 부라우저의 호환성문제와 플래시등의 새로운 미디어의 등장으로 자바스크립트의 중요성은 상대적으로 적어졌습니다. 어짜피 웹프로그래밍에서 서버용프로그래밍을 배제할 수 없는 상황에서 양쪽 프로그래밍(서버쪽과, 브라우저쪽)을 병행하는 것이 피곤한 일이라는 것 도 또한 현실적인 이유가 되었을 것입니다.
하지만 한편으로 웹의 환경은 계속 변해서 이제 그 변화는 Web2.0이나 AJax, OpenApi, 메쉬업 등의 용어들이 어느새 익숙해 질 만큼 구체적이 되었습니다. 이러한 변화는 현실적으는 독점적 지위를 같는 포탈 업체들이 모든 서비스를 제공하던 형태의 서비스가 그 한계를 드러내고, 보다 개방적이과 참여를 유도하는 형태의 새로운 웹서비스 환경이 부각되어지면서 대세로 인식되어왔고 그것이 Web2.0의 이름으로 반영되고 나타나고 있습니다.
Web2.0란 용어가 서비스라는 관점, 또는 변화되는 새로운 웹환경을 이르는 좀 더 포괄적인 용어라면, 그 새로운 환경을 현실로 이루어내는 기술적인 용어들이 OpenApi니 Ajex니 하는것 입니다.
먼저 다음과같은 상황을 생각해 봅시다. A라는 관광정보를 제공하는 회사가 있고, 여행패키지상품을 가지고 있는 B여행사가 있고 C라는 항공사가 있다고 생각해 봅시다.
Web2.0이전의 접근 방식은 '여행관광포탈회사인 D가 A,B,C가 계약관계를 맺던 아니면 인수,합병을 하던 해서 인터넷 여행포탈 서비스를 만든다'쯤이 될 것입니다.
이것을 Web2.0식의 사고방식으로 접근한다면, A는 B,C,D와 별개로 자신의 정보를 서비스합니다.(RSS나 기타의 방법으로) A는 D외에도 다른사람에게 자신의 정보를 서비스 할 수 있습니다. B,와 C도 각자 자신의 서비스를 합니다. D는 A,B,C의 서비스를 이용해서 새로운형태의 서비스를 만들어 냅니다.
이와같이 Web2.0식의 개발이 이루어지기 위해서는 먼저 선행되어야 할 것이 오픈마인드와 서로 상생해서 공동의 파이를 키워간다는 인식이 만들어 지는것이 먼저일 것입니다. 혼자 모든것을 독점하겠다는식의 인식에서는 만들어지기 어려운 환경일 것입니다.
이것이 인식의 관점에서 필요조건이라면, 기술적인 관점에서는 여러 서버에서 분산되어있는 서비스와, 여러 종류의 브라우저와, 또 각각의 다른버전.., 더 들어가면 장애인등의 특수한 용도의 소수를위한 브라우저한경.... 이 복잡한 환경을 처리해야하는 기술들이 필요할 것 입니다.
이러한 문제는 기본적으로 표준지향적 데이타형 - XML,JSON
페이지 랜더링후 데이타 얻어오기 - HTTPRequest
얻어온 데이터의 현제문서에 반영 - DOM
현재 문서와 맞게 랜더링 - CSS, HTML
등의 해결이 수행 되어야 합니다.
이 모든것을 배우고 현실 프로그램에 적용하는것은 생각보다 간단한 문제는 아닙니다. 현실적으로 여러 브라우저 사이의 랜더링과, 자바스크립트의 차이는 3대부라우저인 MSIE,Mozilla,Opera 이 셋을 만족시키는 코딩을 하기위해서 반복적이고 지루한 디버깅과정을 요구합니다. 프로젝트가 커 질수록 문제는 더 심각해 집니다.
하지만 걱정을 덜 수 있게도, 이런 문제를 해결하기 위해서 이미 많은 자바스크립트 API관련 프로젝트의 성과들이 있습니다. 그 중 대표적인것 몇개만 나열 하자면.
Dojo, YUI, Prototype등이 있고, 또 앞으로 몇차례에 걸쳐서 소개할 JQuery 가 있습니다.