[๊ทธ๋ฆผ์ผ๋ก์ดํดํ๋] ๋๊ธฐ(sync) ๋น๋๊ธฐ(async)์ ๊ฐ๋ ์ ๋ํ ๊ฐ์ฅ ์ง๊ด์ ์ธ ์ดํด
์์ฃผ ์ฝ๊ฒ ๋๊ธฐ ๋น๋๊ธฐ์ ๊ฐ๋ ์ ์ดํดํ ์ ์๋ 19๋ถ์ ๋์ ๊ฐ์์ ๋๋ค.
์๊ฐ์ 2,590๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

์ถ๊ฐ์ ์ธ 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
๊ณ ๋ง์ต๋๋ค. :)






