๋ชฉ๋ก์ „์ฒด ๊ธ€ (162)

EEALL@ONCE

โ˜•Charset : ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ์„ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜

`Charset`์€ Java์—์„œ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ์„ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ๋ฌธ์ž์™€ ๋ฐ”์ดํŠธ ๊ฐ„์˜ ๋ณ€ํ™˜์„ ์ œ์–ดํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ์ฃผ์š” ๋ฉ”์„œ๋“œ - `forName(String charsetName)`: ์ฃผ์–ด์ง„ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์˜ ์ด๋ฆ„์œผ๋กœ `Charset` ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. - `encode(String str)`: ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ํ˜„์žฌ `Charset`์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”์ดํŠธ ๋ฒ„ํผ๋กœ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. - `decode(ByteBuffer byteBuffer)`: ์ฃผ์–ด์ง„ ๋ฐ”์ดํŠธ ๋ฒ„ํผ๋ฅผ ํ˜„์žฌ `Charset`์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž ๋ฒ„ํผ๋กœ ๋””์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. - `availableCharsets()`: ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ Java ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฌธ์ž์…‹์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. - `default..

โ˜•Scanner - nextInt

`Scanner` ํด๋ž˜์Šค์˜ `nextInt` ๋ฉ”์„œ๋“œ๋Š” ์ž…๋ ฅ์—์„œ ๋‹ค์Œ ์ •์ˆ˜๋ฅผ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๊ณต๋ฐฑ, ํƒญ, ์ค„ ๋ฐ”๊ฟˆ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ˆ˜๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ •์ˆ˜ ๋‹ค์Œ์— ๊ณต๋ฐฑ ๋ฌธ์ž๊ฐ€ ์˜ค๋ฉด ๊ทธ ์œ„์น˜์—์„œ ์ฝ๊ธฐ๋ฅผ ์ค‘์ง€ํ•˜๊ณ  ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ `"123 456"`์„ ์ž…๋ ฅํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ `nextInt` ํ˜ธ์ถœ์€ `123`์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ `nextInt` ํ˜ธ์ถœ์€ `456`์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ `nextInt`๊ฐ€ ์ค„ ๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ์ฝ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ `nextInt` ํ˜ธ์ถœ ํ›„์— `nextLine`์„ ํ˜ธ์ถœํ•˜๋ฉด ์ค„ ๋ฐ”๊ฟˆ ๋ฌธ์ž๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์–ด ์˜๋„ํ•˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด `nextIn..

โ˜•`java.nio.file.Files` ํด๋ž˜์Šค

`java.nio.file.Files` ํด๋ž˜์Šค๋Š” Java์—์„œ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. Java 7๋ถ€ํ„ฐ ์†Œ๊ฐœ๋œ NIO(Non-blocking I/O) API์— ์†ํ•˜๋Š” ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋กœ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ํŒŒ์ผ ๊ด€๋ จ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `java.nio.file.Files` ํด๋ž˜์Šค๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ผ์„ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ๋ฐ์— ๋งŽ์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฉ”์„œ๋“œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค: 1. `readAllLines(Path path, Charset cs)`: ์ง€์ •๋œ ํŒŒ์ผ์—์„œ ๋ชจ๋“  ๋ผ์ธ์„ ์ฝ์–ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ธ์ฝ”๋”ฉ์„ ์ง€์ •ํ•˜์—ฌ ํŠน์ • ๋ฌธ์ž์…‹์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. `readAllBytes(Path pat..

๐Ÿ“Š CONCAT

CONCAT์€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. SQL์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์—ฌ๋Ÿฌ DBMS์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. SELECT CONCAT('Hello', ' ', 'World'); Result : Hello World ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ CONCAT ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋งŽ์€ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ๊ฐ€ ํฐ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์„ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SIDE EFFECT: CONCAT์€ NULL ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด๊ณผ ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ ๊ฒฐ๊ณผ๋ฅผ NULL๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, CONCAT(NULL, 'test')๋Š” NULL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ์ด..

โ˜• `FileInputStream`, `InputStreamReader`, `BufferedReader`

์œ„ ์ฝ”๋“œ์—์„œ `FileInputStream`, `InputStreamReader`, `BufferedReader`๋Š” ํŒŒ์ผ์„ ์ฝ๊ธฐ ์œ„ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: 1. `FileInputStream`: - ์ด ํด๋ž˜์Šค๋Š” ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค. ์ฆ‰, ํŒŒ์ผ์„ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์—ด์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. - ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ง์ ‘ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋Œ€์ ์œผ๋กœ ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ I/O ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. 2. `InputStreamReader`: - ์ด ํด๋ž˜์Šค๋Š” ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ๋ฌธ์ž ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. - `FileInputStream`์œผ๋กœ ์ฝ์€ ๋ฐ”์ดํŠธ๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, UTF-8 ์ธ์ฝ”๋”ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ..