이벤트(컴퓨팅)

Event (computing)

프로그래밍소프트웨어 설계에서 이벤트는 소프트웨어에 의해 인식되는 동작 또는 발생이며, 소프트웨어가 처리할 수 있는 외부 환경에서 비동기적으로 발생하는 경우가 많습니다.컴퓨터 이벤트는 시스템, 사용자 또는 다른 방법으로 생성 또는 트리거할 수 있습니다.일반적으로 이벤트는 프로그램흐름동시에 처리됩니다.즉, 소프트웨어는 이벤트를 처리하는 전용 장소(대부분 이벤트루프)를 1개 이상 가질 수 있습니다.이벤트 소스에는 사용자가 포함되며, 사용자는 컴퓨터 주변기기를 통해 예를 들어 키보드를 입력함으로써 소프트웨어와 상호 작용할 수 있습니다.또 다른 소스는 타이머 등의 하드웨어 디바이스입니다.소프트웨어는 자체 이벤트 세트를 이벤트 루프에 트리거할 수도 있습니다(예: 작업 완료 통신).이벤트에 대응하여 동작을 변경하는 소프트웨어는 이벤트 중심이며, 종종 인터랙티브를 목표로 합니다.

묘사

이벤트 구동 시스템은 일반적으로 프로그램에서 처리할 필요가 있는 비동기 외부 액티비티가 있을 때 사용됩니다(예를 들어 마우스 버튼을 누르는 사용자).이벤트 구동 시스템은 일반적으로 이벤트 루프를 실행하며, 장치 또는 내부 알람으로부터의 입력과 같은 작업을 계속 기다립니다.이 중 하나가 발생하면 이벤트에 대한 데이터를 수집하고 이벤트를 처리하는 이벤트 핸들러 소프트웨어로 이벤트를 디스패치합니다.

프로그램은 이벤트를 무시하도록 선택할 수 있으며 특정 이벤트를 수신하도록 프로그래밍된 여러 핸들러에 이벤트를 디스패치하는 라이브러리가 있을 수 있습니다.이벤트와 관련된 데이터는 최소한 이벤트 유형을 지정하지만 이벤트 발생 시기, 발생 사용자 또는 발생 원인, 이벤트 소스에 의해 핸들러에 제공되는 이벤트 처리 방법에 대한 추가 데이터 등 기타 정보를 포함할 수 있습니다.

이벤트는 일반적으로 사용자 인터페이스에서 사용되며, 외부에서 수행되는 작업(마우스 클릭, 창 크기 조정, 키보드 누르기, 다른 프로그램 메시지 등)은 일련의 이벤트로 프로그램에 의해 처리됩니다.많은 윈도우 환경용으로 작성된 프로그램은 주로 이벤트 핸들러로 구성됩니다.

이벤트는 인터럽트를 보완하는 명령 집합 수준에서도 사용할 수 있습니다.인터럽트에 비해 이벤트는 일반적으로 동기적으로 구현됩니다.프로그램은 이벤트가 생성 및 처리되기를 명시적으로 기다리는 반면(일반적으로 다음 이벤트를 디스패치하는 명령을 호출함으로써), 인터럽트는 즉각적인 서비스를 요구할 수 있습니다.

위임 이벤트 모델

위임 이벤트 모델. clickme는 이벤트 소스(이 예에서는 버튼)로, 청취자 목록이 포함되어 있습니다.

객체 지향 프로그래밍의 일반적인 변형은 일부 그래픽 사용자 인터페이스에 의해 제공되는 위임 이벤트 모델입니다.이 모델은 다음 세 가지 엔티티를 기반으로 합니다.

  • 이벤트 소스인 컨트롤
  • 송신원으로부터 이벤트 통지를 수신하는 청취자(이벤트 핸들러라고도 불립니다)
  • 이벤트 통신에 사용되는 프로토콜을 설명하는 인터페이스(용어의 넓은 의미)입니다.

또한 이 모형은 다음을 요구한다.

  • 모든 청취자는 리슨하는 이벤트의 인터페이스를 실장할 필요가 있습니다.
  • 모든 청취자는 그 이벤트를 듣고 싶은 욕구를 선언하기 위해 출처에 등록해야 한다
  • 소스가 이벤트를 생성할 때마다 인터페이스의 프로토콜을 따라 등록된 청취자에게 이벤트를 전달합니다.

C#은 이벤트를 선언하는 클래스에 의해서만 기동할 수 있는 특별한 위임으로서 사용합니다.이를 통해 다음과 같이 추상화를 개선할 수 있습니다.[1]

