[JS] ๐Ÿ“ ๋ธ”๋กœํ‚น/๋…ผ๋ธ”๋กœํ‚น vs. ๋™๊ธฐ/๋น„๋™๊ธฐ โญ

Mec.D's Blogยท2022๋…„ 5์›” 31์ผ
0

JS ES6+ ๋น„๊ณต์‹ ๋…ธํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
6/17
post-thumbnail

โœ‹ ๋ธ”๋กœํ‚น๊ณผ ๋…ผ๋ธ”๋กœํ‚น

ํ”„๋กœ์„ธ์Šค ์ œ์–ด๊ถŒ์˜ ๋ฐ˜ํ™˜ ์‹œ์ ๊ณผ ๊ด€๋ จ๋œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

๐Ÿ’ก ๋ธ”๋กœํ‚น (Blocking)

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ œ์–ด๊ถŒ์„ ๋ฐ˜ํ™˜๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋Œ€๊ธฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ๋…ผ๋ธ”๋กœํ‚น (Non-blocking)

ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ์ œ์–ด๊ถŒ์„ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ๊ฐœ๋…

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉย  I/O


๐Ÿ”™ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ

๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ์˜ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ๊ฐ€? ์— ๊ด€ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

๐Ÿ’ก ๋™๊ธฐ (Sync)

ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜์˜ ์ž‘์—… ์™„๋ฃŒ ์—ฌ๋ถ€๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ๋น„๋™๊ธฐ (Async)

ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„ ์ž‘์—… ์™„๋ฃŒ ์—ฌ๋ถ€๋ฅผ ์ถ”์ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ ํ๋ฆ„์ด ๋’ค์ฃฝ๋ฐ•์ฃฝ์ด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿšจ ์ฃผ์˜

"๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ์— ๊ด€์‹ฌ์ด ์žˆ๋Š”์ง€?" ๋ณด๋‹ค
"๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€?" ๋ฅผ ๋ด์•ผํ•˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

์ด์œ  : ์ˆœ์ฐจ์ ์ธ ํ๋ฆ„์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ ํ•ด์•ผํ•˜๋Š” ์ž‘์—…์€ ๋ฐ˜๋“œ์‹œ ๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ์ž‘์—…์€ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์ƒ ์œ ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


์กฐํ•ฉํ‘œ

๋™๊ธฐ๋น„๋™๊ธฐ
๋ธ”๋กœํ‚น์œ„์—์„œ ์•„๋ž˜๋กœ ์ง 
์ผ๋ฐ˜์ ์ธ ์ฝ”๋“œ
์‹ค์ˆ˜
Node.js + MySQL
Java + JDBC
๋…ผ๋ธ”๋กœํ‚น๊ฒŒ์ž„ ๋กœ๋“œ์œจ ํ‘œ์‹œ
Polling (์ค‘๊ฐ„์ค‘๊ฐ„ ์ƒํƒœ ํ™•์ธ)
AJAX
๋น„๋™๊ธฐ ์ฝœ๋ฐฑ
์นดํŽ˜ ์ง„๋™๋ฒจ
profile
๊ธฐ์ˆ ๋กœ ๋” ๋‚˜์€ ๋ฏธ๋ž˜๋ฅผ ๋””์ž์ธํ•˜๋Š” ๊ฐœ๋ฐœ์ž MEC:D ์ž…๋‹ˆ๋‹ค

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