ํ๋ก์ธ์ค ์ ์ด๊ถ์ ๋ฐํ ์์ ๊ณผ ๊ด๋ จ๋ ๊ฐ๋ ์ ๋๋ค.
๐ก ๋ธ๋กํน (Blocking)
ํจ์๋ฅผ ํธ์ถํ๋ฉด ์ ์ด๊ถ์ ๋ฐํ๋ฐ์ ๋๊น์ง ๋ค๋ฅธ ์์ ์ ์ํํ์ง ๋ชปํ๊ณ ๋๊ธฐํด์ผ ํฉ๋๋ค.
๐ก ๋ ผ๋ธ๋กํน (Non-blocking)
ํธ์ถ๋ ํจ์๊ฐ ์ ์ด๊ถ์ ๋ฐ๋ก ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค๋ฅธ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋ฉํฐ์ค๋ ๋ฉ
ย I/O
๋ฐํ ๊ฒฐ๊ณผ์ ์ฒ๋ฆฌ ํ๋ฆ์ ์์ธก ๊ฐ๋ฅํ๊ฐ? ์ ๊ดํ ๊ฐ๋ ์ ๋๋ค.
๐ก ๋๊ธฐ (Sync)
ํธ์ถํ ํจ์์ ์์ ์๋ฃ ์ฌ๋ถ๋ฅผ ์ถ์ ํฉ๋๋ค.
๋ฐํ ๊ฒฐ๊ณผ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๐ก ๋น๋๊ธฐ (Async)
ํจ์ ํธ์ถ ํ ์์ ์๋ฃ ์ฌ๋ถ๋ฅผ ์ถ์ ํ์ง ์์ต๋๋ค.
๋ฐํ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ ํ๋ฆ์ด ๋ค์ฃฝ๋ฐ์ฃฝ์ด ๋ฉ๋๋ค.
"๋ฐํ ๊ฒฐ๊ณผ์ ๊ด์ฌ์ด ์๋์ง?" ๋ณด๋ค
"๋ฐํ ๊ฒฐ๊ณผ์ ๊ด์ฌ์ด ์๋ ์ด์ ๊ฐ ๋ฌด์์ธ์ง?" ๋ฅผ ๋ด์ผํ๋ ๊ฐ๋
์
๋๋ค.
์ด์ : ์์ฐจ์ ์ธ ํ๋ฆ์ ๋ฐ๋ผ ์ฒ๋ฆฌ ํด์ผํ๋ ์์ ์ ๋ฐ๋์ ๋๊ธฐ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ์์ ์ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ์ฑ๋ฅ ์ ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๊ธฐ | ๋น๋๊ธฐ | |
---|---|---|
๋ธ๋กํน | ์์์ ์๋๋ก ์ง ์ผ๋ฐ์ ์ธ ์ฝ๋ | ์ค์ Node.js + MySQL Java + JDBC |
๋ ผ๋ธ๋กํน | ๊ฒ์ ๋ก๋์จ ํ์ Polling (์ค๊ฐ์ค๊ฐ ์ํ ํ์ธ) | AJAX ๋น๋๊ธฐ ์ฝ๋ฐฑ ์นดํ ์ง๋๋ฒจ |