ASP.NET 애플리케이션 및 페이지 수명 주기
⚡ 스마트 요약
ASP.NET 애플리케이션 및 페이지 수명 주기는 애플리케이션 시작 및 객체 생성부터 페이지 초기화, 로드, 렌더링 및 언로드에 이르기까지 요청이 거치는 일련의 단계를 순서대로 설명합니다.ping 개발자는 코드를 올바른 위치에 배치합니다.

ASP.Net 수명주기란 무엇입니까?
ASP.Net 애플리케이션이 실행되면 일련의 단계가 수행됩니다. 이러한 단계들이 애플리케이션의 수명 주기를 구성합니다.
ASP.Net 웹 애플리케이션의 일반적인 수명 주기 단계를 살펴보겠습니다.
ASP.Net 수명주기
1) 신청 시작 – 수명주기 ASP.NET 애플리케이션은 사용자의 요청이 있을 때 시작됩니다. 이 요청은 ASP.Net 애플리케이션의 웹 서버로 전송됩니다. 일반적으로 첫 사용자가 애플리케이션의 홈페이지에 처음 접속할 때 이러한 상황이 발생합니다. 이때 웹 서버에서 Application_Start라는 메서드가 실행됩니다. 보통 이 메서드에서는 모든 전역 변수가 기본값으로 설정됩니다.
2) 객체 생성 다음 단계는 웹 서버에서 HttpContext, HttpRequest 및 HttpResponse 객체를 생성하는 것입니다. HttpContext는 HttpRequest 및 HttpResponse 객체를 담는 컨테이너입니다. HttpRequest 객체는 쿠키 및 브라우저 정보를 포함하여 현재 요청에 대한 정보를 담고 있습니다. HttpResponse 객체는 클라이언트로 전송되는 응답을 담고 있습니다.
3) HttpApplication 생성 이 객체는 웹 서버에서 생성됩니다. 이 객체는 애플리케이션으로 전송되는 모든 후속 요청을 처리하는 데 사용됩니다. 예를 들어, 두 개의 웹 애플리케이션이 있다고 가정해 보겠습니다. 하나는 쇼핑몰입니다.ping 하나는 쇼핑 카트 애플리케이션이고, 다른 하나는 뉴스 웹사이트입니다. 각 애플리케이션마다 2개의 HttpApplication 객체가 생성됩니다. 이후 각 웹사이트에 대한 모든 요청은 각각의 HttpApplication 객체에 의해 처리됩니다.
4) 폐기 – 이 이벤트는 애플리케이션 인스턴스가 파괴되기 전에 호출됩니다. 이 시간 동안 이 메서드를 사용하여 관리되지 않는 리소스를 수동으로 해제할 수 있습니다.
5) 신청 종료 – 신청서의 마지막 부분입니다. 이 부분에서는 애플리케이션이 최종적으로 메모리에서 언로드됩니다.
ASP.Net 페이지 수명주기란 무엇입니까?
ASP.Net 페이지가 호출되면 특정 생명주기를 거칩니다. 이는 사용자에게 응답이 전송되기 전에 수행됩니다. ASP.Net 페이지 처리에는 일련의 단계가 있습니다.
ASP.Net 웹 페이지 수명 주기의 다양한 단계를 살펴보겠습니다.
ASP.Net 페이지 수명주기
- 페이지 요청 - 이는 서버에 페이지가 처음 요청될 때 발생합니다. 페이지 요청이 들어오면 서버는 해당 페이지가 처음 요청된 것인지 확인합니다. 처음 요청된 경우, 서버는 페이지를 컴파일하고 응답을 파싱하여 사용자에게 전송합니다. 이전에 요청된 적이 있는 경우, 캐시에 페이지 출력이 있는지 확인합니다. 캐시에 페이지가 있으면 해당 응답을 사용자에게 전송합니다.
- 페이지 시작 이 과정에서 요청 객체와 응답 객체라는 두 개의 객체가 생성됩니다. 요청 객체는 페이지 요청 시 전송된 모든 정보를 저장하는 데 사용되고, 응답 객체는 사용자에게 다시 전송되는 정보를 저장하는 데 사용됩니다.
- 페이지 초기화 - 이 시간 동안 웹 페이지의 모든 컨트롤이 초기화됩니다. 따라서 웹 폼에 있는 레이블, 텍스트 상자 또는 기타 컨트롤이 모두 초기화됩니다.
- 페이지 로드 – 이는 페이지가 실제로 모든 기본값으로 로드되는 경우입니다. 따라서 텍스트 상자에 기본값이 있어야 하는 경우 해당 값은 페이지 로드 시간 동안 로드됩니다.
- 검증 – 때로는 폼에 일부 검증 세트가 있을 수 있습니다. 예를 들어, 목록 상자에 특정 값 세트가 있어야 한다는 검증이 있을 수 있습니다. 조건이 거짓이면 페이지를 로드하는 데 오류가 있어야 합니다.
- 포스트백 이벤트 처리 이 이벤트는 동일한 페이지가 다시 로드될 때 발생합니다. 이는 이전 이벤트에 대한 응답으로 발생합니다. 예를 들어 사용자가 페이지의 제출 버튼을 클릭하는 경우가 있는데, 이 경우 동일한 페이지가 다시 표시되고 Postback 이벤트 핸들러가 호출됩니다.
- 페이지 렌더링 – 이는 모든 응답 정보가 사용자에게 전송되기 직전에 발생합니다. 양식의 모든 정보는 저장되며, 그 결과는 완전한 웹페이지로 사용자에게 전송됩니다.
- 부리다 – 일단 페이지 출력이 사용자에게 전송되면, ASP.net 웹 양식 메모리의 개체. 따라서 언로드 프로세스에는 원하지 않는 모든 개체를 메모리에서 제거하는 작업이 포함됩니다.
ASP.NET 페이지 생명주기 이벤트
위에서 설명한 기본적인 단계 외에도, ASP.NET은 개발자가 코드에서 처리할 수 있는 특정 페이지 이벤트 순서를 제공합니다. 이벤트 순서를 알면 로직을 올바른 위치에 배치하는 데 도움이 됩니다.
- PreInit 마스터 페이지와 테마를 설정하고 동적 컨트롤을 생성합니다.
- 초기화 각 컨트롤은 초기화되어 있으며, 이를 사용하여 컨트롤 속성을 읽거나 설정할 수 있습니다.
- 초기화 완료 - 모든 초기화가 완료된 후에 발생합니다.
- 사전 로드 – 페이지가 뷰 상태와 포스트백 데이터를 로드하기 전에 발생합니다.
- 하중 페이지와 해당 컨트롤이 로드됩니다. 대부분의 페이지 로직이 여기에 있습니다.
- 제어 이벤트 – 버튼 클릭과 같은 컨트롤별 이벤트가 처리됩니다.
- 사전 렌더링 - 출력하기 전에 페이지 또는 컨트롤을 최종적으로 수정합니다.
- SaveStateComplete – 모든 컨트롤의 뷰 상태가 저장됩니다.
- 렌더링 이 페이지는 브라우저로 전송될 HTML 출력을 생성합니다.
- 부리다 - 정리 작업이 수행되고 객체가 메모리에서 해제됩니다.
애플리케이션 수명 주기 vs 페이지 수명 주기
애플리케이션 수명 주기와 페이지 수명 주기는 서로 다른 범위에서 작동합니다. 아래 표는 둘의 차이점을 명확히 보여줍니다.
| 아래 | 응용 프로그램 수명주기 | 페이지 수명 주기 |
|---|---|---|
| 범위 | 전체 웹 애플리케이션 | 단일 페이지 요청 |
| 시작 | 첫 번째 요청(Application_Start) 시 | 페이지가 요청될 때마다 |
| 중요 행사들 | 애플리케이션 시작, 요청 시작, 애플리케이션 종료 | 초기화, 로드, 사전 렌더링, 언로드 |
| 진동수 | 신청 시작 및 종료 시 한 번만 사용 가능합니다. | 페이지당 한 번 요청 |
요약하자면, 애플리케이션 수명 주기는 앱의 시작부터 종료까지 전체 과정을 포괄하는 반면, 페이지 수명 주기는 사용자가 페이지를 요청할 때마다 실행됩니다.
ASP.NET 생명주기를 이해하는 것이 중요한 이유
ASP.NET은 특정 시점에 코드를 실행하기 때문에 생명주기를 이해하는 것이 필수적입니다. 잘못된 이벤트에 로직을 배치하면 찾기 어려운 버그가 발생할 수 있습니다. 실행 순서를 명확히 파악하면 다음과 같은 이점을 얻을 수 있습니다.
- PreInit 또는 Init 단계에서 동적 컨트롤을 미리 생성하거나 구성하십시오.
- Load 이벤트에서 컨트롤의 기본 값을 설정하여 올바르게 표시되도록 합니다.
- 모든 데이터 바인딩이 완료된 후 PreRender 단계에서 최종 화면 변경 사항을 적용합니다.
- 데이터 중복 처리를 방지하기 위해 최초 로드 요청과 포스트백 요청을 구분합니다.
- 메모리 누수를 방지하기 위해 언로드 시 리소스를 해제하고 정리하십시오.
이러한 이벤트를 숙달하면 상태 관리, 유효성 검사 및 디버깅이 훨씬 더 예측 가능해집니다.


