์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

[๊ทธ๋ฆผ์œผ๋กœ์ดํ•ดํ•˜๋Š”] ๋™๊ธฐ(sync) ๋น„๋™๊ธฐ(async)์˜ ๊ฐœ๋…์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์ง๊ด€์ ์ธ ์ดํ•ด

์•„์ฃผ ์‰ฝ๊ฒŒ ๋™๊ธฐ ๋น„๋™๊ธฐ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” 19๋ถ„์ •๋„์˜ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

(4.9) ์ˆ˜๊ฐ•ํ‰ 181๊ฐœ

์ˆ˜๊ฐ•์ƒ 2,590๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

Thumbnail
์•จ๋Ÿฐ(Allen)๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

์ถ”๊ฐ€์ ์ธ Blocking / Non-Blocking์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ

์•ˆ๋…•ํ•˜์„ธ์š”! ์•จ๋Ÿฐ์ž…๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์งง๊ฒŒ ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜์—ˆ๋Š”๋ฐ, ๋งŽ์€ ๋„์›€ ๋˜์…จ์—ˆ๋‚˜ ๋ชจ๋ฅด๊ฒ ๋„ค์š”! ๊ทธ๋ž˜๋„ ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ๋‹ค๊ณ  ์ข‹์€ ์ˆ˜๊ฐ•ํ‰๋“ค์„ ๋‚จ๊ฒจ์ฃผ์‹  ๋ถ„๋“ค์ด ๋งŽ์•„์„œ, ์ˆ˜์—…์„ ๋งŒ๋“ค์–ด ๋ณด๊ธธ ์ž˜ํ–ˆ๋‹ค๊ณ  ๋งŽ์ด ๋А๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ^^

๋‹ค๋ฆ„์ด ์•„๋‹ˆ์˜ค๋ผ, ๊ฐ€๋”์”ฉ ๋™๊ธฐ ๋น„๋™๊ธฐ ๊ฐœ๋…์ด์™ธ์—,

Blocking / Non-Blocking์˜ ๊ฐœ๋…์€ ๋ญ”๊ฐ€์š”? ์ด๋Ÿฐ ์งˆ๋ฌธ๋“ค์ด ์˜ฌ๋ผ์™€์„œ.. ํ˜น์‹œ๋‚˜ ์ฐธ๊ณ ํ•ด ๋ณด์‹ค ๋ถ„๋“ค์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด, ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์•„ ๋‚ด์šฉ์„ ๋‚จ๊ฒจ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ˆ˜์—… ๋‚ด์šฉ์„ ํ†ตํ•ด์„œ ๋ง์”€๋“œ๋ฆฐ ๋™๊ธฐ / ๋น„๋™๊ธฐ ๊ฐœ๋…์„ ๋จผ์ € ์ตํžˆ์‹œ๋Š” ๊ฒƒ์ด ๋‹น์—ฐํžˆ ์šฐ์„ ์ด๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค๊ณ ์š”. ์–ธ์–ด์— ๋”ฐ๋ผ์„œ๋Š” Blocking / Non-Blocking ๊ฐœ๋…์ด ์“ฐ์ด์ง€ ์•Š๋Š” ์–ธ์–ด๋“ค๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด ๋ถ€๋ถ„๋“ค์€ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ์–ธ์–ด์— ํ•ด๋‹น ๋‚ด์šฉ์ด ์กด์žฌํ•˜๋Š” ๊ฐœ๋…์ธ์ง€๋ฅผ ๋จผ์ € ์‚ดํŽด ๋ณด์…”์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ^^

๋„ค, ์–ด์จŒ๋“  Blocking / Non-Blocking ๊ฐœ๋…์ด ์“ฐ์ด๋Š” ์–ธ์–ด๋ผ๋ฉด ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•ด ๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๊ณ ์š”,


โ–ถ๏ธŽ Blocking / Non-Blocking
์€ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋กœ ๋ฆฌํ„ดํ•˜๋А๋ƒ ๋งˆ๋А๋ƒ๊ฐ€ ์ค‘์š”ํ•œ ๊ฐœ๋…

  1) Blocking - ์ฆ‰์‹œ ๋ฆฌํ„ดํ•˜์ง€ ์•Š์Œ (์ผ์„ ๋ชปํ•˜๊ฒŒ ๋ง‰์Œ)

  2) Non-Blocking - ์ฆ‰์‹œ ๋ฆฌํ„ด



