1. 웹 폼(Web Form)
: 웹 폼은 ASP.NET 페이지(.aspx 파일)와 같은 개념으로서 ASP.NET 프로그래밍을 하기 위해 사용하는 Form 또는 기반입니다. ASP.NET 개발자는 이 웹 폼 위에서 웹 페이지를 디자인하고 소스코드를 작성합니다.
웹 폼은 크게 다음과 같은 두 부분으로 구성됩니다.
- 표현 부분(웹 폼의 시각적인 부분을 담당)
- 코드 부분(웹 폼의 내부 로직 부분을 담당)
태그, 서버 컨트롤, 정적 텍스트와 같이 웹 폼을 시각적으로 나타낼 수 있는 요소가
위치합니다. 이렇게 구성된 웹 폼을 특정 사용자가 요청했을 때 ASP.NET은 코드 부분에 정의되어 있는 내부 로직과 표현 부분에 정의되어 있는 시각적 요소를 조합하여 처리한 후 그 결과(HTML 형식의 웹 페이지)를 사용자에게 돌려줍니다.
: 속성은 캡슐화 기능, get 및 set 접근자를 통해 추가적인 논리를 실행하는 기능 등을
제공하는 클래스 멤버. 또한 HTML 태크에서 태그 내에 포함된 부가적인 정보도
속성이라고 표현한다(예: <a href="..."></a>에서 href는 <a>태그의 속성).
하지만 특성은 런타임 시 응용 프로그램 동작에 영향을 주는 데에 사용되는 설명적인
선언이다. 페이지 내에서 @Page 지시문은 클래스가 아니며 HTML 태그도 아니다.
속성이 아닌 특성이 되는 것이다.
* XHTML 이란?
: XHTML(eXtensible HyperText Markup Language)은 HTML을 XML 문서로 정의하는
W3C(World Wide Web Consortium, 인터넷 표준 기관)의 표준이다. HTML은 엄격한
문법 체크를 하지 않고 스타일과 내용이 혼재되어 있으므로 HTML 문서에 포함되어
있는 순수 내용만을 프로그래밍 방식으로 뽑아내기가 힘들다. 그러므로 HTML은 시스템,
운영체제, 브라우저 종류에 관계없이 모든 환경에서 호환 되는 웹 페이지를 만드는 데
한계가 있으며 이런 이유에서 만들어진 것이 바로 XHTML이다. XHTML은 엄격하게
문법 체크를 하고 스타일과 내용을 완전히 분리시킬 수 있으므로 특정 시스템, 운영체제,
브라우저에 상관없이 모든 환경에서 호환되는 웹 페이지를 만들 수 있다.
2. 웹 폼 이벤트
: 웹 폼에서는 여러 이벤트가 있으며 개발자는 이 이벤트를 통해 웹 폼의 처리 과정 중
특정 시점에서 원하는 내부 로직을 작성할 수 있다.
* Load 이벤트
: 웹 폼의 고유의 이벤트. 웹 페이지에서 사용되는 값을 초기화하거나 특정 서버
컨트롤을 세팅할 때 사용. 웹 폼 로드 시 서로 다른 이벤트를 사용하는 이유는
이 이벤트들의 실행 순서가 서로 다르고, 이때 사용할 수 있는 개체 또한 서로 다르기
때문이다. 다음은 웹 폼 이벤트의 주요 실행 순서를 그림으로 표현한 것이다.
LoadViewState 이벤트는 서버 컨트롤의 정보를 가지고 있는 뷰 상태(View State)라는
것을 Load(복원)하는 이벤트이다. 즉, Init 이벤트는 LoadViewState 이벤트 이전에
발생하는 이벤트이므로 서버 컨트롤 개체를 사용할 수 없다. 반면에 Load, PreRender
이벤트는 LoadViewState 이벤트 이후에 발생하는 이벤트이므로 서버 컨트롤 개체를
사용할 수 있다. 이렇게 웹 폼의 이벤트들은 그 실행 순서가 다를 뿐만 아니라 그 안에서
처리할 수 있는 내용 또한 다르다.
3. 다시 게시(Postback)와
페이지 간 게시(Cross-Page Posting)
: 다시 게시는 반드시 이해하고 있어야 하는 매우 중요한 개념이다. 사실 초보 개발자가
만들어내는 버그는 다시 게시와 웹 폼 실행 주기를 제대로 이해하지 못하고 있는 데서
발생하는 경우가 많다.
1) 다시 게시(Postback)
: 사용자의 브라우저는 서버에서 처리된 결과를 HTML과 클라이언트 스크립트로 받아서
보여주는 역할만 할 뿐이다. 사용자가 웹 페이지에서 입력한 정보나 변경한 정보는
서버로 다시 전송되며 ASP.NET은 전송된 정보를 기초로 하여 ASP.NET 페이지를
서버에서 처리한 후 그 결과를 사용자에게 다시 되돌려 준다. 이렇게 자신을 타겟으로
하여 현재 페이지를 다시 서버로 전송하는 프로세스를 다시 게시라고 한다.
위의 그림에서 보면 다시 게시가 자신을 타겟으로 하여 현재 페이지를 다시 서버로
전송하는 행위임을 볼 수 있다. 단, 사용자가 페이지를 처음 요청하는 것은 다시 게시가
아니다. 다시 말해 페이지가 처음 로드된 것은 다시 게시가 아니라는 말이다.
페이지가 처음 로드된 후 다시 게시를 일으키는 서버 컨트롤(버튼, 드롭다운리스트 등등)을 통해 현재 페이지를 다시 서버로 전송할 때가 바로 다시 게시가 일어나는 시점이다.
2) 페이지 간 게시(Cross-Page Posting)
: 다시 게시가 자신을 타겟으로 하여 현재 페이지를 다시 서버로 전송하는 프로세스인데
반해 페이지 간 게시는 타겟을 다른 대상 페이지로 하여 현재 페이지를 서버로 전송하는
프로세스이다.
4. ASP.NET 2.0 응용 프로그램 구조
1) 구성 파일(Configuration File)
: 구성 파일은 응용 프로그램이나 웹 사이트에 대한 옵션 설정 정보가 들어 있는 .config
확장자를 가진 XML 파일이다. 구성 파일에는 설정 정보가 웹 서버 전체에 영향을
미치는 Machine.config 파일과 설정 정보가 해당 웹 응용 프로그램 또는 해당 폴더에만
영향을 미치는 Web.config 파일이 있다. 구성 파일은 데이터베이스 연동 설정 정보를
비롯하여 ASP.NET 2.0에 새로 추가된 기능들(테마, 마스터 페이지, 프로필, 웹 파트
등등)의 설정 정보를 저장하는 데에도 사용된다.
2) Global.asax 파일
: Global.asax 파일은 ASP.NET 응용 프로그램 파일이라고도 하며 ASP.NET에 의해
발생되는 응용 프로그램 수준의 이벤트(웹 응용 프로그램 시작 이벤트, 웹 응용
프로그램 종료 이벤트 등등)를 처리하는 파일. 이 Global.asax 파일은 ASP.NET 응용
프로그램의 루트 디렉터리에 위치하며 직접적인 URL 요청을 자동 거부하도록 설정되어
있다. 따라서 외부 사용자는 이 파일을 내려받거나 코드를 볼 수 없다.
파란실버라이트
To remember the time when I started learning Silver Light!