본문 바로가기

study

ASP.NET Summary Chapter 1 ASP.NET 플랫홈(훈스닷넷 강좌)


  강좌 최초 작성일 : 2004년 04월 01일
  강좌 최종 수정일 : 2004년 08월 17일 

  작성자 : YouKnow(문윤호) youknow@fuz.co.kr
  편집자 : HOONS(박경훈) http://www.hoonsbara.com

  강좌 제목 : ASP.NET Summary Ver.2 Chapter 1 (ASP.NET 플랫폼)

 


-. 웹 폼으로 작업하기 위해서 웹 폼 컨트롤의 종류 및 ASP.Net 플랫폼 아키텍처를 정리하자.

    ASP.NET 플랫폼을 크게 분리한다면 페이지(Pages), 서비스(Service), 애플리케이션 인프라스트럭처(Application Infrastructure)의 세가지 항목으로 구분할 수 있다.

    1. 페이지(Pages)

  
  ASP.NET의 웹 폼(Web Form)을 일컬음.

    -. ASP.NET 에서는 기존에 Form의 Submit에 국한 되었던 클라이언트와 서버 사이의 한계에서 벗어나 각각의 HTML의 Form 컨트롤들을 서버 컨트롤로 제공하여 프로퍼티의 제어와 각각의 기본적인 메소드 및 이벤트를 활용함으로써 보다 확장성 있는 이벤트 기반 프로그래밍 모델을 제공한다.

    -. 웹 서버는 접속한 클라이언트의 타입을 자동으로 체크하여 DTHML, HTML3.2, WML 방식등으로 자동 렌더링해 준다.

    -. 코드 비하인드(Code Behind)를 통해 코드와 HTML 태그를 분리하여 개발자들의 개발 생산성을 높여 준다.

    -. 모든 페이지는 사용자로부터 최초의 Request를 받을 때 자동으로 컴파일되어 바이너리 형태로 저장됨으로써 이전의 스크립트 방식의 단점인 인터프리팅의 제한성을 극복하였다.

    2. Html 서버 컨트롤 

    
 기본적으로 HTML 요소와 1:1 맵핑되는 것으로 HTMl 요소에 간단히 runat="server"라는 속성을 추가하는 것으로 간단히 서버 컨트롤로 변경할 수 있다.

    3. 웹 서버 컨트롤 

     웹 서버 컨트롤은 HTML 요소와 관계없이 웹 애플리케이션 개발에 필요한 컨트롤들을 제공하는 HTML 서버 컨트롤과 비교 했을때 보다 많은 확장된 기능을 제공해 준다. 특히 클라이언트의 브라우저 타입을 감지하여 적절한 형태로 렌더링될 수 있는 기능을 가지고 있다.  웹 서버 컨트롤은 다시 기능별로 기본 컨트롤(Intrinsic Controls), 리스트 컨트롤(List Controls), 리치 컨트롤(Rich Controls), 유효성 검사 컨트롤(Validation Controls), 사용자 정의 컨트롤(Pagelet), 사용자 지정 컨트롤(Customer Controls)로 분류할 수 있다.

    

   ① 기본 컨트롤(Intrinsic Controls) : 일반적으로 가장 많이 사용되는 HTML 요소들이 기본 컨트롤에 포함된다.  Button, LinkButton, ImageButton, HyperLink, TextBox, CheckBox, RadioButton, Image, Label, Panel, Table

    ② 리스트 컨트롤(List Controls) : 데이터베이스에 요청한 쿼리의 결과인 데이터 레코드들을 직접 데이터 바인딩 시켜 웹 페이지에 출려할 수있는 컨트롤이다.  DataGrid, DataList, Repeater, CheckBoxList, RadioButtonList, DropDownList, ListBox

    ③ 리치 컨트롤(Rich Controls) : 현재 제공되고 있는 리치 컨트롤에는 달력을 웹 페이지에 보여주고 사용자가 날짜를 선택할 수 있게 해주는 Calendar 컨트롤과 배너 광고의 이미지 순환을 위해 사용할 수 있는 AdRotator 컨트롤등이 있다. 또한 Crystal Report Viewer 컨트롤과 같이 서드 파티 업체들에 의해서 다양한 리치 컨트롤들이 개발되고 있으며 계속해서 추가될 예정이다.

    ④ 유효성 검사 컨트롤(Validation Controls) : 웹 애플리케이션에서 사용자로 부터 데이터를 입력 받을때 입력된 값이 올바른지 체크하는 작업을 실시하는 컨트롤이다. 이는 사용자가 입력한 값이 유효성을 검증하기 위해서는 적절한 유효성 검사 컨트롤을 웹 폼에 추가하고 이 컨트롤의 프로퍼티를 설정하는 것으로 별도의 코드 입력 없이 작업이 완료 된다.

        RequiredFiledValidator : 반드시 입력해야만 하는 컨트롤의 값을 체크하는 데 사용된다.

        CompareValidator : 두 개의 입력 컨트롤들의 값을 대조하는 데 사용된다.

        RangeValidator : 사용자가 입력한 값에 대한 범위를 체크하는 데 사용된다.

        RegularExpressionValidator : 특정 타입에 맞는 숫자/문자 입력을 제한하는 데 사용된다. (우편번호, 특정문자 제한)

        CustomValidator : 입력한 값이 Validation Rule에 맞는지를 체크한다. (주민등록번호 체크/카드번호 체크)

        ValidationSummary : 모든 유효성 검사 컨트롤들의 작업이 끝나고 각각의 에러 메시지를 취합하여 한꺼번에 보여주여야 할 때 사용된다.

    ⑤ 사용자 정의 컨트롤(Pagelet) : 웹 페이지에서 많이 사용되는 메뉴나 특정 부분들을 분리하여 별도의 파일로 작성한 뒤, 해당 페이지를 출력할 때 마치 Visual Basic에서 사용자 정의 컨트롤을 윈 폼(WinForms)에 추가하여 사용하듯이 필요한 부분을 사용할 수 있다.

    ⑥ 사용자 지정 컨트롤(Custom Controls) : 사용자 정의 컨트롤은 웹 폼과 동일하게 페이지 형태(*.ascx)로 존재하는 것이 비해 지금부터 다루고자 하는 사용자 지정 컨트롤은 컨파일된 에셈블리(*.dll)로 존재한다. 사용자 정의 컨트롤에 비해서 다소 개발하는 데에는 어려움이 있으나 VS.NET의 강력한 도구 지원을 받을 수 있으며 디자인 시기에 컨트롤의 속성 제어 등이 가능하고, 다른 애플리케이션에서도 사용할 수 있다는 장점을 제공한다.

    4. 웹 서비스(Web Service) 
 
    
 MS가 발표한 .NET 플랫폼의 핵심적인 역할을 담당하게 될 가장 중요한 개념으로써 로컬 네트워크 상의 RPC(Remote Procedure Call)를 인터넷상으로 확장시킨 것으로 이해할 수 있다. 웹 서비스는 내부적으로 SOAP(Simple Object Access Protocol)이라는 XML을 기반으로 표준화된 통신 방법을 사용한다. 웹서비스의 구조는 4가지 항목을 정리할 수 있다.

    ① Directory : 먼저 필요한 기능을 제공하는 웹 서비스가 어디에 있는지 찾아야 한다. 이를 위해서 UDDI(Universal Description Discovery and Integaration) 서비스를 이용하는데, 이것은 웹 서비스를 위한 일종의 검색엔진이라고 이해하면 된다.

    ② Discovery : 특정 웹 서비스의 설명을 얻기 위해 웹 서비스 디스커버리 파일(*.vsdisco)에 접근하여 제공하고 있는 웹 서비스의 목록을 요청하면 웹 서비스는 행당 정보를 XML 형식으로 제공한다.

    ③ Description : 제공되는 웹 서비스 중에서 특정 서비스의 인터페이스를 요청한다. 그러면 웹 서비스는 Consumer에게 XML 형식의 SDL(Service Description Language) 파일로 인터페이스 정보를 제공한다.

    ④ Wire Format : 인터페이스 정보를 확인한 소비자(Consumer)는 이제 적절한 인터페이스를 통해 웹 서비스의 특정 메소드의 쿼리를 호출(Invoke)한다. 메소드를 호출받은 웹 서비스 제공자는 해당 작업을 수행한 후 결과를 다시 SOAP 프로토콜을 이용해서 XML 형태로 리턴한다.

    5. 인프라스터럭처(Infrastructure)

    기존에 IIS 내부의 메타데이터에 의존한 환경 설정에서 탈피하여 별도의 XML 기반의 machine.config와 web.config 파일을 통해 모든 웹 애프리케이션의 전반적인 제어가 가능하고, 환경설정의 중앙집중화 시키는 역할을 한다. 여기에는 Session과 Application 객체의 제어, 웹 애플리케이션의 관리 및 사이트 보안과 인증 등에 대한 내용이 포함된다. 그리고 기존에 분산환경에서의 웹 애플리케이션 운영시 문제점으로 인식되었던 컴포넌트의 갱신과 수정작업에 있어 불가피했던 웹 서비스의 일시중지와 같은 문제를 완벽하게 해결할 수 있는 방식을 제공한다. 이제는 컴포넌트를 단지 해당 웹 애플리케이션의 /bin 디렉토리에 복사하는 것만으로 비즈니스 로직을 담당하는 컴포넌트의 갱신과 수정 작업이 완료 된다.


'study' 카테고리의 다른 글