유저가 발생시키는 이벤트 소스를 이벤트 타겟으로 받아오고 제약조건에 따라서 알맞은 리액션이 실행될 수 있도록 프로그램을 설계해야한다.
다수의 이벤트가 한번에 발생하는 작업의 경우 다른 작업이 개입하면 안된다. 현재 실행되고 있는 원자성(atomicity)을 보존해줘야 한다. 수업에서 설계한 프로그램에서는 state를 enum으로 만들어주고 if문을 활용하여 다른 작업이 개입하는 경우가 발생하지 않도록 설계했다.
private enum EDrawingState {
eIdle, // Idle : 프로세스가 실행하고 있지 않은 상태
e2PointDrawing,
eNPointDrawing
}