πŸ“† λ‚ μ§œ

2023/12/21(λͺ©)

πŸ“šμ±•ν„°

μ‹±κΈ€ μŠ€λ ˆλ“œ μžλ°”μŠ€ν¬λ¦½νŠΈ


πŸ‘¨πŸ»β€πŸ’» ν•™μŠ΅ λ‚΄μš©

🎯 μ‹±κΈ€ μŠ€λ ˆλ“œλž€ 무엇인가

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ μ–Έμ–΄λΌλŠ” 말을 많이 듀어봀을 것이닀(?κΈˆμ‹œμ΄ˆλ¬Έ)
이것이 사싀인지 ν™•μΈν•˜κΈ° μœ„ν•΄μ„œλŠ” λ¨Όμ € μŠ€λ ˆλ“œμ— λŒ€ν•΄ μ•Œμ•„μ•Ό ν•œλ‹€.
κ³Όκ±°μ—λŠ” ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” λ‹¨μœ„κ°€ 였직 ν”„λ‘œμ„ΈμŠ€ λΏμ΄μ˜€λ‹€κ³  ν•œλ‹€.
ν”„λ‘œμ„ΈμŠ€(process) λž€ ν”„λ‘œκ·Έλž¨μ„ ꡬ동해
ν”„λ‘œκ·Έλž¨μ˜ μƒνƒœκ°€ λ©”λͺ¨λ¦¬μƒμ—μ„œ μ‹€ν–‰λ˜λŠ” μž‘μ—… λ‹¨μœ„λ₯Ό ν”„λ‘œμ„ΈμŠ€ λΌκ³ ν•œλ‹€.
즉, ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨ 싀행은 ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ°€μ§€κ³  κ·Έ ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€μ—μ„œ λͺ¨λ“  μž‘μ—…μ΄ 처리 λ˜λŠ” 것을 λ§ν•œλ‹€.
κ·ΈλŸ¬λ‚˜ μ†Œν”„νŠΈμ›¨μ–΄κ°€ 점차 λ³΅μž‘ν•΄μ§€λ©΄μ„œ ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ—μ„œ λ™μ‹œμ— μ—¬λŸ¬ 개의 λ³΅μž‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  ν•„μš”μ„±μ΄ μƒκ²Όλ‹€κ³ ν•œλ‹€.
ν•˜μ§€λ§Œ ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ—λŠ” ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ§Œμ΄ ν• λ‹Ήλ˜λ―€λ‘œ μ΄λŸ¬ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μ–΄λ €μ› λŠ”λ°,ν”„λ‘œμ„ΈμŠ€μ˜ 단점을 λ³΄μ™„ν•˜κ³ μž μž‘μ€ μ‹€ν–‰ λ‹¨μœ„κ°€ μƒκ²ΌλŠ”λ° 이것을
μŠ€λ ˆλ“œ(thread)라고 ν•œλ‹€. ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œλŠ” μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œλ₯Ό 생성할 수 있고, μŠ€λ ˆλ“œ λΌλ¦¬λŠ” λ©”λͺ¨λ¦¬λ₯Ό κ³΅μœ ν•  수 μžˆμ–΄ μ—¬λŸ¬ κ°€μ§€ μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•  수 μžˆλ‹€.ν”„λ‘œμ„ΈμŠ€μ˜ 단점을 μŠ€λ ˆλ“œλ‘œ λ³΄μ™„ν•¨μœΌλ‘œμ¨ λ™μ‹œ λ‹€λ°œμ μΈ μž‘μ—…μ„ μ²˜λ¦¬ν•  수 있게 λ˜μ—ˆλ‹€κ³ ν•œλ‹€.μ΄λŸ¬ν•œ μž₯점이 μžˆλŠ” μŠ€λ ˆλ“œμ—λ„ λ‚΄λΆ€μ μœΌλ‘œ μ²˜λ¦¬κ°€ λ³΅μž‘ν•˜λ‹€λŠ” 단점이 μžˆλ‹€. μŠ€λ ˆλ“œλŠ” ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œ λ™μ‹œμ— μ„œλ‘œ 같은 μžμ›μ— μ ‘κ·Όν•  수 μžˆλŠ”λ°,λ™μ‹œμ— μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ‹€ 보면 같은 μžμ›μ— λŒ€ν•΄ μ—¬λŸ¬ 번 μˆ˜μ •ν•˜λŠ” λ“± λ™μ‹œμ„± λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμ–΄ 이에 λŒ€ν•œ μ²˜λ¦¬κ°€ ν•„μš”ν•˜λ‹€.λ˜ν•œ 각각 λΆ„λ¦¬λ˜μ–΄μžˆλŠ” ν”„λ‘œμ„ΈμŠ€μ™€ λ‹€λ₯΄κ²Œ,
ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œκ°€ λ¬Έμ œκ°€ 생기면 같은 μžμ›μ„ κ³΅μœ ν•˜λŠ” λ‹€λ₯Έ μŠ€λ ˆλ“œμ—λ„
λ™μ‹œμ— λ¬Έμ œκ°€ λ°œμƒν•œλ‹€κ³  ν•œλ‹€.
κ·Έλ ‡λ‹€λ©΄ μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹±κΈ€ μŠ€λ ˆλ“œλΌλŠ” 것은 무엇을 μ˜λ―Έν• κΉŒ?
μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ˜ 싀행이 ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œμ—μ„œ 순차적으둜 μ΄λ£¨μ–΄μ§„λ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.
μ‹±κΈ€ μŠ€λ ˆλ“œλŠ” μ½”λ“œλ₯Ό ν•œ 쀄 ν•œ 쀄 μ‹€ν–‰ν•˜κ³  결과적으둜 ν•˜λ‚˜μ˜ μž‘μ—…μ΄ λλ‚˜κΈ° μ „κΉŒμ§€λŠ” 뒀이은 μž‘μ—…μ΄ 싀행도지 μ•ŠλŠ”λ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€κ³ ν•œλ‹€.
κ·Έλ ‡λ‹€λ©΄ λΉ„μŠ·ν•œ λ§₯락인 λΉ„λ™κΈ°λŠ” λ¬΄μ—‡μΌκΉŒ?
μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 비동기 ν•¨μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ“°λŠ” asyncλŠ” μ˜μ–΄λ‘œ asynchronous, 즉 λ™μ‹œμ— μΌμ–΄λ‚˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.
동기식과 λ‹€λ₯΄κ²Œ μš”μ²­ν•œ μ¦‰μ‹œ κ²°κ³Όκ°€ μ£Όμ–΄μ§€μ§€ μ•Šμ„ μˆ˜λ„ 있고, λ”°λΌμ„œ 응닡이 μ–Έμ œ μ˜¬μ§€λ„ μ•Œ 수 μ—†λ‹€. κ·ΈλŸ¬λ‚˜ μŠ€λ ˆλ“œμ™€ λΉ„μŠ·ν•˜κ²Œ μ—¬λŸ¬μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€.
ν•˜μ§€λ§Œ λ™κΈ°μ‹μœΌλ‘œ μž‘λ™ν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ„Έμƒμ—μ„œ μ–΄λ–»κ²Œ 비동기 μ½”λ“œλ₯Ό 처리 ν•  수 μžˆλŠ” κ²ƒμΌκΉŒ? λ°”λ‘œ 이벀트 λ£¨ν”„λΌλŠ” κ°œλ…μ„ μ΄ν•΄ν•˜κ³  μžˆμ–΄μ•Όν•œλ‹€.

➑️ λ‹€μŒ κΈ€μ—μ„œλŠ” 이벀트 루프에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄μž.

profile
β˜„οΈ

0개의 λŒ“κΈ€