위의 그림은 간단하게나마 ASP와 ASP.NET을 비교한 것이다. 왼편이 ASP이고, 오른편이 ASP.NET 이다.

 

ASP.NET을 공부하고자 하는 여러분들이 선수 지식으로 또한 기억해 두어야 할만한 것으로는 무엇이 있을까? 그것은 바로 Form 의 동작방식이다. 아주 간단한 사실이지만, 아주 중요한 사실이다.

 

ASP의 폼은 사용자로부터 어떠한 정보를 입력받기 위해 컨트롤들을 배치해 놓는 무형의 공간이다. 폼 구역 (<form> </form>) 내부로 여러가지 서버 컨트롤들을 추가할 수 있고(직접 손으로 코딩해야만 하지만), 그렇게 폼 내부에 존재하는 컨트롤들만이 폼을 서브밋할 경우에, 지정된 서버의 페이지로 전송되어진다. 다음 그림처럼 말이다.

 

이 말은 다시 말해, 사용자와 대화하는 폼(Form)이 따로 존재하고, 폼에 입력된 데이터를 받아서 처리하는 ASP 페이지가 따로 존재한다는 이야기이다. 물론, 하나의 페이지에서 처리할 수도 있다. 즉, 위의 경우 Form.htm 페이지를 대신하여 Form.asp 페이지를 만든 다음, 사용자가 폼에 입력한 값들을 자기 자신 페이지로 되돌려 그 처리 역시 Form.asp 에서 처리하게 할 수 있다. 가능은 하지만, 그렇게 프로그래밍하는 사람은 그다지 많지 않다. 반드시 그래야만 하는 아주 특별한 경우가 아니라면 말이다. 왜냐하면 그렇게 하나의 페이지로 몰아서 코딩하는 것은 프로그래밍을 매우 어렵게 만들기 때문이고, 디버그하기도 어렵게 만들고 , 유지 보수하기도 매우 힘들게 하기 때문이다.

 

그렇다면, ASP.NET에서는 어떻게 이러한 폼의 동작 방식이 변화하였을까? 대단하게 바뀌었을 것 같지만 사실 그렇지도 않다. 다음 그림과 같이 너무나도 간단하게 바뀌었다.

포스트백!!  무척이나 앞으로 자주 만나게 될 단어이다. 굳이 번역하자면 "자기 자신으로의 전송" 이 되겠다.

 

ASP.NET 에서는 폼 페이지도 자신이고, 그것을 처리하는 페이지도 자신이라는 이야기이다. 

ASP.NET이 포스트백을 선택한 것 뒤에는 "이벤트 기반 프로그래밍으로의 전환"이라는 것이 존재한다. 

존 ASP 페이지처럼 절차, 순차적인 프로그래밍 방식이 아닌 이벤트 중심적인 방식으로의 변환이 포스트백이라는 방식을 용이하게 하고 있는 것이다. 

 

 

ASP 에서는 이벤트 기반 프로그래밍이라는 것은 전혀 불가능에 가까운 방식이었다. 오로지 페이지는 순차적으로 진행되며, 서버측의 이벤트라는 것도 대단히 생소하게 느껴질 정도로 지원되지 않았다.

이제는 그러한 모든 관련 기반 기술을 ASP.NET 이 제공하고 있다. ASP.NET 이 이벤트 중심적인 프로그래밍을 가능하게 하기에, 우리는 단지 필요한 작업에 대해서 필요한 코드를 작성하기만 하면 된다. 모든 처리는 ASP.NET 이 알아서 처리해 준다. 만일, 여러분이 이전에 VB나 VC++을 해본 적이 있다면 그와 비슷하게 이벤트 처리 방식으로 작업할 수 있다는 말로 이해해도 좋다.

 

 

ASP.NET Features

- 체계적인 프로그래밍 구조

- 파워풀한 컨트롤들의 제공 : Control based page

      : 전보다 훨씬 쉽고 풍부한 개발환경을 제공

- 언어 독립적인 플랫폼 : 모든 CLR 지원 플랫폼 위에서 구동

- Interface와 Code의 분리 : Code Behind

      : 쉬운 유지보수, Application의 확장성, Easy Deployment

- Improved performance : Compiled Page & Garbage Collection

- 개발 생산성 향상 : VISUAL STUDIO . NET

- Multi-Client Supporting

      : IE / Netscape / Mac / Pocket PC / Mobile phone

- 간결한 이벤트 중심의 프로그래밍 모델

 

ASP.NET에서 제공하는 새로운 기술들

- 웹 폼(Web Forms) 

    : ASP.NET의 새로운 프로그래밍 모델이며, ASP의 장점을 Visual Studio.NET의 개발 편의성, 

     생산성과 결합한 모델이다. 또한, 이 강좌에서 지겹도록 만나게 될 친구이기도 하다.

- 서버 컨트롤(Server Controls) 

    : 웹 폼 프로그래밍 모델의 주요 구성 요소이며, HTML 요소들과 대략적으로 매핑되어진다. 

     즉, 서버상의 코드로는 <asp:TextBox>와 같이 작성되지만 실제 클라이언트에게 이 컨트롤은 

      <Input type="text"> 로 변환되어 HTML로써 내려진다. 서버 컨트롤의 제공은 강력한 서버 

      사이드 프로그래밍의 가능성을 제공해 줄 것이다.  웹 폼과 마찬가지로 아주 지겹도록 많이, 

      자주 만나보게 볼 것이다.

- 웹 서비스(Web Services)

    : 프로그래밍 가능한 서비스의 제작을 이루는 ASP.NET 의 핵심 기술이다. 웹 서비스라는 기술은

      Microsoft의 .NET 환경에서만 동작하는 기술이 아니라 XML을 지원하는 모든 플랫폼에서 제공, 

      사용 가능한 기술이기에 앞으로의 세상은 웹 서비스의 세상일 것이라는 기대는 실제화될 것으로

      보인다. 태오가 매우 관심을 가지고 있는 분야이기도 하다.

- 캐싱(Caching)

    : ASP.NET은 강력한 캐싱 엔진을 탑재하고 있다. 이를 통해 웹 페이지의 캐싱을 효과적으로 구성

      할 수 있으며, 효과적인 캐싱을 통해 어플리케이션의 성능 향상을 가져올 수 있다. 또한, 효과적

      으로 구성한 캐싱은 서버간의 프로세싱 로드를 절감하는 효과를 가져오기에, 전체적인 네트웍의

      트래픽 또한 향상되는 효과를 얻게한다.

- 향상된 상태 관리(State management Improvements)

    : 웹 서버상에서 세션 상태를 분산시켜 저장할 수 있도록 하는 기능을 제공한다. 별도의 상태 서버

      나 SQL Server Database를 통해 상태 정보 유지하도록 할 수 있으며, 클라이언트 브라우저가 

     쿠키를 지원하지 않아도 세션의 상태를 관리할 수 있는 방법 또한 제공한다. 

이 외에도 보안(Security)

 

ASP.NET을 제대로 하기 위해서는 이러한 주변 기술들을 반드시 공부해야만 한다. 물론, 전체를 다 공부하기에는 단계적으로 많은 시간이 필요하겠지만, ASP.NET을 여러분의 기술로 만들고자 한다면 이 중에서도 최소한 자신만의 .NET 언어는 무엇보다 먼저 한 가지 정도는 준비해 주어야 할 것이다.

 

 

 

 


+ Recent posts