제공: 한빛미디어 네트워크 기사
저자: 서우석
출처: 마이크로소프트의 IT 전략과 미래
ASP.NET은 관리자에게는 관리 및 운영의 용이성을 제공하고 개발자에게는 풍부한 사용자 인터페이스 컨트롤을 통한 사용자 인터페이스 확장성을 제공하고 있습니다. 또한 64비트 프로세스를 지원하므로 64비트 프로세스와 메모리를 적극적으로 활용할 수 있습니다. 마이크로소프트는 ASP.NET이 웹 개발의 표준이 되기를 바라고 있습니다. 또한 장기적으로 봤을 때에는 보다 많은 기업들이 닷넷을 개발 플랫폼으로 사용하는 것을 목표로 하고 있습니다.
ASP.NET은 웹 구현을 위해 자주 사용되는 기능들을 미리 패키지화해둔 것이며 이것은 곧 하나의 웹 기술을 의미합니다. 따라서 ASP.NET은 웹 개발자를 위한 것이라고 볼 수 있습니다. 이번 섹션에서는 웹 개발자에게 있어서 닷넷 프레임워크가 갖는 의미를 살펴보도록 하겠습니다.
닷넷이 XML 웹 서비스를 위한 운영 환경이라는 점은 이미 말씀을 드렸습니다. 오늘날과 같은 IT 환경에서 웹을 빼놓은 서비스는 상상도 할 수 없기 때문에 닷넷이 웹 개발자에게 어떠한 기능들을 제공하는지에 따라서 닷넷의 성공 여부가 결정될 수도 있습니다.
일단 닷넷 프레임워크 2.0은 절반의 성공을 거두었습니다. ASP.NET 2.0을 소개하는 개발자 관련 컨퍼런스에서 ASP.NET 2.0에서 지원하는 기능들을 보고 많은 개발자들이 혀를 내둘렀습니다. ASP.NET 2.0에 새로 추가된 기능들을 보고 있자면 마치 마술을 보는듯한 착각을 불러 일으킵니다. 데모를 보여주는 개발자가 몇 번의 버튼 클릭만으로(마치 버튼 클릭을 적게 하는 개발자가 승자가 되는 게임처럼) 회원 가입 기능을 지원하는, 제대로 된 모습의 사이트가 완성되는 순간에는 웹 사이트 개발이 원래 그렇게 쉬웠었나 하는 생각마저 듭니다.
물론 이 마법같은 기능만으로 사이트가 완성되지 않는다는 사실은 개인 웹사이트를 운영하고 있는 개발자라도 쉽게 알 수 있습니다. 하지만 그러한 기능들이 그동안 필요했었다는 사실도 부인할 수 없습니다. 도대체 어떤 기능이었길래 사람들이 그렇게 놀랐을까요? 지금부터 하나씩 살펴보도록 하겠습니다.
반복되는 작업을 줄임으로써 개발자의 생산성을 향상
개발자의 생산성은 반복되는 작업을 줄여주는 것만으로도 크게 향상됩니다. 예를 들면, 데이터베이스로부터 데이터를 가져올 때 데이터베이스 서버에 연결해서 쿼리를 실행시키고 테이블을 가져온 후 연결을 끊는 작업을 반복해야 합니다. 웹 개발은 데이터 처리와 다름없기 때문에 이러한 식의 코드가 소
스 코드 여기 저기에서 중복되어 사용되기 십상입니다. ASP.NET은 데이터를 표시하기 위한 테이블 컨트롤과 쿼리를 직접 연동시키는 방법으로 개발자의 생산성의 향상시키는데 도움을 주고 있습니다. ASP.NET은 웹 개발자들이 공통적으로 요구하는 기능들을 제공하기 위해서 다음 [그림 6]과 같이 세 개의 계층으로 개발자 스택(Developer Stack)을 나누었습니다. 실제로 개발자들이 다루게 되는 컨트롤들은 최상단에 있는“Control Buckets”이며, 각각의 기능들을 계층으로 나눔으로써 보다 유연한 시스템을 구현하고 있습니다.
[그림 6] 여러 계층으로 나뉜 ASP.NET 2.0의 구조
마스터 페이지를 통한 편리성 제공
아마도 여러분이 파워포인트를 잘 사용한다면 마스터 페이지에 대해서 잘 아실 것입니다. 마스터 페이지는 일종의 템플릿으로 제목의 위치와 내용의 위치, 그리고 폰트의 색상이나 크기 등을 미리 정해 놓는 파워포인트 파일입니다. 마스터 페이지를 사용하면 새로운 페이지를 추가할 때마다 동일한 작업을 반복할 필요가 없다는 장점 이외에도 발표 자료를 동일한 분위기로 유지할 수 있는 장점이 있습니다. 원한다면 언제든지 마스터 페이지를 변경하여 모든 페이지를 일관된 형태로 변경시킬 수 있습니다.
이러한 마스터 페이지의 개념을 ASP.NET 2.0에서 지원하고 있습니다. ASP.NET 2.0에서 지원하는 마스터 페이지를 활용하면 더 이상 코드를 반복해서 작성할 필요가 없습니다. 물론 ASP.NET 1.1에서도 컴포넌트를 재사용함으로써 이와 비슷한 개념을 지원했습니다. 기존의 개발 방법에서는 프레임(frame)8)이라는 구조를 이용하여 자주 변경되는 부분과 그렇지 않은 부분을 나누어 처리합니다. 프레임을 잘 사용한다고 하더라도 디자인적인 측면에서는 어려움이 따랐습니다.
구조가 잘 정리되어 있는 웹 페이지를 보면 현재 페이지에서 중요한 부분을 제외한 나머지 내용들은 계속해서 반복되는 경향이 있습니다. 그렇게 함으로써 사용자에게 일관된 인상을 제공할 수 있기 때문입니다. 이는 웹 페이지를 기능적인 측면으로 나누어 재사용성을 높이기 위한 방법이기도 합니다. 마스터 페이지는 일종의 템플릿과 같습니다. 마스터 페이지를 만들어 놓고 변경하고자 하는 부분만 업데이트하면 마스터 페이지를 사용하고 있는 모든 페이지에 변경된 내용이 적용됩니다.
단순화된 회원 관리
마이크로소프트는 전통적으로 다음 버전을 출시할 때 이전 버전에서 지원하지 않았지만 사용자들이 직접 또는 다른 회사(third-party)에서 만든 컴포넌트를 많이 사용할 경우 다음 버전에서 이를 반영하여 해당 기능을 지원하는 방식으로 기능을 확장해 왔습니다. 그러한 예를 ASP.NET 2.0에서도 확인할 수 있습니다.
웹 개발 시에 가장 까다로운 기능 중 하나가 회원 관리입니다. 웹 사이트 치고 회원 관리 안 하는 웹 사이트는 찾아보기 어렵죠. 회원 관리는 사이트의 커스터마이징 뿐만 아니라 보안과도 깊은 연관 관계가 있습니다. 그래서 구현하기도 어려울 뿐만 아니라 고려해야 하는 사항들도 많기 때문에 많은 노하우가 요구되는 작업입니다.
간단한 예를 하나 들어보기로 하겠습니다. 여러분이 어떤 사이트를 방문해서 회원 가입을 하려고 합니다. 회원 가입 버튼을 누르면 사이트에서 요구하는 정보를 입력하고 확인 버튼을 눌러 가입을 완료할 수 있습니다. 사용자 입장에서는 지극히 간단해 보이는 이 작업도 개발자 입장에서는 고려해야 할 사항들이 꽤 많습니다. 우선 가입하고자 하는 회원이 기존에 가입이 되어 있는 지도 알아야 하고 가입 조건을 만족하는지도 확인해야 합니다. 또 회원 등급에 따라 회원이 볼 수 있는 페이지 등에 제약을 걸어두고 싶다면 회원 등급에 대한 정책도 고려해야 합니다. ASP.NET 2.0은 회원 관리를 위한 컨트롤을 새롭게 제공하고 있어서 회원 관리에 대한 노하우가 없어도 컨트롤을 추가하여 쉽게 구현할 수 있습니다.
실행 코드와 디자인 코드의 분리
그 밖에도 사이트를 운영하기 위해서 필요한 환경 설정 관리를 돕는다든지 언어의 특성을 활용하여 실행 코드와 디자인 코드를 완벽하게 분리하여 개발자와 디자이너의 협업을 돕는 기능(Partial Class)9)들은 ASP.NET 2.0이 제공하는 매우 큰 장점입니다. 더 이상 디자이너와 다툴 일도 없겠군요. 그 동안 새로운 버전이 나올 때마다 기존의 코드를 새로운 버전으로 업데이트하는 작업이 개발자들에게는 큰 부담이 되었습니다. 하지만 마이크로소프트 측에 의하면 최소한의 변경만으로 기존의 코드를 재사용할 수 있다고 하니 ASP.NET 2.0 출시는 웹 개발자들에게 좋은 소식이 아닐까 싶습니다.
인터넷의 활성화로 인해서 클라이언트에 배포되던 많은 기능들이 점차적으로 웹으로 이동하고 있습니다. 그에 따라 웹 개발의 중요성은 더욱더 높아지고 있으며 오랜 기간 동안 발전해왔던 클라이언트 개발 환경만큼이나 웹 개발 환경도 점차 완성미를 보여주고 있습니다.
ASP.NET은 관리자에게는 관리 및 운영의 용이성을 제공하고 개발자에게는 풍부한 사용자 인터페이스 컨트롤을 통한 사용자 인터페이스 확장성을 제공하고 있습니다. 또한 64비트 프로세스를 지원하므로 64비트 프로세스와 메모리를 적극적으로 활용할 수 있습니다. 마이크로소프트는 ASP.NET이 웹 개발의 표준이 되기를 바라고 있습니다. 또한 장기적으로 봤을 때에는 보다 많은 기업들이 닷넷을 개발 플랫폼으로 사용하는 것을 목표로 하고 있습니다.
[지난 기사 보기]
■
새로운 개발 환경, 닷넷 프레임워크
■
응용 프로그램 개발자를 위한 닷넷 프레임워크