이벤트 기반 프로그래밍 혹은 EDP라고도 하는 프로그래밍 패러다임에 대해 간단히 세미나를 진행하였습니다!

 

이벤트기반프로그래밍은 일어나는 일을 뜻하는 이벤트와 특정 방향으로 몰고가다의 과거완료형인 driven의 합성어로 어떤일의 발생에 의해 특정방향으로 가도록 된 이라는 뜻입니다. 따라서 이벤트의 발생에 의해 프로그램 흐름이 결정되는 프로그래밍 패러다임이라고 할 수 있습니다.

여기서 이벤트는 사용자 또는 센서의 입력이거나 네트워크로부터의 데이터송수신 혹은 다른 애플리케이션의 메세지가 될 수 있습니다.

이벤트기반프로그래밍 애플리케이션에서는 이벤트가 감지되면 콜백함수를 트리거하는 메인루프를 사용하고, 임베디드시스템에서는 반복적으로 수행하는 메인 루프 대신 하드웨어 인터럽트를 사용합니다.

 

 

이러한 이벤트 기반 프로그래밍이 등장하게된 배경에는 콘솔 프로그래밍의 단점보완에서부터 나타났습니다.

한번에 하나의 프로그램을 실행하기 때문에 흐름을 예측할 수 있었던 콘솔 프로그래밍은 순차적 프로그래밍이 적합했했지만,

동시에 여러 프로그램을 실행하는 윈도우 프로그래밍은 이벤트가 다양하게 발생하기 때문에 흐름을 예측하기 어려워졌습니다.

따라서 동시에 수행되는 다른 프로그램을 고려하여 개발을 진행하게 되었고 이러한 구조를 운영체제가 알아서 처리해주며 이 규칙이 이벤트기반프로그래밍 입니다.

 

 

이벤트 기반 프로그래밍 구조는 이벤트를 발생시키는 객체와, 이벤트를 관리하는 디스패처와, 이벤트가 발생했을 때 실행되는 객체인 이벤트 핸들러로 구성되어 있습니다.

이벤트 에미터에서 마우스 클릭과 같은 이벤트를 발생시키면 이벤트 에미터에서 실행되는 메소드들이 이벤트핸들러가 되며 이 둘을 관리하는 것 즉 이벤트와 이벤트핸들러를 바인딩 시킨것이 이벤트 디스패처 입니다.

 

 

이벤트 기반 프로그래밍 구조를 짤 때에는 먼저 응답할 이벤트를 처리하는 루틴을 작성하고 이벤트 핸들러를 이벤트에 바인딩 시킵니다. 그 후에 이벤트 발생 여부를 확인하고 핸들러를 호출하는 메인루프를 작성합니다.

 

 

이렇게 작성된 이벤트 기반 프로그래밍은 이벤트가 발생하게 되면 이벤트 객체가 생성됩니다. 이벤트 객체는 마우스 좌표와 같은 현재 발생한 이벤트에 대한 여러정보를 가진 객체입니다. 이벤트를 처리하는 핸들러인 이벤트 리스너를 찾고 호출을 시킵니다.

반응형

+ Recent posts