Etc/Node.js

[Node.js] 1. λ…Έλ“œ μ‹œμž‘ν•˜κΈ°

z.zzz 2023. 3. 8. 19:47
πŸ“’ 본격적으둜 μ‹€μŠ΅μ— λ“€μ–΄κ°€κΈ° μ „, λ…Έλ“œμ˜ νŠΉμ§•μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž

1. μ„œλ²„λ‘œ 많이 쓰인닀

- μ„œλ²„λž€ 데이터λ₯Ό μ €μž₯ν•˜κ³ , ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 데이터λ₯Ό λ°›μ•„μ˜€λŠ” 곳을 μ˜λ―Έν•œλ‹€.
- μš”μ²­μ— λŒ€ν•œ μ‘λ‹΅λ§Œ ν•˜λŠ” 것이 μ•„λ‹Œ, λ‹€λ₯Έ μ„œλ²„μ— μš”μ²­μ„ ν•  μˆ˜λ„ μžˆλ‹€.

2. μžλ°”μŠ€ν¬λ¦½νŠΈ λŸ°νƒ€μž„μ΄λ‹€

- λŸ°νƒ€μž„μ΄λž€ νŠΉμ • μ–Έμ–΄λ‘œ λ§Œλ“  ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  수 μžˆλŠ” ν™˜κ²½μ„ μ˜λ―Έν•œλ‹€. 즉, λ…Έλ“œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹€ν–‰κΈ°λ‹€.

3. 이벀트 기반 λ°©μ‹μœΌλ‘œ λ™μž‘ν•œλ‹€

- μ΄λ²€νŠΈκ°€ λ°œμƒμ‹œ 미리 지정해둔 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방식을 이벀트 기반이라고 ν•œλ‹€. μ΄λ•Œ μž‘μ—…μ„ 미리 μ§€μ •ν•˜λŠ” κ±Έ '이벀트 λ¦¬μŠ€λ„ˆμ— 콜백 ν•¨μˆ˜λ₯Ό λ“±λ‘ν•œλ‹€'κ³  ν‘œν˜„ν•œλ‹€.
- 예) λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„λ•Œ 경고창을 λ„μš°λ €λ©΄ β‘  클릭 이벀트 λ¦¬μŠ€λ„ˆμ— 경고창을 λ„μš°λŠ” 콜백 ν•¨μˆ˜λ₯Ό λ“±λ‘ν•œλ‹€. β‘‘ 클릭 μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•Œλ§ˆλ‹€ μ½œλ°±ν•¨μˆ˜μ˜ μ‹€ν–‰μœΌλ‘œ 경고창이 λœ¬λ‹€.
- λ°œμƒν•œ μ΄λ²€νŠΈκ°€ μ—†κ±°λ‚˜ λ°œμƒν•œ 이벀트λ₯Ό μ „λΆ€ μ²˜λ¦¬ν–ˆλ‹€λ©΄, λ…Έλ“œλŠ” λ‹€μŒ μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•ŒκΉŒμ§€ λŒ€κΈ°ν•œλ‹€.
- 이벀트 기반 λͺ¨λΈμ—μ„  이벀트 λ£¨ν”„λΌλŠ” κ°œλ…μ΄ μ‘΄μž¬ν•˜λ©°, 이벀트 λ£¨ν”„λž€ μ—¬λŸ¬ μ΄λ²€νŠΈκ°€ λ™μ‹œμ— λ°œμƒν–ˆμ„ λ•Œ μ–΄λ–€ μˆœμ„œλ‘œ 콜백 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν• μ§€λ₯Ό νŒλ‹¨ν•˜λŠ” 것이닀.

4. λ…ΌλΈ”λ‘œν‚Ή λ°©μ‹μœΌλ‘œ I/O μž‘μ—…μ„ μ²˜λ¦¬ν•œλ‹€

- 이전 μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ λŒ€κΈ°ν•˜μ§€ μ•Šκ³ , λ‹€μŒ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 것을 λ…ΌλΈ”λ‘œν‚Ήμ΄λΌκ³  ν•œλ‹€.
- λ…Έλ“œλŠ” I/O μž‘μ—…μ„ λ°±κ·ΈλΌμš΄λ“œλ‘œ λ„˜κ²¨ λ™μ‹œμ— μ²˜λ¦¬ν•˜λ―€λ‘œ, λ™μ‹œμ— μ²˜λ¦¬ν•  수 μžˆλŠ” μž‘μ—…λ“€μ„ μ΅œλŒ€ν•œ λ¬Άμ–΄μ„œ λ°±κ·ΈλΌμš΄λ“œλ‘œ λ„˜κΈ°λ©΄ 처리 μ‹œκ°„μ„ μ ˆμ•½ν•  수 μžˆλ‹€.
* λ…ΌλΈ”λ‘œν‚Ή ≠ λ™μ‹œ, λ…ΌλΈ”λ‘œν‚Ή β‰’ 비동기

5. μ‹±κΈ€ μŠ€λ ˆλ“œλ‹€

- μŠ€λ ˆλ“œκ°€ ν•˜λ‚˜μΈκ±Έ μ‹±κΈ€ μŠ€λ ˆλ“œλΌκ³  ν•œλ‹€.
- ν”„λ‘œμ„ΈμŠ€λž€ μš΄μ˜μ²΄μ œμ—μ„œ ν• λ‹Ήν•˜λŠ” μž‘μ—…μ˜ λ‹¨μœ„λ‘œ, ν”„λ‘œμ„ΈμŠ€ κ°„μ—” λ©”λͺ¨λ¦¬ λ“±μ˜ μžμ›μ„ κ³΅μœ ν•˜μ§€ μ•ŠλŠ”λ‹€. (λ…Έλ“œλ‚˜ μ›Ή λΈŒλΌμš°μ € 같은 ν”„λ‘œκ·Έλž¨μ€ κ°œλ³„μ μΈ ν”„λ‘œμ„ΈμŠ€)
- μŠ€λ ˆλ“œλž€ ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ μ‹€ν–‰λ˜λŠ” νλ¦„μ˜ λ‹¨μœ„λ‘œ, ν”„λ‘œμ„ΈμŠ€λŠ” μŠ€λ ˆλ“œλ₯Ό μ—¬λŸ¬κ°œ 생성해 μ—¬λŸ¬ μž‘μ—…μ„ λ™μ‹œμ— μ²˜λ¦¬ν•  γ…… γ…œμžˆλ‹€. μŠ€λ ˆλ“œλ“€μ€ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›μ„ κ³΅μœ ν•œλ‹€.
* I/O μž‘μ—… μ²˜λ¦¬μ—” λ©€ν‹° μŠ€λ ˆλ”©λ³΄λ‹€ λ©€ν‹° ν”„λ‘œμ„Έμ‹±μ΄ νš¨μœ¨μ μ΄λ―€λ‘œ λ…Έλ“œλŠ” λ©€ν‹° ν”„λ‘œμ„Έμ‹±μ„ 많이 ν•œλ‹€.