다음을 통해 공유


프로그램 구조 및 실행 흐름

업데이트: 2007년 11월

C# 응용 프로그램을 만들 때 콘솔 응용 프로그램을 만들지 Windows Forms 응용 프로그램을 만들지 선택할 수 있습니다. 두 응용 프로그램은 사용자 인터페이스 형식뿐만 아니라 실행 흐름에도 차이가 있습니다.

Windows Forms 응용 프로그램

그래픽 사용자 인터페이스가 있는 일반적인 Windows 기반 응용 프로그램에서는 최초 시작 이후 대부분의 작업이 마우스 이동, 메뉴 옵션 선택 또는 텍스트 입력과 같은 사용자 작업에 대한 응답으로 발생됩니다. 이러한 사용자 작업은 이벤트를 트리거하며, 응용 프로그램에서 이벤트 처리기라는 특수한 메서드가 호출됩니다. Windows 기반 프로그램이 수행하는 거의 모든 작업은 이벤트 처리기에 의해 시작됩니다. 아무런 이벤트가 발생하지 않으면 프로그램에서는 아무런 작업도 하지 않습니다.

COBOL, BASIC 또는 FORTRAN과 같은 절차식 프로그래밍 언어에 익숙한 사용자는 이벤트 구동 모델에 익숙해져야 합니다. 이벤트 구동 프로그래밍이 절차식 프로그래밍과 가장 근본적으로 다른 점은 운영 체제 자체를 비롯한 다른 소프트웨어에서 응용 프로그램의 이벤트 처리기 메서드를 호출한다는 것입니다. 사용자는 어떤 메서드가 호출될지 알 수 없습니다. 응용 프로그램에서 처리할 이벤트를 선택할 수는 있지만 이들 이벤트가 정확히 어떤 순서로 발생할지는 미리 알 수 없습니다.

일반적인 Windows 기반 응용 프로그램에서 응용 프로그램의 상태를 저장하는 필드, 배열 및 컬렉션은 주 Form 클래스에 배치됩니다. 이 폼의 이름은 기본적으로 Form1로 지정됩니다. 클래스 범위에서 이러한 멤버는 동일한 Form 클래스에 구현되는 모든 이벤트 처리기 메서드로부터 액세스할 수 있습니다. 이벤트 처리기가 호출되면 응용 프로그램 데이터를 수정하는 작업이 수행되고, 메서드에서 제어를 반환하면 응용 프로그램은 대기 상태로 돌아갑니다. 예를 들어 폼에 TextBox 컨트롤과 Update 단추가 있는 경우를 생각해 봅니다. 사용자가 단추를 클릭하면 응용 프로그램의 이벤트 처리기에서는 TextBox의 텍스트를 가져오는 등의 작업을 수행한 다음 클래스 범위에 저장되는 다른 문자열의 목록에 텍스트를 추가합니다. 문자열이 추가된 후 응용 프로그램은 대기 상태로 돌아갑니다. 다른 이벤트 처리기는 사용자 입력에 대한 응답으로 동일한 문자열 목록에 대해 다른 종류의 작업을 수행할 수 있습니다.

고유한 사용자 지정 클래스에서 Windows Forms과 동일한 메커니즘을 사용하여 이벤트를 주고 받을 수 있습니다. 자세한 내용은 대리자(C# 프로그래밍 가이드)를 참조하십시오.

콘솔 응용 프로그램

많은 콘솔 응용 프로그램에서 실행 흐름은 프로그램 끝에 도달하여 응용 프로그램이 종료될 때까지 한 문에서 다음 문으로 진행됩니다. 물론 콘솔 응용 프로그램도 키보드 이벤트 및 타이머와 네트워크 연결 등의 개체가 생성하는 시스템 이벤트에 의해 구동될 수 있으므로 항상 그러한 것은 아닙니다. 간단한 콘솔 응용 프로그램은 Main 메서드를 포함하는 단 하나의 클래스로 구성되는 경우가 많습니다. 그러나 복잡한 응용 프로그램에는 많은 클래스가 포함될 수 있습니다.

자세한 내용

C# 프로그램의 구조를 학습하는 가장 좋은 방법은 Visual C# SamplesVisual C# Developer Center에서 샘플 코드를 살펴 보거나 인터넷에서 찾아 보는 것입니다.

참고 항목

작업

방법: 새 Visual C# Express 응용 프로그램 만들기

개념

C# 언어 입문

Windows Forms에서의 이벤트 순서

Windows Forms의 마우스 이벤트