โ–ถ๏ธŽ ๋™๊ธฐ / ๋น„๋™๊ธฐ๋Š” ์ž‘์—…์™„๋ฃŒ์—ฌ๋ถ€๋ฅผ ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜๊ฐ€ ์‹ ๊ฒฝ์“ธ ๊ฒƒ์ธ์ง€, ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜(callback)๊ฐ€ ์‹ ๊ฒฝ์“ธ ๊ฒƒ์ธ์ง€

  1) ๋™๊ธฐ - ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜๊ฐ€ ์ž‘์—…์™„๋ฃŒ ์‹ ๊ฒฝ์”€

  2) ๋น„๋™๊ธฐ - ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜(callbackํ•จ์ˆ˜)๊ฐ€ ์ž‘์—…์™„๋ฃŒ ์‹ ๊ฒฝ์”€


( ๋‹ค๋งŒ ์ด๋Ÿฐ ๊ฐœ๋…์ด ํ•ฉ์ณ์„œ Blocking & Async๋Š” ์–ด์ฐจํ”ผ ๋‹ค๋ฅธ ์ผ์„ ๋ชปํ•˜๋‹ˆ ์ผ๋ถ€๋Ÿฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.)



๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ  Blocking / Non-Blocking ๊ฐœ๋…์ด ์“ฐ์ด์ง€ ์•Š๋Š” ์–ธ์–ด๋“ค์—์„œ๋Š” ์ œ๊ฐ€ ์ˆ˜์—…์—์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ


๋™๊ธฐ๋Š” Blocking๊ณผ ๊ฒฐํ•ฉ๋œ ๊ฐœ๋…์œผ๋กœ, ๋น„๋™๊ธฐ๋Š” Non-Blocking๊ณผ ๊ฒฐํ•ฉ๋œ ๊ฐœ๋…์œผ๋กœ ์ƒ๊ฐํ•˜์‹œ๋ฉด ํŽธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ˜น์‹œ ๋‹ค๋ฅธ ๋ถ„์ด ๊ธ€๋กœ ์•„์ฃผ ์ž˜ ์จ๋†“์œผ์‹  ์ž๋ฃŒ๊ฐ€ ์žˆ์–ด ๋งํฌ๋„ ๋‹ฌ์•„๋“œ๋ฆฝ๋‹ˆ๋‹ค.^^

https://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/

https://siyoon210.tistory.com/147


๊ณ ๋ง™์Šต๋‹ˆ๋‹ค. :)

๋Œ“๊ธ€ 1
    ๋งˆ๋ฆฌ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์•ˆ๋…•ํ•˜์„ธ์š”. https://siyoon210.tistory.com/147 ์ด ๋ธ”๋กœ๊ทธ์˜ ์„ค๋ช…์ด ๋ณธ๋ฌธ์˜ ์„ค๋ช…๊ณผ ๋ชจ์ˆœ๋˜๋Š” ์ ๋“ค์ด ์ข€ ์žˆ๋Š”๋ฐ์š”. ํ•œ๋ฒˆ ์‚ดํŽด๋ณด์‹œ๊ณ , ๊ฒ€์ฆํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์œผ์‹ค๊นŒ์š”? ํŠนํžˆ ๋ธ”๋กœ๊ทธ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค 2 (Sync + Non Blocking)์—์„œ ์‚ฌ์› 1์˜ ์ผ์ด ๋๋‚  ๋•Œ ๊นŒ์ง€ ํŒ€์žฅ์ด ๋‹ค๋ฅธ ์ผ์„ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์•จ๋Ÿฐ๋‹˜์ด ์จ์ฃผ์‹  ๋ณธ๋ฌธ์—์„œ๋Š” ํ‘œ์‹œ๋œ ๋ฐ”๋กœ๋Š” ๋‹ค๋ฅธ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์œผ๋กœ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค 2์—์„œ ์‚ฌ์›1, ์‚ฌ์›2, ์‚ฌ์›3์—๊ฒŒ ํ•œ๊บผ๋ฒˆ์— ์ผ์„ ์‹œํ‚จ ํ›„ ํŒ€์žฅ์€ ๋˜ ๋‹ค๋ฅธ ์ผ์„ ํ•˜๋ฉด์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‚ฌ์› 1, ์‚ฌ์› 2, ์‚ฌ์› 3์˜ ์ผ์ด ๋‹ค ๋๋‚ฌ๋Š”์ง€ ํ™•์ธ์„ ํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌด๋ฃŒ