Programming/Dot.NET

IE에서 닷넷 스마트 클라이언트 개발1-스마트 클라이언트 탐험하기1

bcheul 2008. 2. 25. 13:48
스마트 클라이언트 탐험하기-1
  저 자 : 정성태
  출판일 : 2004년 2월호

  연+재+순+서
1회 2004.1 | 스마트 클라이언트 탐험하기
2회 | 인터넷 익스플로러와 연동하기
3회 | 스마트 클라이언트 배포하기

연+재+가+이+드
운영체제 | IIS가 설치된 윈도우(필자의 경우 윈도우 2003 서버)
개발도구 | 비주얼 스튜디오 닷넷 2003, 닷넷 프레임워크 v1.1.4322
기초지식 | COM, C#, ASP.NET 기초
응용분야 | 현재로서는 기업 내부의 인트라넷 환경에서 액티브X 컨트롤 대체. 닷넷 프레임워크가 일반화되면 외부 웹 사이트에서 액티브X 컨트롤 대체.
=================================================================================

요즘 들어 ‘스마트 클라이언트’라는 용어를 심심치 않게 들어 봤을 것이다. 모바일 분야에 종사하는 사람들은 하나의 ‘기기’라고 알고 있을 텐데, 이번 연재에서는 마이크로소프트가 선보인 ‘닷넷 프레임워크’의 부분으로 나온 ‘스마트 클라이언트’ 소프트웨어 개발을 다룬다. 기존 액티브X 컨트롤을 대체하는 스마트 클라이언트를 구현해 보는 것이다.


닷넷 프레임워크가 나오면서 어렵다던 NT 서비스조차도 구현이 간단해졌다. 웹 프로그램도 마찬가지다. 예전 ASP에서는 ‘Microsoft Scripting Runtime 개체 라이브러리’에서 제공되는 이외의 기능을 사용하려면 VC++/VB를 이용해 COM 개체를 만들어야 했지만, 이제는 ASP.NET에서 닷넷 프레임워크의 BCL(Base Class Library)을 이용할 수 있어서 COM 개체를 제작할 필요성이 없어졌다.
이번 연재에서 다룰 ‘스마트 클라이언트’는 기존의 ‘액티브X 컨트롤’을 교체할 수 있는 기술이다. 물론, 액티브X 컨트롤 제작보다 훨씬 쉬워졌음은 말할 것도 없다. 그동안 수많은 액티브X를 제작해 오던 필자 개인적으로도 이번 스마트 클라이언트는 환영할 만한 기술이 아닌가 생각된다.
예제 중심으로 설명할 것이므로 관심있는 독자들은 단계별로 하나씩 따라 해보길 권한다. 참고로 IIS는 5.0과 6.0이 많은 차이가 있고, 닷넷 프레임워크 역시 1.0과 1.1에는 많은 차이가 있다. 이 글은 IIS 6.0과 닷넷 프레임워크 1.1을 기준으로 함을 미리 밝혀둔다.

액티브X보다 쉬운 컨트롤
현업에 있는 사람들 중에는 순수하게 웹 사이트의 출력을 DHTML로만 하는 것이 너무도 힘겹다는 것을 토로한다. 대부분의 경우에 있어 고객의 요구는 DHTML의 제약을 생각하지 않는다. 무조건 필요한 기능을 요구하고, 그러한 기능을 스크립트로 구현하니 속도 저하 및 코드의 유지보수에 어려움이 오는 것은 당연하다. 특히 루프가 많은 경우, 스크립트의 속도 저하는 심각하며 운영체제와 독립된 스크립트의 한계로 인해 구현이 불가능한 부분까지도 나올 수밖에 없다. 그런 상황에서 해결책으로 제시된 것은 액티브X 컨트롤이었다. 인터넷 익스플로러(이하 IE)를 기반으로 하는 그룹웨어를 보면 액티브X로 도배한 사이트가 많다. 요구사항대로 하려니 답은 액티브X 뿐이었고, 그로 인해 개발 생산성이 현저하게 떨어지는 결과가 만들어진 것이다.


<표1> 스마트 클라이언트의 특성



이젠 액티브X를 떠나야 할 시기가 된 것 같다. VC++에서 벗어나 비주얼 베이직 수준의 편리함을 제공해 주는 스마트 클라이언트가 우리 곁에서 기다리고 있다. 스마트 클라이언트의 실현 가능성에 있어 장애물이라면 아직 ‘닷넷 프레임워크’가 널리 퍼지지 않았다는 사실이다. 일단 그 부분은 시간이 해결해 줄 것이고, 가능한 범위를 찾아보면 인트라넷을 예로 들 수 있겠다. 정책적으로 닷넷 프레임워크를 설치할 수 있는 상황이라면 액티브X보다 개발 생산성을 현저하게 높여줄 ‘스마트 클라이언트’를 적용하는 것이 현명한 선택이 된다. <표 1>은 필자가 생각해 본 비교 도표이다.
그것을 감안하더라도 모든 면에서 우수한 것을 한눈에 알 수 있다. 스마트 클라이언트는 제작 언어를 자유롭게 선택할 수 있으며, CAS(Code Access Security)에 기반한 보안으로 인해 사용자 입장에서도 안전하게 사용할 수가 있다. 액티브X의 경우 CAB 파일 등을 만들어야 했지만 스마트 클라이언트는 단순히 DLL 또는 EXE 파일을 웹에 올려놓기만 하면 된다. 액티브X와 마찬가지로 웹 서버가 어떤 것이냐는 중요하지 않다. 결국 스마트 클라이언트 코드의 실행은 클라이언트에서 이뤄지기 때문이다. 심지어 사용자 컴퓨터의 보안 설정을 바꿀 필요가 없는 범위 내에서의 기능 구현이라면 코드 인증조차 필요없이 바로 배포가 가능하다. 그렇다고 해서 앞으로의 설명들이 줄곧 쉬울 거라고 생각해서는 안 된다. 기존 구현된 액티브X 중에서 복잡한 것까지도 모두 대체할 만한 스마트 클라이언트를 원한다면 다소 어려운 이야기까지 흘러갈 테니 말이다.