애플리케이션 이벤트 시스템 문서

이전까지는 따로 이벤트 시스템을 만들지 않고 반복문 안에서 if문을 통해서 특정 기능을 실행하였습니다. 예를 들어 게임오브젝트를 생성하거나 삭제하거나하는 작업들입니다.

작은 프로그램에서는 그렇게 진행해도 큰 문제는 없지만 프로그램의 규모가 커지고 클래스가 다양해지며 복잡해지면 점점 복잡해지고 결합도가 증가합니다. 이를 이벤트 시스템으로 만들면 장점이 뛰어납니다.

🚀 권장 사항:

작은 규모에서는 if 문도 가능하지만, 이벤트 시스템을 구축하면 코드의 확장성과 유지보수성을 높일 수 있음. 🎯

개요

이 문서는 Application 클래스에서 구현된 이벤트 시스템에 대한 상세 설명을 제공합니다. 이 시스템은 이벤트 큐와 이벤트 디스패처를 활용하여 이벤트를 효율적으로 관리할 수 있도록 설계되었습니다. 이를 통해 이벤트 핸들러 등록, 이벤트 처리 및 처리되지 않은 이벤트를 다룰 수 있습니다.

Application 클래스

Application 클래스는 애플리케이션의 주요 진입점 역할을 합니다. 초기화, 이벤트 처리, 업데이트, 렌더링 및 종료를 관리합니다.

클래스 선언

class Application
{
		// ...
		
private:
    bool mbLoaded;
    bool mbRunning;
    std::unique_ptr<graphics::GraphicDevice_DX11> mGraphicDevice;

    Window mWindow;
    
    // 이벤트 큐
    EventQueue mEventQueue;
};

주요 메서드

이벤트 큐 시스템

EventQueue 클래스는 이벤트를 큐에 저장하고 처리하는 역할을 합니다.