웹 개발은 비베 스크립트를 쥐는 자가 평정합니다. - 조준철
몇 년전부터 MS에서 발표하는 제품이나 기술을 보면 갑작스런 많은 변화를 보이고 있다는걸 알 수 있습니다. 공식적인 표준이 발표되고, 시장성이 있다고 판단되면 언제나 OS를 가지고 있는 우위를 이용해 그것을 독자적으로 커스텀해서 자사 전용 표준을 새로 만든 다
음 시장을 선점해오던 옛 방식을 벗어나(아주 맘에드는 방법이었죠) 향후 공개적인 웹과 인터넷으로 개발되어지는 웹 어플리케이션이 대세이면서, OS를 가지고 있다는 우위가 별 소용이 없는 분야인것을 깨닫았는지, 추후 웹에 관련된 기술만큼은 W3C 표준 방식을 적
극 지원하고, 조금은 속보이지만 C#언어를 공식 표준으로 W3C에 제안하는 등, 계속적으로 변화하는 새로운 트랜드에 맞춰서 개발자들이 따라가기 조차 힘들정도로 작업 환경(Tool, Framework)이나 기술의 변화에 능동적으로 대처해가고 있는건 참 바람직 하게 보입니다.
그에 따라 MS제품들이 똑같은 업무나 다양한 목표를 지향 할지라도 .NET을 중심으로한 각 클라이언트/서버 제품군들을 이용함으로써 각각의 다양한 기술로도 고객이 원하는 기능을 만들 수 있도록 개발되는것을 볼 수가 있고, 어찌보면 MS사에 마지막 사활이 걸린듯이 유례없는 .NET에 대한 전폭적인 지원으로 .NET 전략에 대한 인식이 점점 개발자에서 일반인들에게 대중적으로 널리 알려지게 되었으며, 그에 비례해 많은 자료들도 같이 쏟아져 나오고 있습니다.
변화하는 신기술들의 꾸준한 버전업이 이루어지는 상황에서 적응하기도 정신없는 이 땅의 젊은 웹 개발자들에게 비베 스크립트를 다시 논 한다는건 의미없다고 생각할 수도 있겠지만! 3가지 의미에서 다시 논 할 필요가 있습니다.
첫째로 웹 개발에서 가장 중요한 요소를 꼽으라면 그중에서 단연 웹 브라우저상에서 실행되는 비베 스크립트라고 할 수 있고, 지난 3년간 경쟁 브라우저의 부재로 익스플로어 6.0대로 업그레이드 한번 없다가 차후 롱혼에 내장되어 출시 되어질 익스플로어 7.0에서 기술이 어떻게 변화할지 모르지만 (그러한 소문이 무성하죠), 아직까지 MS 익스플로어 웹 브라우저상에서 데이터와 HTML을 효과적으로 제어하기위한 기술의 중심은 스크립트, 그것도 비베 스크립트 와 XML이기 때문에 MS 제품군을 이용한 웹 어플리케이션을 개발 한
다면 그에 대한 기초적인 이론부터 공부를 해야 합니다.
둘째는 실제로 국내에서는 ASP.NET으로 개발된 사이트로 ASP나 JSP만큼 구축 된 곳이 아직 많지 않습니다. 금융권이나 포탈사이트 그리고 많은 SI 업체와 웹 에이전시에서 계속 연구하며 적용하는 사례가 많다고는 하지만, 개인적으로는 대부분 겉만 닷넷이지 안은
레거시와 같은 포장만 그럴싸한 제품이 대부분이었다고 생각됩니다.
이렇게 ASP나 그외 언어로 시장에 수용되었던 기간에 비한다면 상당히 더딘 점이 있는 건 분명하고, 그만큼 .NET 이라는 기술이 MS가 쉽게 예기하는 것처럼 쉽지만은 않다는 반증을 보여준다고 생각되는 부분이죠.
마지막으로 셋째는 이미 존재하는 다른 기술들을 가지고도(MS기술도 포함), 아직까지는 고객의 요구사항이나 제시되는 트랜드를 충분히 구현 할 수 있기 때문에, 가뜩이나 요즘 경기침체로 인해 한푼이 아쉬운 대부분 IT 중소업체들이 굳이 비싼 돈을 치뤄가며, 보장
할 수 없는 미래에 모험을 하고 싶지 않는 것인지도 모릅니다.
(예를 들면 오피스 2003의기능을 완벽하게 활용하려면 클라이언트에서 서버까지 제품군 전체를 새로운 버전으로 바꿔 버려야 합니다)
그래서 국내 회사에서 근무하는 대부분의 MS 계열 개발자들이 .NET을 마이그레이션하기에는 회사입장에서 이러한 기술에 대한 관심이 우선순위로 되지 않으면 현실적으로나 문화적으로 연구개발을 할수 있는 분위기가 정착되기 어렵다는 판단하에 있다는 생각입니
다. 하지만 몇몇 고급개발자분 들은 말합니다.
"그러한 기업입장은 충분히 맞는 것이며, 당연한 논리라고 생각한다. 하지만 그것을 이유로 새로운 기술 습득을 미룬다면그건 개인적인 변명밖에 되지 않는다. 회사가 개인의 인생을 책임질거라 생각하는가?" - 몇몇 고급개발자분
냉정하지만 당연하기에 수많은 개발자들은 끊임없이 연구에 연구를 거듭해서 시대의 흐름에 따라가려고 노력하고 조금만 시간이 지난 기술들은 쉽게 기억에서 잊혀지는 분위기가 자연스럽게 형성되버리고 말았는데, 아마도 그중의 하나인 기술이 비베 스크립트가 아닐
까 합니다, 비베 스크립트로 할 수 있는게 워낙 한정적이라고 말하지만, 실제로는 비베 스크립트를 마음대로 다룰줄만 알면 웹 개발분야뿐만이 아니라 OS관련 어플리케이션까지 전천후로 개발할 수 있기 때문에 웹 분야 만큼은 파워 풀한 기능이 많습니다.
개인적으로 정확하게 표현하면 비베 스크립트를 쥐는 자가 웹을 평정한다라고 할 수 있죠.
하지만 비베 스크립트는 간단하며, 사용하기 쉽고, 제약이 많다는 것(웹이라는 기본적인 제약과 J스크립트보다도 언어상의 제약도 많습니다)을 부정할 수는 없기 때문에 고급 개발자들은 웹 개발시 비베 스크립트 보다도 J스크립트를 많이 선호하게 되었고, 실제 MS 웹
사이트에서도 비베 스크립트는 주로 업무용을 포커스를 맞추어 개발하기 쉬운언어이며, J스크립트는 자바 문법을 기초로 동적이며, 화려한 기능을 개발하기에 적합한 언어라고 컨셉과 언어상에 대한 이점에 대해 잘 설명하고 있습니다.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnclinic/html/vbsvjs.asp
얼핏 보면 비베 스크립트는 자바 스크립트에 비해 표현하는 능력이나 성능에서도 뒤 떨어지지만 그럼에도 불구하고 굳이 비베 스크립트를 익혀야 하는 분명한 이유가 있습니다.
1> J스크립트는 웹에 최적화 되었으며, 유지보수가 힘들다.
MSDN에서도 나와 있듯이 동적인 웹 사이트 개발하는 데 유리하다고 나와 있습니다. 스크립트는 웹 브라우저상뿐만 아니라 OS기반이에서도 충분히 역할을 수행할 수 있는 기술이지요. 웹 브라우저를 떠나 OS기반 스크립트 개발시 J스크립트는 업무용으로 개발된 비베
스크립트 보다 효율성이 많이 떨어지며, 유지보수성도 떨어지고, 그 만큼 소스코드를 분석하기가 매우 어렵다는걸 알 수있습니다.
그것은 웹이라해서 크게 다르지 않은데 이를테면 마이크로소프트의 MSDN TOC 메뉴(http://msdn.microsoft.com/library/default.asp)도 J스크립트로 개발되었으며 이 소스를 분석해보면 감탄할 만큼 어렵습니다. 그렇다고 비베 스크립트로 이 TOC를 만드는 것이 불가능한것도 아닙니다.
2> 비베 스크립트는 누구나 쉽게 접근 할 수 있다.
비베 스크립트는 실제 스펙상에도 몇십페이지 정도 분량밖에 되지 않을정도로 간단한 문법과 기능을 가지고 있습니다. 그만큼 쉽기 때문에 로직을 이해하기도 편하며, 언어와 기능상의 제약을 넘어서기 위해 대안으로 각종 COM Interop을 손쉽게 할 수 있습니다.
3> 비베 스크립트는 하나를 알면 열은 안다.
비베 스크립트는 특성상 비베에 기반을 두고 있는 모든 기술을 사용할 때도 쉽분 활용 할 수 있습니다.(VBScript, ASP, VB, T-SQL, VB.NET)
4> 다양한 기반에 사용되는 스크립트라도 그대로 적용가능하다.
일반적으로 개발자가 만드는 모든 스크립트는 WSH (Window Script Host)라는 하나의 실행 엔진을 사용하고 있습니다.
즉 웹 브라우저 상에서 실행되거나 IIS 상에서 구동되거나, OS 상에서 구동되는 모든 스크립트는 하나의 실행엔진을 사용하기 때문에 문법상에서는 100% 호환이 가능합니다.
스크립트만으로 로컬컴퓨터는 물론 원격지에 있는 컴퓨터의 자원에도 네트웍으로 Admin권한으로 접근할 수 있으며, 그만큼 다양한 분야에 활용할 수도 있기때문에 이렇듯 스크립트는 웹만을 위한 언어가 아니라고 할 수있습니다.
스크립트를 개발 해오다 알게 된 간단한 사실이 스크립트의 목적에 따라 작업 환경이 변하며 작업 환경에 따라 제공되는 개발 인터페이스도 가지각색이라는 것이었습니다. 너무 당연한 거지만 처음엔 몰랐던 부분인데, 다른 언어도 마찬가지라서 이 개발 인터페이스에 대한 이해가 무조건 선수 되지 않으면 업무 로직 개발에 그만큼 시야가 좁아질수 밖에 없고, 이해된다고 해도 계속 사용하면서 터득하는 경험치에 대한 건 또 다른 것이기에 그만큼 내가 작업하는 기술에 대한 기초가 중요하다는 것입니다.
예를들어 간단하게 그러한 개발 인터페이스를 짚어보면 다음과 같습니다.
1> 웹 브라우저
기본 제공 객체
window, document, navigator, location...
HTML 핸들링 제어하기 위한 스펙
DHTML, DOM
XML 제어와 클라이언트서버간의 통신하기 위한 객체
MSXML, XMLHTTP
데이터베이스관련 객체
ADO
웹 전용 기술
HTC(HTML Templete Component), HTA(HTML Templete Application), WSC(Window Script Component)
2> IIS
기본 제공 객체
Request, Response, Server, Session, Application...
XML 제어와 클라이언트서버간의 통신하기 위한 객체
MSXML, XMLHTTP
데이터베이스관련 객체
ADO
파일관련 객체
FSO
COM+
IIS서버상에서 실행권한을 같는 모든 COM+
3> OS
XML 제어와 클라이언트서버간의 통신하기 위한 객체
MSXML, XMLHTTP
데이터베이스관련 객체
ADO
파일관련 객체
FSO
COM+
컴퓨터상에서 실행권한을 같는 모든 COM+
이렇듯 비베 스크립트가 어디에서 실행되느냐에 따라 작업 환경이나 권한도 틀려집니다. 예를 들면 웹 브라우저상(explorer.exe)에서 실행되는 스크립트는 시스템 자원 접근에 엄격한 보안상 제약을 가집니다. 하지만 똑같은 스크립트를 포함하는 HTM 파일을 확장자만 HTA로 변경한다음 실행하면 OS상(mshta.exe)에서 웹 페이지를 실행하게 되며, 이렇게 실행된 웹 페이지내에 있는 스크립트는 비주얼 베이직으로 작성된 어플리케이션 수준의 시스템 자원 접근을 허용하게 됩니다.
또한 HTA로 만들어진 어플리케이션은 일반 웹 페이지와 상호연동도 가능합니다.
필자의 경우 생산관리 어플리케이션에서 제품 입,출고에 바코드 리더 연동 어플리케이션을 HTA로 만듬으로서 기존의 개발 프레임웍과 코드 재사용성, 유지보수에 많은 이익을 봤습니다. 만일 이것을 위해 비주얼베이직으로 재작성을 했더라면 많은 웹용으로 작성되어진 공통 라이브러리를 비주얼베이직용으로 재개발하거나 일부 기능을 포기해야하는 상황이 되었을 수도 있었기 때문입니다.
지금까지 읽어주셔서 감사드리며, 자주는 못올리겠지만 다음 게시물부터는 실질적인 내용을 가지고 찾아 뵙겠습니다.
- Power of VBScript (0)2007/01/05
- Power of VBScript ( Document Object Model Vol II ) (0)2007/01/05
- Power of VBScript ( Document Object Model Vol I ) (0)2007/01/05
- Style Sheet (0)2005/07/06

수안이의 컴퓨터 연구실





Leave your greetings.