Front-end_dev

이벤트 방식의 프로그래밍. 본문

ES6/App(project)

이벤트 방식의 프로그래밍.

Eat2go 2017. 6. 6. 00:13

군대가기전에 썻던 앵귤러(프레임워크)도그렇고 현재 공부하고있는 물리엔진(프레임워크)에서도 그렇고 프레임워크나 라이브러리에서 이벤트는 빠지질 않는 것 같습니다.



그래서 한 번 구현해봤습니다.


우선 먼저 이게 어떻게 돌아갈까 생각을 해봤는데,

첫번째로 생각해본게 기존의 동작을 오버라이딩하는 것 입니다. 근데 이건 매번 check해야하므로 이벤트방식의 프로그래밍과는 전혀 거리가 멉니다. 

예를들면, LED가 1개 켜져있는데 스위치를 누르면 LED가 꺼지는 프로그램이 있습니다. 여기서 하드웨어프로그래머는 2가지방법이있겠죠. 1번쨰는 단순 무한루프안에 핀값(스위치가눌렸는지안눌렸는지)을 체크하는 구문을 넣는거고, 

2번째는 인터럽트를 사용해서 값을 체크하는거죠

여기서 차이점은 값을 계속해서 체크하냐안하냐의 차이입니다. 따라서 첫번째로 생각해본거는 잘못된 생각인걸 알게됬고,



두번째로 생각해본게, 가상의 틀을 만드는것입니다. 가상의 틀을 만들어놓고 이벤트를 발생시키고싶을때 메세지방식으로 emit떄리고 이벤트를 캐치하고싶을떄 메세지방식으로 on때리고... 그니까 가상의 틀안에서 어떠한 규칙을 만들어놓고 그 틀 안에서 프로그래밍 하는 거죠. 즉, 혼자 쌩쑈하는듯한(?)

그래서 이러한 방법으로 구현했습니다. 





소스코드 : https://github.com/hyunsooda/event-based-programming


깃헙에서 바로다운받아서 실습할수 있긴 하지만 크롬에서 돌린다면 크롬정책때문에 직접 서버열어야 웹워커(코드에 웹워커가포함되있음)를 쓸수잇기때문에,  서버를열어야 실습할 수 있습니다.