12.6 이벤트란?
이벤트(Event)는 발생한 사건을 알리기 위해서 보내는 메시지입니다. 일반적인 이벤트는 마우스클릭, 엔터와 같은 윈도우 프로그래밍에서 쉽게 찾아볼 수 있는 이벤트라고 생각하면 편할 것입니다. 이벤트는 다음과 같이 여러 가지 측면에서 생각해 볼 수 있습니다.
▣ 이벤트(Event)의 요소 |
ㅁ 이벤트(Event) 그 자체 ㅁ 이벤트를 발생시키는 이벤트 발생기 ㅁ 이벤트를 받는 이벤트 처리기(Event Handler) |
이벤트 그 자체
이벤트(Event)는 사건의 정보입니다. 이벤트는 사건이 발생하면 어떤 사건이 발생했는지 정보 자체를 의미합니다. 예를 들어, 사고가 발생했다고 하면 사고가 발생한 사실 그 자체는 이벤트입니다. 이 사고에 대한 정보 즉, 이벤트는 즉각 사고 처리반으로 전달될 것입니다. 여기서 사고에 대한 정보 자체는 이벤트 그 자체가 되는 것입니다. 이 사고는 교통사고일 수도 있고, 화재일 수도 있으며 도난사고일 수도 있습니다.
이벤트를 발생시키는 이벤트 발생기
사고는 아주 많지만 어디서 사고가 발생할지 모르는 것이 일반적입니다. 즉, 이벤트가 어디서 발생할지 모른다는 것입니다. 이벤트를 발생시키는 것은 일반 유저일 수도 있고, 시스템에서 발생할 수도 있으며 여러분이 프로그램적으로 이벤트를 발생시킬 수도 있습니다. 이것을 다른 말로 한다면 사고가 발생했는데 누가 이 사고를 발생시킬지 모른다는 것입니다.
이벤트를 받는 이벤트 처리기
이벤트가 발생하면 어디에선가 이 이벤트를 받을 것입니다. 화재라는 이벤트가 발생하면 소방서에서 이 이벤트를 처리하겠죠. 그리고, 도난사고라는 이벤트가 발생하면 경찰서에서 이 이벤트를 처리하게 될 것입니다.
아주 단순한 원리이지만 이벤트 자체, 이벤트 발생기, 이벤트 처리기라는 측면에서 본다면 우리의 일반적인 생활에서 찾아볼 수 있는 이벤트 자체를 프로그램적으로 모델링한 것이 바로 C#의 이벤트 모델입니다. 아주 쉬운 모델이니 여러분이 쉽게 이해하실 것입니다. 다음 절부터는 실제 프로그램에서 어떻게 이 세가지가 적용되는지에 대해서 알아보겠습니다.