๐ฅ๏ธ ๋ฐฑ์๋63 ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ๋ค์ [ch.15] ํ์ค์ ์ถ๋ ฅ, ์ง๋ ฌํ ํ์ค์ ์ถ๋ ฅ ๊ธฐ๋ณธ์ ์ถ๋ ฅ(BIOS), ํญ์ READY ์ฝ์์ ํตํ ๋ฐ์ดํฐ ์ ๋ ฅ+ ์ฝ์๋ก์ ๋ฐ์ดํฐ ์ถ๋ ฅ ์๋ฐ์์ ์ ๊ณตํ๋ ํ์ค I/O๋ฅผ ์ํ ์ ์ถ๋ ฅ์คํธ๋ฆผ in / out / err Systemํด๋์ค์ ์ ์ธ๋ ํด๋์ค๋ณ์(static๋ณ์). ์ ์ธ๋ถ๋ถ์๋ InputStream, PrintStream์ด ์ ํ์์ง๋ง ์ค์ ๋ก๋ ๋ฒํผ๋ฅผ ์ฌ์ฉํ๋ BufferedInputStream, BufferedOutputStream ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํจ. ์ฝ์ ์ ๋ ฅ์ ๋ฒํผ๋ฅผ ๊ฐ์ง๊ณ ์์. ๊ทธ๋์ Backspace ํค๋ฅผ ์ด์ฉํ ํธ์ง์ด ๊ฐ๋ฅ. ํ์ค์ ์ถ๋ ฅ์ ๋์๋ณ๊ฒฝ setOut( ), setErr( ), setIn( ) ๋ค๋ฅธ ์ ์ถ๋ ฅ ๋์์ผ๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํจ. RandomAccessFile ํด๋์ค ์ด๋ฆ์ ์๋ฏธ: ํด๋น ํด๋์ค๊ฐ ํ์ผ์ ๋ฌด์์(Rando.. 2023. 11. 21. [ch.15] ์ ์ถ๋ ฅ I/O - ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ์ ์กฐ์ ๋ฐ์ดํธ๊ธฐ๋ฐ ์คํธ๋ฆผ์ ์กฐ์์ด InputStream/ OutputStream์ธ ๊ฒ์ฒ๋ผ ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ์๋ Reader/Writer๊ฐ ์กฐ์ ์ญํ ์ ํจ. byte๋ฐฐ์ด ๋์ char๋ฐฐ์ด์ ์ฌ์ฉํจ. ๋ฐ์ดํธ๊ธฐ๋ฐ : 1byte ๋ฌธ์๊ธฐ๋ฐ : 2byte(char) +์ธ์ฝ๋ฉ ์ฌ๋ฌ์ข ๋ฅ์ ์ธ์ฝ๋ฉ/์๋ฐ์ UTF-16๋ณํ ์๋์ฒ๋ฆฌ File R/W ํ์ผ๋ก๋ถํฐ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํ์ผ์ ์ฐ๋๋ฐ ์ฌ์ฉํจ Piped R/W ์ธ์ผ ๋ณ๋ก ์์ ์ฐ๋ ๋๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉํจ. ์ ๋ ฅ์คํธ๋ฆผ&์ถ๋ ฅ์คํธ๋ฆผ์ ํ๋์ ์คํธ๋ฆผ์ผ๋ก ์ฐ๊ฒฐํด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ โ ์คํธ๋ฆผ ์์ฑ โก์ด๋ ํ์ชฝ ์ฐ๋ ๋์์ connect( )๋ฅผ ํธ์ถํด์ ์ ์ถ๋ ฅ ์ฐ๊ฒฐ โข์ ์ถ๋ ฅ ํ ํ์ชฝ ์คํธ๋ฆผ๋ง ๋ซ์๋ ๋๋จธ์ง ์๋๋ซํ ์ฐ๋ ๋๋ฅผ ์์ํ๊ธฐ ์ ์ .. 2023. 11. 21. [ch.15] ์ ์ถ๋ ฅ I/O - ๋ฐ์ดํธ ์คํธ๋ฆผ ๋ฐ์ดํธ ๊ธฐ๋ฐ ์คํธ๋ฆผ ByteArray I/O ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ถ๋ ฅํ๋๋ฐ ์ฌ์ฉํ๋ ์คํธ๋ฆผ. ์ฃผ๋ก ๋ค๋ฅธ ๊ณณ์ ์ ์ถ๋ ฅ ํ๊ธฐ ์ ์ ์์๋ก ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋ด์์ ๋ณํํ๋ ๋ฑ์ ์์ ์ ์ฌ์ฉํจ. ์ฌ์ฉํ๋ ์์์ ์ค์ง ๋ฉ๋ชจ๋ฆฌ์. GC์ ์ํด์ ์๋์ ์ผ๋ก ์์์ด ๋ฐํ๋๋ฏ๋ก close()์ฌ์ฉ X. ํ๋ฒ์ 1byte ์ฝ๊ณ ์ฐ๊ธฐ๋ง ํด์ ์์ ํจ์จ์ด ๋จ์ด์ง. “๋ฐฐ์ด”์ด์ฉ์ ์ ์ถ๋ ฅ ์์ ํจ์จ์ด ๋์์ง. read( )๋ write( )๊ฐ IOException์ ๋ฐ์์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ try-catch๋ฌธ์ผ๋ก ๊ฐ์ธ์ค. available( ): ํด๋น ์คํฌ๋ฆผ์์ ์ฝ์ด์ฌ ์ ์๋ ๋ฐ์ดํธ์ ์๋ฅผ ์์ํ ์ ์์. ์ ํํ๊ฐ์ X. File I/O ํ์ผ์ ์ ์ถ๋ ฅ์ ํ๊ธฐ ์ํ ์คํธ๋ฆผ. ์ค์ ํ๋ก๊ทธ๋๋ฐ์ ๋ง์ด ์ฌ์ฉํจ. ํ ์คํธํ์ผ์ ๋ฌธ์๊ธฐ๋ฐ ์ค.. 2023. 11. 21. [์คํ๋ง๋ถํธ ํต์คํํธ] ch.1 ์คํ๋ง๋ถํธ ๋ฑ์ฅ ๋ฐ ํต์คํํธ ์คํ๋ง๋ถํธ ๊ฐ์ ๋ฃ๊ธฐ ์ ์ ์ฒด ํ๋ฆ์ ์ก๊ณ ์ ์ฑ ํ ๋ฒ ํ๊ณ ๊ฐ์ ๋ฃ๊ธฐ๋ก ํจ โ โถ์คํ๋ง๋ถํธ์ ๋ฑ์ฅ ์คํ๋ง๋ถํธ : ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉ๊ฐ๋ฅํ ์ํ๋ก ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ์ ๋๋ก ์ดํดํ๊ธฐ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ web Framwork โ RoR (๊ฒฝ๋) Ruby๋ก ๋ง๋ฆ โกFlask&Djang (๊ฒฝ๋) โขNode.js&Nest.js (๊ฒฝ๋) โฃSpring : Enterprise, ๋ฌด๊ฑฐ์ ⇒ (๊ฒฝ๋ํ, ์์ ๊ฒ๋ค๊ณผ ๊ฒฝ์ํ๋ ค๊ณ ) ⇒ SpringBoot ์คํ๋ง๋ถํธ์ ์ฅ์ (์คํ๋ง๊ณผ์ ์ฐจ์ด์ ) ์คํ๋ง๋ถํธ ์คํ๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ์ ์๋ํ : ์คํํฐ๋ผ๋ ๊ฒ์ ์ด์ฉํด์ ํน์ ๊ธฐ๋ฅ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ์ ๋์ฑ ๊ฐ๋จํ ์ฒ๋ฆฌํจ(์ฝ๊ฒ ๋งํด ๊ธฐ๋ฅ๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจํค์ง) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์๋ ๊ด๋ฆฌ : ์คํ๋ง๋ถํธ ๋ฒ์ ์ ํด๋นํ๋ ๊ด๋ จ ๋ผ.. 2023. 11. 20. [ch.15] ์ ์ถ๋ ฅ I/O I/O Input, Output ์ ์ถ๋ ฅ, ์ฅ์น์ ํ๋ก๊ทธ๋จ๊ฐ์ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ NIO๋ผ๋ ๊ฒ๋ ์์(non-blocking I/O) ์คํธ๋ฆผ ์ ์ถ๋ ฅ์์์์คํธ๋ฆผ์ 14์ฅ์์คํธ๋ฆผ๊ณผ๋ ๋ค๋ฅธ๊ฐ๋ . 15์ฅ์ ์คํธ๋ฆผ์ I/O๋ฅผ ์ฝ๊ฒ ๋์์ฃผ๋ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ด๋ฐํ๋๋ฐ ์ฌ์ฉ๋๋ ์ฐ๊ฒฐํต๋ก. ๋จ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅํจ. ์ /์ถ๋ ฅ ๋์์ ์ํ ์ 2๊ฐ์ ์คํธ๋ฆผ์ด ํ์ํจ. ๋จผ์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ๋ฐ์. ์ค๊ฐ์ ๊ฑด๋๋ ์์ด ์ฐ์์ ์ธ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ. ์ด๋ค๋์์ ์์ ํ๋์ง?์ ๋ ฅ/์ถ๋ ฅ์ธ์ง? ๊ณ ๋ คํด์ ํด๋น ์คํธ๋ฆผ์ ์ฌ์ฉํจ. ์คํธ๋ฆผ์ ์ต๊ณ ์กฐ์ InputStream Read. ์ฝ๊ธฐ๋ฅผ ๋์์ค(๋ฐ์ดํธ๊ธฐ๋ฐ) OutputStream Write. ์ฐ๊ธฐ๋ฅผ ๋์์ค(๋ฐ์ดํธ๊ธฐ๋ฐ) ๋ณด์กฐ์คํธ๋ฆผ ์คํธ๋ฆผ์ ๊ธฐ๋ฅ์ ๋ณด์ํ๊ธฐ ์ํจ. ์คํธ๋ฆผ ๊ธฐ์ ํฅ์๊ณผ ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐํ .. 2023. 11. 20. [ch.14] Optional<T>์ OptionalInt Optional ์ง๋ค๋ฆญ ํด๋์ค. Tํ์ ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ธ๋ ๋ํผํด๋์ค. Optionalํ์ ์ ๊ฐ์ฒด์๋ ๋ชจ๋ ํ์ ์ ์ฐธ์กฐ๋ณ์๋ฅผ ๋ด์ ์ ์์. Optional ๊ฐ์ฒด์์ฑ Optionalํ์ ์ ์ฐธ์กฐ๋ณ์๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํํ๊ธฐ Optional.empty(): T ํ์ ์ ๋น Optional ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ public static ๋ฉ์๋. Optional ๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ Optional ๊ฐ์ฒด์ ์ฌ์ฉ๊ฐ๋ฅํ ์คํธ๋ฆผ ๋ฉ์๋ filter( ), map( ), flatMap( ) Optional๊ฐ์ด null์ด๋ฉด ์ด ๋ฉ์๋๋ค์ ์๋ฌด์ผ๋ ํ์ง ์์. boolean์ผ๋ก ๋ฐํํ๋ ๋ฉ์๋ Stream์๋ฉ์๋์ค Optional๋ฅผ ๋ฐํํ๋ ๊ฒ ๊ณตํต์ : null์ผ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ํฐ ๊ฒ๋ค, ์คํธ๋ฆผ์ด ๋น์ด์์ ์ ์๊ธฐ ๋๋ฌธ. Op.. 2023. 11. 20. [ch.14] ์คํธ๋ฆผ์ ์ต์ข ์ฐ์ฐ ์ฐ์ ์ด๊ฑฐ ์ธ์ ๋ณต๋ถํ์ง ใ ใ .. ์ผ๋จ ์ด๋ฏธ์ง๋ก ์ ๋ก๋ํฉ๋๋ค 2023. 11. 15. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ๋ค์