위임하다 무효 알림 (스트링 송신자);  학급 모델 {     일반의 이벤트 알림 notify 뷰;     일반의 무효 바꾸다() { ... notify 뷰("모델"); } }  학급 표시 1 {     일반의 표시 1(모델 m) {         m.notify 뷰 += 신규 알림(이것..갱신 1);     }      무효 갱신 1(스트링 송신자) {         콘솔.기입선(송신자 + " 업데이트 중 변경됨");      } }  학급 표시 2 {     일반의 표시 2(모델 m) {         m.notify 뷰 += 신규 알림(이것..갱신 2);      }      무효 갱신 2(스트링 송신자) {         콘솔.기입선(송신자 + "가 변경되었습니다.);      } }  학급 시험 {     정적인 무효 주된() {         모델 모델 = 신규 모델();          신규 표시 1(모델);         신규 표시 2(모델);         모델.바꾸다();     } } 

이벤트 핸들러

컴퓨터 프로그래밍에서 이벤트 핸들러는 프로그램(Java 및 JavaScript에서는 수신기라고 함)에서 수신된 입력을 처리하는[2] 콜백 서브루틴을 사용하여 구현될 수 있습니다. 이벤트는 기본 프레임워크(일반적으로 GUI 툴킷)에서 제공하는 애플리케이션 수준의 정보입니다.GUI 이벤트에는 키 누르기, 마우스 이동, 액션 선택 및 만료 타이머가 포함됩니다.낮은 수준에서 이벤트는 파일 또는 네트워크 스트림을 읽기 위한 새로운 데이터의 가용성을 나타낼 수 있습니다.이벤트 핸들러는 이벤트 구동 프로그래밍의 중심 개념입니다.

이벤트는 하위 수준 입력 해석에 기반하여 프레임워크에 의해 생성됩니다. 하위 수준 입력 자체는 하위 수준일 수 있습니다.예를 들어, 마우스 이동과 클릭은 메뉴 선택으로 해석됩니다.이벤트는 처음에는 하드웨어 디바이스에 의해 생성된 인터럽트, 소프트웨어 인터럽트 명령, 폴링 상태 변경 등 운영체제수준의 액션에서 발생합니다. 레벨에서는 인터럽트 핸들러와 신호 핸들러는 이벤트핸들러에 대응합니다.

생성된 이벤트는 먼저 프레임워크 내에서 이벤트 디스패처에 의해 처리됩니다.일반적으로 이벤트와 이벤트핸들러간의 어소시에이션을 관리하며 나중에 처리하기 위해 이벤트핸들러 또는 이벤트를 큐잉 할 수 있습니다.이벤트 디스패처는 이벤트핸들러를 직접 호출하거나 이벤트가 실행될 핸들러에 대한 정보와 함께 큐 해제되기를 기다릴 수 있습니다.

이벤트 알림

이벤트 알림은 작은 메시지(이벤트)를 생성하는 응용 프로그램과 관련 상태를 감시하고 이벤트에 의해 트리거되는 액션을 수행하는 응용 프로그램을 연결하기 위해 통신 소프트웨어와 함께 사용되는 용어입니다.

이벤트 알림은 최신 데이터베이스 시스템(어플리케이션이 감시하고 있는 조건이 발생했을 때 애플리케이션을 통지하기 위해 사용), 최신 운영 체제(창 갱신 등 어떤 액션을 수행해야 할 때 애플리케이션을 통지하기 위해 사용), 이벤트 생성자가 d에 있을 수 있는 최신 분산 시스템에서 중요한 기능입니다.소비자 또는 소비자보다 다른 기계입니다.이벤트 알림 플랫폼은 일반적으로 이벤트를 생성하는 응용 프로그램이 이벤트를 소비하는 응용 프로그램 또는 이벤트 스트림을 모니터링하는 응용 프로그램 수를 알 필요가 없도록 설계되었습니다.

publish-subscribe의 동의어로 사용되는 경우가 있습니다.이 용어는 네트워크 환경에서 이벤트 알림을 지원하는 제품의 한 클래스와 관련된 용어입니다.가상 동기 모델은 이벤트 알림 시스템 및 퍼블리시 서브스크라이브시스템에 보다 강력한 폴트 톨러런스와 일관성 보증을 부여하기 위해 사용되는 경우가 있습니다.

사용자 생성 이벤트

프로그램 또는 시스템이 생성하거나 응답할 수 있는 많은 상황 또는 이벤트가 있습니다.일반적인 사용자 생성 이벤트는 다음과 같습니다.

마우스 이벤트

포인팅 디바이스는 소프트웨어 인식 가능한 포인팅 디바이스 제스처를 다수 생성할 수 있다.마우스는 마우스 이동(이동 방향 및 거리 포함), 마우스 왼쪽/오른쪽 버튼 위/아래[3]마우스 휠 움직임 또는 이러한 제스처의 조합과 같은 여러 마우스 이벤트를 생성할 수 있습니다.예를 들어 경계 내에서 일반적으로 선택한 단어와 문자를 두 번 누르고 전체 단락을 세 번 누릅니다.

키보드 이벤트

키보드의 키 또는 키의 조합을 누르면 키보드 이벤트가 생성되어 현재 실행 중인 프로그램이 사용자가 [3]누른 키와 같은 도입된 데이터에 응답할 수 있습니다.

조이스틱 이벤트

조이스틱을 움직이면 X-Y 아날로그 신호가 생성됩니다.이벤트를 트리거하는 버튼이 여러 개 있는 경우가 많습니다.인기 게임 박스용 게임 패드 중에는 조이스틱을 사용하는 것도 있습니다.

터치스크린 이벤트

터치 스크린을 사용하여 생성되는 이벤트를 일반적으로 터치 이벤트 또는 제스처라고 합니다.

디바이스 이벤트

장치 이벤트에는 흔들림, 기울기, 회전, 이동 등과 같은 장치에 의한 또는 장치에 대한 동작이 포함됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Mössenböck, Hanspeter (2002-03-25). "Advanced C#: Variable Number of Parameters" (PDF). Institut für Systemsoftware, Johannes Kepler Universität Linz, Fachbereich Informatik. p. 26. Retrieved 2011-08-05.
  2. ^ "EventTarget.addEventListener() - Web APIs MDN". developer.mozilla.org.
  3. ^ a b Windows 폼의 마우스와 키보드의 이벤트.마이크로소프트(MS.2008년 2월 12일에 취득.

외부 링크