오늘은 Node.js 학습 모험의 6일차였으며 EventEmitter 클래스의 매혹적인 세계를 탐구했습니다. 제가 이 과정을 탐색한 방법과 그 과정에서 배운 내용은 다음과 같습니다.
EventEmitter 클래스는 Node.js의 이벤트 관리를 위한 초석입니다. 이벤트를 생성, 방출 및 처리하는 강력한 방법을 제공하므로 이벤트 기반 아키텍처에 의존하는 애플리케이션을 구축하는 데 필수적입니다.
EventEmitter의 주요 메소드:
작업: 맞춤 이벤트 및 핸들러를 만듭니다.
저는 EventEmitter를 확장하고 사용자 정의 이벤트 핸들러를 추가하는 클래스를 만드는 것부터 시작했습니다. 제가 한 일에 대한 단계별 설명은 다음과 같습니다.
EventEmitter를 확장하는 DataProcessor라는 클래스를 만들었습니다. 이 클래스에는 데이터 처리를 시뮬레이션하기 위한 processData 메소드가 있습니다.
const EventEmitter = require('events'); class DataProcessor extends EventEmitter { processData(data) { this.emit('start'); // Simulate data processing setTimeout(() => { this.emit('data', data); this.emit('end'); }, 1000); } }
그런 다음 DataProcessor 클래스를 초기화하고 'start', 'data' 및 'end'라는 세 가지 이벤트에 대한 핸들러를 정의했습니다.
// Initialization const processor = new DataProcessor(); // Event handlers processor.on('start', () => console.log('Processing started...')); processor.on('data', (data) => console.log(`Processing data: ${data}`)); processor.on('end', () => console.log('Processing completed.'));
마지막으로 processData 메서드를 호출하여 이벤트가 어떻게 작동하는지 확인했습니다.
processor.processData('Some data');
사건의 순서를 지켜보는 것은 깨달음을 얻었습니다. 콘솔 출력에는 프로세스 시작부터 데이터 처리 및 완료까지의 흐름이 표시되었습니다.
과제: 이벤트를 활용한 알림 시스템을 개발합니다.
독립적인 작업을 위해 Notifier 클래스를 디자인했습니다. 제가 접근한 방법은 다음과 같습니다.
const EventEmitter = require('events'); class Notifier extends EventEmitter { constructor() { super(); this.notifications = []; } addNotification(notification) { if (typeof notification !== 'string') { this.emit('error', 'Notification must be a string'); return; } this.notifications.push(notification); this.emit('notify', notification); if (this.notifications.length > 0) { this.emit('complete'); } } }
'알림', '오류', '완료'에 대한 핸들러를 설정합니다.
const notifier = new Notifier(); notifier.on('notify', (message) => console.log(`New notification: ${message}`)); notifier.on('error', (err) => console.error(`Error: ${err}`)); notifier.on('complete', () => console.log('All notifications processed.'));
알림을 추가하고 잠재적인 오류를 처리하면서 시스템을 테스트했습니다.
notifier.addNotification('This is your first notification.'); notifier.addNotification('This is your second notification.'); notifier.addNotification(123); // This should trigger an error
알림 처리, 오류 보고, 완료 이벤트가 발생하는 모습을 보니 만족스러웠습니다.
오늘 EventEmitter를 탐색하면서 Node.js의 이벤트 중심 프로그래밍에 대한 이해가 상당히 깊어졌습니다. 사용자 정의 이벤트 및 핸들러를 구현하는 것은 이벤트 흐름 방식과 이를 효과적으로 관리할 수 있는 방법을 확인할 수 있는 좋은 방법이었습니다. 독립적인 작업을 통해 이러한 개념이 더욱 강화되었고 알림 시스템 구축에 대한 실무 경험을 얻을 수 있었습니다.
이 여행을 계속하고 다음 날에는 어떤 일이 벌어질지 기대됩니다!
ChatGPT에서 만든 모든 강의는 https://king-tri-ton.github.io/learn-nodejs에서 확인할 수 있습니다
위 내용은 AI를 통해 며칠 만에 Node.js 배우기 - 6일차의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!