๐Ÿ’ปDEV-STUDY/Java

๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ / ๋ฌผ๋ฆฌ์  ์—ฐ๊ฒฐ๐Ÿ“š DB์™€ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ฐ๊ฒฐ ๋ฐ DB ์ฟผ๋ฆฌ ์ˆ˜ํ–‰ํ•˜๊ธฐJava ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ JVM ์œ„์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ณ„๋„์˜ ์‹œ์Šคํ…œ์ด๋‹ค. ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  ๋‹ค์Œ ๋‘ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค. 1๏ธโƒฃ DB ์—ฐ๊ฒฐJava ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•ด์•ผ ํ•œ๋‹ค.Java์—์„œ์˜ DB ์ ‘์†์€ ๋ฌผ๋ฆฌ์  ์ ‘์† ๋…ผ๋ฆฌ์  ์ ‘์† ๋‘ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•œ๋‹ค.๋ฌผ๋ฆฌ์  ์ ‘์†์€ ๋งค ์ ‘์† ๋•Œ๋งˆ๋‹ค DB์— ์ง์ ‘ ๋ถ™๋Š” ๊ฒƒ์œผ๋กœ Create์™€ Close๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.๋…ผ๋ฆฌ์  ์ ‘์†์€ ๋งค ์ ‘์† ๋•Œ๋งˆ๋‹ค DB์— ์ ‘์†๋˜์–ด ์žˆ๋Š” Connection Pool ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉ ํ›„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์žฌ์‚ฌ์šฉํ•œ๋‹ค.1-1. ๋ฌผ๋ฆฌ์  ์ ‘์† (DriverManager)DriverManger๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์ ‘์†(C..
Collection ๊ฐ๊ฐ์˜ ์š”์†Œ์— ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋„์ž…Java 8์˜ StreamStream์˜ ๋“ฑ์žฅ ์ด์œ : Collection ๊ฐ๊ฐ์˜ ์š”์†Œ์— ๋Œ€ํ•œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋„์ž…ํ•˜์žStream์€ Java 8์—์„œ ๋„์ž…๋œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋„๊ตฌ๋กœ, ๊ธฐ์กด ์ปฌ๋ ‰์…˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ๋‹ค.๊ธฐ์กด์—๋Š” for, while ๊ฐ™์€ ์™ธ๋ถ€ ๋ฐ˜๋ณต์„ ์‚ฌ์šฉํ•ด ์ปฌ๋ ‰์…˜ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ–ˆ์ง€๋งŒ, Stream์€ ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๋‚ด๋ถ€์—์„œ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.์™ธ๋ถ€ ๋ฐ˜๋ณต: ๋ฃจํ”„๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ์ปฌ๋ ‰์…˜ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌ.๋‚ด๋ถ€ ๋ฐ˜๋ณต: Stream์„ ์‚ฌ์šฉํ•ด ๋‚ด๋ถ€์—์„œ ์ปฌ๋ ‰์…˜ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌ.Stream ์ด์ „์˜ ์ž๋ฐ” ์ปฌ๋ ‰์„  ์ฒ˜๋ฆฌ ๋ฐฉ์‹ (์™ธ๋ถ€ ๋ฐ˜๋ณต):for (String string : list) { if (string.contai..
Null  ๋‚ด๋ถ€ ์ฒ˜๋ฆฌJava 8์˜ OptionalOptional์˜ ๋“ฑ์žฅ ์ด์œ : Null์„ ์™ธ๋ถ€๊ฐ€ ์•„๋‹Œ ๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌOptional ํด๋ž˜์Šค๋Š” NullPointerExceptio ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…๋œ ๊ฐœ๋…์œผ๋กœ, ์ž๋ฐ”์—์„œ null์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ด๋‹ค. ์ด์ „์—๋Š” null ์ฒดํฌ๋ฅผ ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ์œผ๋‚˜, Optional์„ ์‚ฌ์šฉํ•˜๋ฉด null ์ƒํƒœ๋ฅผ ๊ฐ์ฒด ๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.๊ตด๋š๊ตด๋š ๋ฐ–์—์„œ Null ์ฒ˜๋ฆฌ : ์™ธ๋ถ€์—์„œ if๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ null ๊ฐ’์„ ์ง์ ‘ ํ™•์ธ๊ตด๋š ์•ˆ์—์„œ Null ์ฒ˜๋ฆฌ: Optional ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€์—์„œ null ์—ฌ๋ถ€๋ฅผ ๋‹ค๋ฃธOptional์ด ์—†๋˜ ์‹œ์ ˆ ์ž๋ฐ”์—์„œ Null ์ฒ˜๋ฆฌํ•˜๋Š”๋ฒ•๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ Null ์ฒ˜๋ฆฌ ํ•˜๋Š” ๋ฒ•/* ์ฃผ๋ฌธ */public cla..
๋ƒ„์ƒˆ๋‚˜๋Š” ์ฝ”๋“œ์˜ ๋ฐฉํ–ฅ์ œ์ข‹์€, ๊ฐ์ฒด ์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋ก ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๋Š” ๋ณ€๊ฒฝ์ด ์šฉ์ดํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์ด ์‰ฌ์šด ์ฝ”๋“œ์ด๋‹ค. ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•๋ก ๊ณผ ์›์น™์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.์ค‘๋ณต์˜ ์ตœ์†Œํ™”: ํ•˜๋‚˜์˜ ์ˆ˜์ •์ด ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ์ˆ˜์ •์„ ๋™๋ฐ˜ํ•ด์„  ์•ˆ๋œ๋‹ค.์ฝ”๋“œ ๋ณ€๊ฒฝ์˜ ์šฉ์ด์„ฑ: ์ฝ”๋“œ๋Š” ํ•ญ์ƒ ์™„๋ฒฝํ•˜์ง€ ์•Š๊ณ  ์š”๊ตฌ์‚ฌํ•ญ์€ ์ƒ์‹œ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค.์žฌ์‚ฌ์šฉ์„ฑ: ์ •๋ˆ๋œ ์ฝ”๋“œ๋Š” ๋น„์Šทํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์š”๊ตฌ์‚ฌํ•ญ์—๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.ํด๋ฆฐ ์ฝ”๋“œ์˜ ๊ธฐ์ค€: ๋‹จ์ผ ๋ชฉ์ ๊ณผ ์˜ค์šฉ, ๋‚จ์šฉ ๋ฐฉ์ง€๋ชจ๋“  ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค๋Š” ๋ช…ํ™•ํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ , ์˜ค์šฉ๋˜์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ์ฃผ์š” ์›์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹คDRY (Dont' Repeat Yourself): ๋™์ผํ•œ ๋กœ์ง์„ ์—ฌ๋Ÿฌ ๊ณณ์— ์ค‘๋ณตํ•˜์ง€ ๋ง๊ณ , ํ•œ ๊ณณ์—์„œ..
๋ถ„๋ฅ˜๋œ ๊ฐ์ฒด์˜ ๋ชจ์ŒJava EnumEnum์€ ํ•œ์ •๋œ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” Java์˜ ํŠน๋ณ„ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‹ค. ํŠน์ • ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋‚˜ ๊ฐ’์„ ์„ค์ •ํ•  ๋•Œ ์ผ€์ด์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ ธ ๋ณต์žกํ•ด์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. Enum์„ ํ†ตํ•ด ์ •์˜๋œ ๊ฐ’๋งŒ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ œ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŽ์€ ๊ฒฝ์šฐ, ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ์— Integer๋‚˜ String๊ณผ ๊ฐ™์€ ๊ฐ’๋“ค์ด ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ’์ด ์ž˜๋ชป๋œ ๊ฒฝ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Enum์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ’์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์ž˜๋ชป๋œ ๊ฐ’์˜ ์ „๋‹ฌ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. Enum ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฌธ์ œ ์ƒํ™ฉ:public static String createMessage(String message) { return "๋‹น์‹ ์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. : " + message;}์œ„ ์ฝ”๋“œ์—์„œ me..
์ถ”์ƒํ™” ๋‹คํ˜•์„ฑJava์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ค‘์š”ํ•œ ์š”์†Œ์ธ ์ถ”์ƒํ™”์™€ ๋‹คํ˜•์„ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๋‘ ๊ฐœ๋…์€ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ํ–‰์œ„๋‚˜ ์†์„ฑ์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋ฉฐ, ํŠน์ • ์ƒํ™ฉ์—์„œ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ํ•ฉํ•œ์ง€์— ๋”ฐ๋ผ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค.์ถ”์ƒํ™”(Abstraction)์ถ”์ƒํ™”๋Š” ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์„ ์ˆจ๊ธฐ๊ณ , ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ์„ ์™ธ๋ถ€์— ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.์ด๋Š” ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ฐ์ถ”๊ณ , ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด๋‹ค. ์ž๋ฐ”์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ํ˜น์€ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์ด๋ค„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.Interface(์ถ”์ƒํ™”) ํ˜น์€ Abstract Class(์ถ”์ƒ ํด๋ž˜์Šค) → (๊ตฌํ˜„, ๊ตฌ์ฒดํ™”) ํด๋ž˜์Šค = ๋ฐ์ดํ„ฐ + ํ–‰์œ„Abstract: What ๋ฌด์—‡์„ ์ €์žฅ? / ๋ฌด์—‡์„ ..
Java์˜ final๊ณผ static ํ‚ค์›Œ๋“œJava์—์„œ final๊ณผ static ํ‚ค์›Œ๋“œ๋Š” ์ฝ”๋“œ์˜ ๋ถˆ๋ณ€์„ฑ๊ณผ ์ •์  ํŠน์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด ๋‘ ํ‚ค์›Œ๋“œ์˜ ์˜๋ฏธ, ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€๋กœ ์ •์  ๋ฉ”์„œ๋“œ์™€ ์ •์  ํด๋ž˜์Šค์˜ ์ฐจ์ด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•  ์˜ˆ์ •์ด๋‹ค.Fianl: ๊ณ ์ • - ์ˆ˜์ • ๋ถˆ๊ฐ€๋ŠฅFinal Field : ๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.final ํ•„๋“œ๋Š” ์ดˆ๊ธฐํ™”๋œ ํ›„ ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†๋Š” ์ƒ์ˆ˜์ด๋‹ค. (JavaScript์˜ const) ์ด ๊ฐ’์€ ์ƒ์„ฑ์ž๋‚˜ ํ•„๋“œ ์ดˆ๊ธฐํ™” ์‹œ์—๋งŒ ์„ค์ •๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ์ดํ›„์—๋Š” ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค,.์ฐธ์กฐ ํƒ€์ž…์˜ ๊ฒฝ์šฐ์—๋Š” ๊ฐ์ฒด์˜ ์ฐธ์กฐ ์ฃผ์†Œ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๊ฐ์ฒด ๋‚ด๋ถ€ ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.์˜ˆ์‹œ ์ฝ”๋“œfinal int[] FINAL_ARRAY = n..
List Set MapJavaCollection FrameworkJava Collection Framework๋Š” ๊ฐ์ฒด์˜ ๊ทธ๋ฃน์„ ์ €์žฅํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(List, Set, Map)์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์ •๋ ฌ, ๊ฒ€์ƒ‰ ๋“ฑ)์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํฐ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” Generics์˜ ํ™œ์šฉ์ด๋‹ค. ์ปฌ๋ ‰์…˜์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•จ์œผ๋กœ์จ, ์ž˜๋ชป๋œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ์ปดํŒŒ์ผ ํƒ€์ž„์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์‹ค ํ•„์ž๋Š” Generics๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด Collection์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค. ์ด์ œ Java Collection Framework์˜ ํ•ต์‹ฌ ์ธํ„ฐํŽ˜..
1000_sang
'๐Ÿ’ปDEV-STUDY/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก