๋ชฉ๋ก๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Java ์ž๋ฐ” (51)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[๋ฏธ์…˜ ํ”ผ๋“œ๋ฐฑ] ๋ฉ”์„œ๋“œ&๋ณ€์ˆ˜ ๋„ค์ด๋ฐ, ์ž๋ฐ” ๋‚ ์งœ/์‹œ๊ฐ„ ํด๋ž˜์Šค LocalDateTime, import์— ๋Œ€ํ•ด

๋ฆฌ๋ทฐ์–ด Dion๊ป˜์„œ ์ž๋ฐ” ์‹œ๊ฐ„ ํ‘œ์‹œ ๋ฐ ๊ฐ์ฒด์ƒ์„ฑ, import์— ๋Œ€ํ•œ ์ข‹์€ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์…”์„œ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ธด๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค๐Ÿ™‡‍โ™€๏ธ ๋ฉ”์„œ๋“œ ๋„ค์ด๋ฐ ๋ฉ”์„œ๋“œ์—๋Š” ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€ ๋™์ž‘์„ ๋“œ๋Ÿฌ๋‚ด๊ธฐ ๋ณด๋‹ค๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•  ํ–‰๋™์„ ์ ์–ด์ฃผ์„ธ์š”. ๊ฐ„๋‹จํ•˜๊ฒŒ home์œผ๋กœ ๊ฐˆ๊ฒƒ์ด๋‹ˆ home()์ •๋„์—ฌ๋„ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์•„ ๊ทธ๋ ‡๊ตฐ์š”! ๋ฉ”์„œ๋“œ๋ช…์€ ๋™์‚ฌ๋กœ ํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค๋Š” ๋ง์„ ๋“ค์–ด์„œ ์ด๋ ‡๊ฒŒ ํ–ˆ๋Š”๋ฐ, ๋™์‚ฌ์— ์ง‘์ฐฉํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋ฉ”์„œ๋“œ์˜ ํ–‰๋™์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์— ๋” ์ค‘์ ์„ ๋‘๋ฉด ๋˜๋‚˜์š”?๐Ÿ˜ฎ ๋„ค ๋™์‚ฌ ๋ณด๋‹ค๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์–ด๋–ค ์ผ์„ ํ•ด์ค„ ๊ฒƒ์ธ๊ฐ€๊ฐ€ ๋” ์ค‘์š”ํ•˜๋‹ต๋‹ˆ๋‹ค! +์ค„์—ฌ์“ฐ๊ธฐ ์ง€์–‘ํ•˜๊ธฐ (inputPw) ๋ณ€์ˆ˜ ๋„ค์ด๋ฐ ์ž„์‹œ๋ณ€์ˆ˜๋ผ๋„ ๋ณ€์ˆ˜๋ช…์— ๊ด€์‚ฌ๋Š” ๋ถ™์ด์ง€ ์•Š๋Š” ๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‹ค. aUser(โŒ) ์ž๋ฐ” ๋‚ ์งœ/์‹œ๊ฐ„ ํด๋ž˜์Šค LocalDateTime ๋ฐ import์— ๋Œ€ํ•ด publ..

[Java] ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด(๊ธฐ์ดˆ)

ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด Factory Method Pattern ์ด๋ž€? ์ž๋ฐ” ๋””์ž์ธํŒจํ„ด์˜ ํ•˜๋‚˜๋กœ, ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋Œ€์‹  ์ˆ˜ํ–‰ํ•ด ์ฃผ๋Š” ๊ณต์žฅ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹ , ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์ƒ์„ฑ ํ›„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹. (๊ฐ„์ ‘์ ์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๋Œ€์‹  ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํŒฉํ† ๋ฆฌ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค) ์žฅ์  ์ƒ์„ฑํ•  ํด๋ž˜์Šค๋ฅผ ๋ฏธ๋ฆฌ ์•Œ์ง€ ๋ชปํ•ด๋„ ํŒฉํ† ๋ฆฌ ํด๋ž˜์Šค๊ฐ€ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋‹ด๋‹นํ•ด ์ค€๋‹ค. ๊ฐ์ฒด์˜ ์ž๋ฃŒํ˜•์ด ํ•˜์œ„ํด๋ž˜์Šค์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค - ํ™•์žฅ์ด ์šฉ์ดํ•˜๋‹ค ํ™•์žฅ์„ฑ ์žˆ๋Š” ์ „์ฒด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋™์ผํ•œ ํ˜•ํƒœ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ์  ๊ฐ์ฒด๊ฐ€ ๋Š˜์–ด๋‚  ๋•Œ ๋งˆ๋‹ค ํ•˜์œ„ํด๋ž˜์Šค๋ฅผ ์žฌ์ •์˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๋งŽ์€ ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์ œ Shape.java public interface Shape { ..

[Java] static import์™€ static๋ฉ”์†Œ๋“œ

static import๊ณผ static ๋ฉ”์†Œ๋“œ static ๋ฉ”์†Œ๋“œ๋ž€ ์ž๋ฐ”์—์„œ ๋ฉ”์†Œ๋“œ๋ฅผ static์œผ๋กœ ์„ ์–ธํ•˜๋ฉด, ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ”๋กœ ํ•ด๋‹น ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. int i = Math.abs(-3) ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•œ๋‹ค. (java.lang.Mathํด๋ž˜์Šค์˜ abs()๋ฉ”์†Œ๋“œ) static import๋ž€ static import๋Š” ์ด๋Ÿฐ static๋ฉ”์†Œ๋“œ๋ฅผ ๋”์šฑ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ผ๋ฐ˜ import์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฉ”์†Œ๋“œ/๋ณ€์ˆ˜๋ฅผ ํŒจํ‚ค์ง€, ํด๋ž˜์Šค๋ช… ์—†์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค. import static java.lang.Math.abs;์™€ ๊ฐ™์ด static import ํ•œ ๋’ค์—๋Š” int i = abs(-3)๊ณผ ๊ฐ™์ด ํ•ด๋‹น static๋ฉ”์†Œ๋“œ๋ฅผ ํด๋ž˜์Šค๋ช… ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. โ€ป ๋‹จ..

[Java] ์ž๋ฐ” ์ƒ์ˆ˜์™€ ์ƒ์ˆ˜ ์ปจ๋ฒค์…˜ / System.exit(0)

๋ฆฌ๋ทฐ์–ด ๋ถ„๊ป˜์„œ ๋งˆ์ง€๋ง‰ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‹ฌ์•„ ์ฃผ์‹  ๋‚ด์šฉ์— ๋ฐฐ์šธ ์ ์ด ๋งŽ์•„์„œ, ๊ทธ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ–ˆ๋‹ค. ์ž๋ฐ” ์ƒ์ˆ˜์™€ ์ƒ์ˆ˜ ์ปจ๋ฒค์…˜ Q. ์ž๋ฐ” ์ƒ์ˆ˜๋ช…์€ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž์— Snake Case๋ฅผ ์“ด๋‹ค, ์ง€์—ญ๋ณ€์ˆ˜๋Š” ์†Œ๋ฌธ์ž์— Camel Case๋ฅผ ์“ด๋‹ค ์ด ์ •๋„๋งŒ ์•Œ๊ณ  ์žˆ๋Š”๋ฐ, ์œ„์™€ ๊ฐ™์ด ์ง€์—ญ๋ณ€์ˆ˜์ธ ์ƒ์ˆ˜์˜ ๊ฒฝ์šฐ๋Š” ์–ด๋–ป๊ฒŒ ์ง€์–ด์•ผ ํ•˜๋‚˜์š”?๐Ÿค” ์šฐ์„ ์€ ์ƒ์ˆ˜๋‹ˆ๊นŒ ๋Œ€๋ฌธ์ž๋กœ ์“ฐ๊ธด ํ–ˆ๋Š”๋ฐ, ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ƒ์ˆ˜์ด๊ธฐ ์ „์— ์ง€์—ญ๋ณ€์ˆ˜์ด๋ฏ€๋กœ start end์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฑด๊ฐ€์š”? ์ฝ”๋ฉ˜ํŠธ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!๐Ÿ™‡‍โ™€๏ธ A. The names of variables declared class constants and of ANSI constants should be all uppercase with words separated by underscores ("_"..

[Java] ๊ฐœํ–‰๋ฌธ์ž, System.getProperty("line.separator")

๊ฐœํ–‰๋ฌธ์ž - System.getProperty("line.separator"), System.lineSeparator() ๊ฐœํ–‰๋ฌธ์ž(์ค„๋ฐ”๊ฟˆ๋ฌธ์ž, new line)๋ž€? : ์ปดํ“จํ„ฐ์—์„œ ์ค„๋ฐ”๊ฟˆ์„ ๋‚˜ํƒ€๋„ค๋Š” ์ œ์–ด๋ฌธ์ž. ์ค„๋ฐ”๊ฟˆ๋ฌธ์ž, ์ƒˆ์ค„๋ฌธ์ž, ๋ผ์ธ์—”๋”ฉ, ๋ณต๊ท€๊ฐœํ–‰.. ๋“ฑ์œผ๋กœ๋„ ๋ถˆ๋ฆฐ๋‹ค. (newLine, line ending, end-of-line,EOL, line break ..) ๊ฐœํ–‰๋ฌธ์ž์—๋Š” ๋‘ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. LF : new Line Feed, ๋ผ์ธํ”ผ๋“œ, ๋‰ด๋ผ์ธ. ์ปค์„œ๋ฅผ ํ•œ ์นธ ์•„๋ž˜๋กœ ์ด๋™ํ•ด ์ƒˆ๋กœ์šด ๋ผ์ธ์„ ์ถ”๊ฐ€ \n ์•„์Šคํ‚ค์ฝ”๋“œ : 10 CR : Carrige Return, ์บ๋ฆฌ์ง€๋ฆฌํ„ด, ๋ฆฌํ„ด. ์ปค์„œ๋ฅผ ๋งจ ์™ผ์ชฝ์œผ๋กœ ์ด๋™(์‹œ์ž‘ ์œ„์น˜๋กœ ๋ณต๊ท€) \r ์•„์Šคํ‚ค์ฝ”๋“œ : 13 ์—”ํ„ฐํ‚ค์™€ ๊ฐ™๋‹ค. ์šด์˜์ฒด์ œ๋ณ„ ์ค„๋ฐ”๊ฟˆ๋ฌธ์ž ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž(๊ฐœํ–‰๋ฌธ..

[Java] ์ŠคํŠธ๋ฆผ, ์ŠคํŠธ๋ฆผ์˜ ์—ฐ์‚ฐ, Optional

์ŠคํŠธ๋ฆผ Stream ์ŠคํŠธ๋ฆผ์ด๋ž€? : ๋ฐฐ์—ด, ์ปฌ๋ ‰์…˜, ํŒŒ์ผ ๋“ฑ ์ธ์Šคํ„ด์Šค์˜ ์ €์žฅ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์ฐธ์กฐํ•˜๊ฒŒ ํ•ด ์ฃผ๋Š” ๋ฐ˜๋ณต์ž. (์ถœ์ฒ˜) ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์ถ”์ƒํ™”ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ ์ •์˜ํ•ด ๋†“์Œ. '๋ฐ์ดํ„ฐ ์†Œ์Šค์˜ ์ถ”์ƒํ™”'์˜ ์˜๋ฏธ? : ๋ฐ์ดํ„ฐ ์†Œ์Šค(๋ฐฐ์—ด/์ปฌ๋ ‰์…˜/ํŒŒ์ผ ..)๊ฐ€ ๋ฌด์—‡์ด๋˜ ๊ฐ„์— ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค. : ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง„๋‹ค. // String[] ๊ณผ List์ด๋ผ๋Š” ๋‘ ๋ฐ์ดํ„ฐ์†Œ์Šค String[] strArr = {"aaa", "bbb", "ccc"}; List strList = Arrays.asList(strArr); // Stream ์ƒ์„ฑ Stream strStream1 = Arrays.stream(strArr); Stream strStream2 = ..

[Java] ๋žŒ๋‹ค์‹, ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค

๋žŒ๋‹ค ์ฐธ๊ณ  : ''์ž๋ฐ”์˜ ์ •์„'' ์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋žŒ๋‹ค์‹ Lambda expression JDK1.8๋ถ€ํ„ฐ ๋„์ž…๋œ ๊ฐœ๋…์ด๋‹ค. ๋žŒ๋‹ค์‹์˜ ๋„์ž…์œผ๋กœ ์ž๋ฐ”๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์ธ ๋™์‹œ์— ํ•จ์ˆ˜ํ˜• ์–ธ์–ด๊ฐ€ ๋˜์—ˆ๋‹ค. ๋žŒ๋‹ค์‹์ด๋ž€? : ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ์‹(expression)์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ. ๋žŒ๋‹ค์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ฐ„๋žตํ•œ ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋žŒ๋‹ค์‹์€ ์ต๋ช…ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์™€ ๋™๋“ฑํ•˜๋‹ค) ๋ฉ”์„œ๋“œ๋ฅผ ๋žŒ๋‹ค์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋ฉ”์„œ๋“œ ์ด๋ฆ„๊ณผ ๋ฆฌํ„ด๊ฐ’์ด ์—†์–ด์ง„๋‹ค. ๋•Œ๋ฌธ์— ๋žŒ๋‹ค์‹์„ '์ต๋ช… ํ•จ์ˆ˜ anonymous function' ๋ผ๊ณ ๋„ ํ•œ๋‹ค. (i) -> (int)(Math.random()*5)+1; int method() { return (int)(Math.random()*5) + 1; } ์œ„์˜ ๋žŒ๋‹ค์‹..