더북(TheBook)

1.1.5 이벤트 이미터

이벤트 이미터는 비동기 이벤트 기반 아키텍처에서 널리 사용되는 기술 방식입니다. 예를 들어 DOM은 아마 가장 널리 알려진 이벤트 이미터일 겁니다. Node.js와 같은 서버에서는 특정 종류의 객체가 주기적으로 함수를 호출하는 이벤트를 생성합니다. Node.js에서 EventEmitter 클래스는 웹소켓 I/O 또는 파일 읽기/쓰기와 같은 API를 구현하여 디렉터리를 순회하는 중에 관심 있는 파일을 발견하면 객체가 해당 파일을 참조하는 이벤트를 발생시켜 추가 코드를 실행하게 합니다.

이 API를 조금 더 살펴보고자 간단한 객체를 구현해 보겠습니다. 더하기(add)와 빼기(subtract) 같은 이벤트를 발생하는 간단한 계산기 객체를 생각해 봅시다. 그림 1-6에서 보는 바와 같이 해당 객체는 모든 사용자 정의 로직 안에서 사용할 수 있습니다.

▲ 그림 1-6 여기서 노드 이미터 객체는 add와 subtract라는 두 이벤트가 발생하는 간단한 계산기 객체를 나타낸다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.