๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

blocking non-blocking1

Java NIO / ๋…ผ๋ธ”๋กœํ‚น / ๋น„๋™๊ธฐ ๋ฐฉ์‹ IO์™€ NIO ์ž๋ฐ”์—์„œ ์†Œ์ผ“ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” io ๋˜๋Š” nio ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์ž๋ฐ” 4๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ์ž…์ถœ๋ ฅ์ด๋ผ๋Š” ๋œป์—์„œ java.nio ํŒจํ‚ค์ง€, ์ž๋ฐ” 7๋ถ€ํ„ฐ ๋„คํŠธ์›Œํฌ ์ง€์›์„ ๊ฐ•ํ™”ํ•˜์—ฌ java.nio ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ–ˆ๋‹ค. IO๋Š” ์ŠคํŠธ๋ฆผ(Stream)์ด๋ผ๋Š” ๋‹จ๋ฐฉํ–ฅ ํ†ต๋กœ๋กœ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ์™€ ํ†ต์‹  NIO๋Š” ์ฑ„๋„(Channel)์ด๋ผ๋Š” ์–‘๋ฐฉํ–ฅ ํ†ต๋กœ๋กœ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ์™€ ํ†ต์‹  โ–ถ NIO๋Š” ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ํ•˜๋‚˜์˜ ํ†ต๋กœ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. IO๋Š” ์ž…์ถœ๋ ฅ ์‹œ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ, ํ•„ํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์žˆ์Œ NIO๋Š” ์ž…์ถœ๋ ฅ ์‹œ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•จ โ–ถ NIO๋Š” ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…์ถœ๋ ฅ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. IO๋Š” ๋ธ”๋กœํ‚น ๋ฐฉ์‹๋งŒ ์ง€์›ํ•˜์—ฌ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์—†์• ๋Š”๋ฐ ํฐ ๋น„์šฉ์ด ๋“ค์–ด๊ฐ NIO๋Š” ๋ธ”๋กœํ‚น/๋…ผ๋ธ”๋กœํ‚น ๋ฐฉ์‹ ์ค‘ .. 2022. 3. 14.