netty 2

ํ†ฐ์บฃ VS ๋„คํ‹ฐ (๋„คํ‹ฐ ํŽธ)

์ด์ „ ๊ธ€์—์„œ ํ†ฐ์บฃ ์ปค๋„ฅํ„ฐ์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ํ†ฐ์บฃ์˜ Non-Blocking ๋ชจ๋ธ์— ๋Œ€ํ•œ ์˜คํ•ด์— ๋Œ€ํ•ด ์•Œ์•„๋ดค๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์—์„œ์˜ Non-Blocking ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Netty๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ? ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์— ๋จผ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ์˜ Non-Blocking ๋ฐฉ์‹์ด ์–ด๋–ค ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.    โ˜‘๏ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์—์„œ์˜ Blocking vs Non-Blocking๊ณผ Network I/OOS ์ปค๋„๋‚ด ์†Œ์ผ“ ๋ฒ„ํผ๋กœ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ž‘์—…์„ Network I/O๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋•Œ ์ปค๋„์— ์ฝ๊ณ  ์“ฐ๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ ์ฝœ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€์ ์—์„œ Blocking๊ณผ Non-Blocking ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰œ๋‹ค.  ๐Ÿ’  Blocking Bloc..

JAVA 2025.02.17

ํ†ฐ์บฃ VS ๋„คํ‹ฐ (ํ†ฐ์บฃ ํŽธ)

๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋Œ€์šฉ๋Ÿ‰์˜ ์š”์ฒญ์ด ๋ฐœ์ƒํ•  ๋•Œ ์„œ๋ฒ„์˜ CPU ์‚ฌ์šฉ๋ฅ ์ด ์ผ์ • ์ˆ˜์ค€์ด์ƒ์„ ๋„˜์ง€ ๋ชปํ•˜๊ณ  ์‘๋‹ต์ด ์ง€์—ฐ๋จ๊ณผ ๋™์‹œ์— Waiting ์ƒํƒœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋งค์šฐ ๋งŽ์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋Š” Spring MVC์™€ ํ†ฐ์บฃ์ด Blocking ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋˜ํ•œ ์ตœ๊ทผ MSA์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ Spring Cloud์—์„œ๋Š” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์ธ Tomcat์ด ์•„๋‹Œ  Netty๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด์— Non-Blocking ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” Netty ํ•™์Šต์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์„ ๋А๊ผˆ๊ณ  ์ด์™€ ๋™์‹œ์— Tomcat์— ๋Œ€ํ•ด์„œ๋„ ์กฐ๊ธˆ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ณ ์ž ํ–ˆ๋‹ค.   โ˜‘๏ธ ํ†ฐ์บฃ๋จผ์ € ํ†ฐ์บฃ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž. ํ†ฐ์บฃ์€ Spring์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋กœ..

JAVA 2025.02.10