Node.js - 12์ผ์ฐจ ๐ŸŒท

์ด์ •์ธยท2023๋…„ 10์›” 5์ผ
0

Node.js

๋ชฉ๋ก ๋ณด๊ธฐ
12/21


๐ŸŒท 12์ผ์ฐจ (23_10_03) ๐ŸŒท

โœ…์Šค๋ ˆ๋“œํ’€๊ณผ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ
โœ…์—๋Ÿฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ


๐Ÿ“Œ์Šค๋ ˆ๋“œํ’€๊ณผ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ

โœจ์Šค๋ ˆ๋“œํ’€

  • fs, crypto, zlib ๋ชจ๋“ˆ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋™์‹œ์— ์‹คํ–‰๋จ
  • ์Šค๋ ˆ๋“œํ’€์ด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•ด์คŒ
  • node ์—์„œ๋Š” 4๊ฐœ๊ฐ€ ์ตœ๋Œ€
  • ๋ณธ์ธ ์ฝ”์–ด์— ๋งž๊ฒŒ ์‹คํ–‰๋˜๋„๋ก ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์ • ๊ฐ€๋Šฅ

โœจ์ปค์Šคํ…€ ์ด๋ฒคํŠธ

  • ์—ฌ๋Ÿฌ ํŒŒ์ผ๊ฐ„์˜ ๋™์ž‘ ๊ณต์œ  ๊ฐ€๋Šฅ
// ์ปค์Šคํ…€ ์ด๋ฒคํŠธ ์„ ์–ธ
const EventEmitter = require('events');
const myEvent = new EventEmitter();

// ์ด๋ฒคํŠธ ๋“ฑ๋ก
myEvent.addListener('event1', () => {

	console.log('์ด๋ฒคํŠธ 1');

});
	// ์ด๋ฒคํŠธ 2๋Š” ์ฝœ๋ฐฑ์ด 2๊ฐœ
myEvent.on('event2', () => {

	console.log('์ด๋ฒคํŠธ 2');

});
myEvent.on('event2', () => {

	console.log('์ด๋ฒคํŠธ 2 ์ถ”๊ฐ€');

});

// ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๊ณ  ๋‹ค์Œ์—๋Š” ์•ˆ๋ถˆ๋ฆผ
myEvent.once('event3', () => {

	console.log('์ด๋ฒคํŠธ 3');

});

// ์ด๋ฒคํŠธ ํ˜ธ์ถœ				// ์ถœ๋ ฅ
myEvent.emit('event1');	   // ์ด๋ฒคํŠธ 1	
myEvent.emit('event2');	   // ์ด๋ฒคํŠธ 2
						   // ์ด๋ฒคํŠธ 2 ์ถ”๊ฐ€

myEvent.emit('event3');	   // ์ด๋ฒคํŠธ 3
myEvent.emit('event3');    //			--> once์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ๋งŒ ์ถœ๋ ฅ๋จ

myEvent.on('event4', () => {

	console.log('์ด๋ฒคํŠธ 4');

});

// ์ด๋ฒคํŠธ ์ง€์šฐ๊ธฐ
// event4์— ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ๋ชจ๋“  ์ฝœ๋ฐฑ ์‚ญ์ œ๋จ
myEvent.removeAllListeners('์ด๋ฒคํŠธ 4');

myEvent.emit('event4')		// 		--> ์‹คํ–‰ ์•ˆ๋จ

// ํ•˜๋‚˜์˜ ์ฝœ๋ฐฑํ•จ์ˆ˜ ์ง€์šฐ๊ธฐ
const listener = () => {

	console.log('์ด๋ฒคํŠธ 5');

});
myEvent.on('event5', listener);
myEvent.removeListener('event5', listener);
myEvent.emit('event5');		//       --> ์‹คํ–‰ ์•ˆ๋จ

// ํ•ด๋‹นํ•˜๋Š” ์ด๋ฒคํŠธ์— ๋“ฑ๋ก๋˜์–ด์žˆ๋Š” ์ฝœ๋ฐฑ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ
console.log(myEvent.listenerCount('event2'));  // 2

๐Ÿ“Œ์—๋Ÿฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ

โœจ์˜ˆ์™ธ(Exception)

  • ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ ์—๋Ÿฌ
  • ๋…ธ๋“œ ์Šค๋ ˆ๋“œ๋ฅผ ๋ฉˆ์ถค
  • ๋…ธ๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋ผ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฉˆ์ถ˜๋‹ค๋Š” ๊ฒƒ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉˆ์ถ”๋Š” ๊ฒƒ
  • ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋Š” ํ•„์ˆ˜
  • ๊ธฐ๋ณธ์ ์œผ๋กœ try catch ๋ฌธ์œผ๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

  • ๋…ธ๋“œ ๋น„๋™๊ธฐ ๋ฉ”์„œ๋“œ์˜ ์—๋Ÿฌ๋Š” ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋จ
    -> ์ฝœ๋ฐฑ ํ•จ์ˆ˜์—์„œ ์—๋Ÿฌ ๊ฐ์ฒด ์ œ๊ณต / ๋…ธ๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉˆ์ถ”์ง€๋Š” ์•Š์Œ

  • ํ”„๋กœ๋ฏธ์Šค์˜ ์—๋Ÿฌ๋Š” ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋จ
    -> ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด ๋™์ž‘์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ์Œ (catch ๋ถ™์—ฌ์ค˜์•ผ ํ•จ)
  • ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ ์‚ฌ์šฉ
    -> ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ๋™์ž‘ ๋ณด์žฅ๋˜์ง€ ์•Š์Œ
    -> ๋ณต๊ตฌ ์ž‘์—…์šฉ์œผ๋กœ ์“ฐ๋Š” ๊ฒƒ์€ ๋ถ€์ ํ•ฉ
    -> ์—๋Ÿฌ ๋‚ด์šฉ ๊ธฐ๋ก ์šฉ์œผ๋กœ๋งŒ ์“ฐ๋Š” ๊ฒŒ ์ข‹์Œ

profile
๋‘‰์ด๋‹

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด