Node.js에서 Event Emitters 이해하기: 사용 시기와 방법

발행: (2025년 12월 24일 오후 11:09 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Node.js에서 이벤트 이터레이터(Event Emitters)란?

Node.js의 이벤트 이터레이터는 비동기·이벤트 기반 아키텍처의 핵심 요소입니다. 이름이 지정된 이벤트를 발생시키고, 등록된 콜백 함수로 해당 이벤트에 응답함으로써 애플리케이션의 서로 다른 부분 간에 통신할 수 있게 해줍니다.

이벤트 이터레이터는 어떻게 동작하나요?

  • Node.js는 events 모듈과 EventEmitter 클래스를 제공합니다.
  • EventEmitter를 상속받은 객체는 이벤트 리스너를 등록하고 비동기적으로 이벤트를 발생시킬 수 있습니다.
  • 리스너 함수는 이벤트가 발생할 때마다 실행됩니다.

예시: 기본 사용법

const EventEmitter = require('events');
const emitter = new EventEmitter();

// Registering an event listener
emitter.on('greet', (name) => {
    console.log(`Hello, ${name}!`);
});

// Emitting the event
emitter.emit('greet', 'Alice'); // Output: Hello, Alice!

일반적인 사용 사례: 커스텀 로깅 시스템

다양한 컴포넌트에서 공통으로 사용할 로깅 솔루션이 필요하다고 가정해봅시다.

  • 로그가 필요할 때마다 이벤트를 발생시키는 로거를 만들고,
  • 해당 로그 이벤트를 처리하거나 저장하는 리스너를 연결합니다.

예시

const EventEmitter = require('events');

class Logger extends EventEmitter {
    log(message) {
        this.emit('log', message);
    }
}

const logger = new Logger();

// Listen for log events
logger.on('log', (msg) => {
    console.log(`Log: ${msg}`);
});

logger.log('Server started'); // Output: Log: Server started

요약

  • 이벤트 이터레이터를 사용하면 Node.js 애플리케이션의 서로 다른 부분 간에 느슨하게 결합된 통신을 구현할 수 있습니다.
  • 커스텀 이벤트, 스트리밍 API, 모듈형 시스템 구축 등에 이상적입니다.

EventEmitter를 확장하거나 재사용하여 강력하고 모듈화된 Node.js 애플리케이션을 만들 수 있습니다.

Back to Blog

관련 글

더 보기 »

JavaScript 제너레이터: 코드의 'Pause' 버튼

소개 표준 JavaScript 함수에 대해 이해하고 있다면, 실행 완료 규칙(run‑to‑completion rule)을 알고 있을 것입니다: 일반 함수가 실행을 시작하면, 아무것도 그것을 멈출 수 없습니다 u...

JavaScript 함수의 핵심 전제

이것이 JavaScript의 함수인가요? javascript function fiveSquared { return 5 5; } 기술적으로는 맞습니다. 하지만 fiveSquared는 실제 세계에서 사용되는 함수가 갖는 재사용성을 결여하고 있습니다…

JS에서 함수, 객체 및 배열.

함수 함수는 특정 작업을 수행하고 재사용할 수 있는 코드 블록입니다. JavaScript에서 함수를 정의하는 방법은 세 가지가 있습니다: 1. Function D...