λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ“š/γ„΄ JavaScript

[JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” '이벀트 기반', 'λ…ΌλΈ”λ‘œν‚Ή' 방식을 μ‚¬μš©ν•˜κ³  'μ‹±κΈ€ μŠ€λ ˆλ“œ' 언어이닀.

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ μ–Έμ–΄μ΄λ‹€. ν•˜μ§€λ§Œ μ‹€μ œ μ‚¬μš©μ‹œμ—λŠ” λ§Žμ€ μž‘μ—…μ΄ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” λ©€ν‹° μŠ€λ ˆλ“œμ²˜λŸΌ λ³΄μ΄λŠ”λ° μ™œ 그런 κ²ƒμΌκΉŒ? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ–΄λ–»κ²Œ 'λ™μ‹œμ„±(Concurrency)'을 μ§€μ›ν•˜λŠ” κ²ƒμΌκΉŒ? λ°”λ‘œ μ—¬κΈ°μ„œ λ“±μž₯ν•˜λŠ” κ°œλ…μ΄ μ΄λ²€νŠΈ 루프이닀.

πŸ”— 이벀트 기반(event-driven)μ΄λž€?

 

 

 

 μ΄λ²€νŠΈ κΈ°λ°˜μ΄λž€ μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•Œ 미리 지정해둔 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방식을 μ˜λ―Έν•œλ‹€.


 

 

β–ͺ 이벀트 루프

 μ΄λ²€νŠΈ λ°œμƒ μ‹œ ν˜ΈμΆœν•  콜백 ν•¨μˆ˜λ“€μ„ κ΄€λ¦¬ν•˜κ³ , 호좜된 콜백 ν•¨μˆ˜μ˜ μ‹€ν–‰ μˆœμ„œλ₯Ό κ²°μ •ν•œλ‹€. λͺ¨λ“  μ΄λ²€νŠΈκ°€ μ’…λ£Œλ  λ•Œ κΉŒμ§€ 이벀트 처리λ₯Ό μœ„ν•œ μž‘μ—…μ„ λ°˜λ³΅ν•˜λ―€λ‘œ 루프라고 λΆˆλ¦°λ‹€.

 μ½œ μŠ€νƒμ—μ„œ μ‹€ν–‰ 쀑인 것이 μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , 콜백 큐에 μž‘μ—…μ΄ μžˆλŠ”μ§€ ν™•μΈν•΄μ„œ 콜 μŠ€νƒμ΄ λΉ„μ—ˆλ‹€λ©΄ 콜백 큐 λ‚΄μ˜ μž‘μ—…μ„ 콜 μŠ€νƒμœΌλ‘œ μ΄λ™μ‹œμΌœ μ‹€ν–‰λ˜κ²Œ ν•œλ‹€.

 

β–ͺ 콜백 큐 : 이벀트 λ°œμƒ ν›„ ν˜ΈμΆœλ˜μ–΄μ•Ό ν•  콜백 ν•¨μˆ˜λ“€μ΄ λŒ€κΈ°ν•˜λŠ” 곡간이닀.

 

β–ͺ λ°±κ·ΈλΌμš΄λ“œ : 이벀트 λ¦¬μŠ€λ„ˆλ“€μ΄ λŒ€κΈ°ν•˜λŠ” 곡간이닀.

 

 


πŸ”— λ…ΌλΈ”λ‘œν‚Ή(non-blocking)μ΄λž€?

 

 λ…ΌλΈ”λ‘œν‚Ήμ΄λž€ 이전 μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ λ©ˆμΆ”μ§€ μ•Šκ³  λ‹€μŒ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방식을 μ˜λ―Έν•œλ‹€.

 

 


πŸ’‘ 같이 λ³΄λ©΄ 쒋을 Post

 

[JavaScript / 비동기 처리] AJAX / Callback, Promise, async, await

πŸ“Œ λ™κΈ°(Synchronous) ν”„λ‘œκ·Έλž˜λ° vs 비동기(Asynchronous) ν”„λ‘œκ·Έλž˜λ°  λ™κΈ° ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œκ°€ λ°˜λ“œμ‹œ μž‘μ„±λœ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ˜λŠ” 방식이닀.  λΉ„동기 ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œμ˜ μ²˜λ¦¬κ°€ μ™„λ£Œλ  λ•ŒκΉŒ

devjindev.tistory.com

 

ν”„λ‘œμ„ΈμŠ€(Process) vs μŠ€λ ˆλ“œ(Thread) 차이점

 ν”„λ‘œμ„ΈμŠ€λŠ” μ™„μ „νžˆ 독립적이기 λ•Œλ¬Έμ— μžμ›(μ½”λ“œ, 데이터, νž™, μŠ€νƒ)을 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ κ³΅μœ ν•˜μ§€ μ•ŠλŠ”λ‹€.  μŠ€λ ˆλ“œλŠ” λ³„λ„μ˜ μ‹€ν–‰ 흐름을 μœ μ§€ν•˜κΈ° μœ„ν•΄ μŠ€νƒλ§Œ λ…λ¦½μ μœΌλ‘œ μœ μ§€ν•˜κ³ , κ·Έ 이외

devjindev.tistory.com