๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[D+63] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ7 (์™€์ผ๋“œ ์นด๋“œ) ๊ตญ๋น„์ง€์› D+63 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ7 - ์™€์ผ๋“œ์นด๋“œ ๊ฐœ๋… - ์™€์ผ๋“œ ์นด๋“œ๋Š” ์ œ๋„ค๋ฆญ ํƒ€์ž…์˜ ์•ˆ์ „์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•œ type argument์ด๋‹ค. - ์™€์ผ๋“œ์นด๋“œ๋Š” ์ œ๋„ค๋ฆญ๊ณผ ์™„์ „ํžˆ ๊ฐ™์€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€์ง„๋‹ค. - ์™€์ผ๋“œ์นด๋“œ๋ฅผ ํ†ตํ•ด ์ œ๋„ค๋ฆญ์˜ ์‚ฌ์šฉ์„ ์ œํ•œํ•จ์œผ๋กœ ์•ˆ์ „ํ•œ ์ œ๋„ค๋ฆญ ์‚ฌ์šฉ์„ ๊ตฌํ˜„ํ•œ๋‹ค. - ์™€์ผ๋“œ ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด์˜ ์ƒํ•œ๊ณผ ํ•˜ํ•œ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์€ ๊ฒฌ๊ณ ์„ฑ๊ณผ ๊ฐ„๊ฑด์„ฑ์ด๋‹ค. T(์ œ๋„ค๋ฆญ) → ์–ด๋–ค ๋ฐ์ดํ„ฐํƒ€์ž…๋„ ๋‹ค ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ?(์™€์ผ๋“œ์นด๋“œ) → ๋ฌด์Šจ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์˜ฌ ์ง€ ๋ชจ๋ฅธ๋‹ค + ์ œ์•ฝ์กฐ๊ฑด • ์™€์ผ๋“œ์นด๋“œ์˜ ์ƒํ•œ ์ œํ•œ (Upper-Bounded Wildcard) - Box 2022. 12. 20.
[D+62] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ7 (ํƒ€์ž…์˜ ์ œํ•œ, ์ œ๋„ค๋ฆญ ๋ฉ”์†Œ๋“œ, ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค์˜ ์ƒ์†, ํƒ€์ผ“ ํƒ€์ž…) ๊ตญ๋น„์ง€์› D+62 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ7 - ํƒ€์ž…์˜ ์ œํ•œ ์ œ๋„ค๋ฆญ ํƒ€์ž…์— ์ œํ•œ์„ ๊ฑธ์–ด์•ผํ•˜๋Š” ์ด์œ ๋Š” ํ•œ์ •๋œ ํƒ€์ž…์„ ์ง€์ •ํ•ด ๋†“์œผ๋ฉด ํ•œ์ •๋œ ํƒ€์ž…์— ๋Œ€ํ•œ ๊ณตํ†ต๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. → ๊ธฐ๊ณ„์  ์ด์œ  ) ํƒ€์ž…์— ์ œํ•œ์„ ๊ฑธ์–ด๋‘์ง€ ์•Š์œผ๋ฉด ์•„๋ฌด๊ฑฐ๋‚˜ ์˜ฌ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ํŠน์ • ๋ฉ”์†Œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†๋‹ค. → ๋…ผ๋ฆฌ์  ์ด์œ  ) ํƒ€์ž…์— ์ œํ•œ์„ ๊ฑธ์–ด๋‘์—ˆ์„ ์‹œ์— ๋…ผ๋ฆฌ์  ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ œ๊ณตํ•˜๋ฉฐ ์ด๋Š” ๋ฆฌ๋”๋นŒ๋ฆฌํ‹ฐ๊ฐ€ ์ƒ์Šนํ•œ๋‹ค. : ํƒ€์ž… ์–ด๋–ค๊ฒƒ์ด๋“  ์˜ฌ ์ˆ˜ ์žˆ์–ด : Numberํƒ€์ž…์—์„œ ํŒŒ์ƒ๋œ ํด๋ž˜์Šค๋งŒ ์˜ฌ ์ˆ˜ ์žˆ์–ด (Integer, Double) • ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ ํƒ€์ž…์˜ ์ œํ•œ - class Box { ... } - ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์‹œ์— ํƒ€์ž…์ธ์ž๋กœ Number ๋˜๋Š” ์ด๋ฅผ ์ƒ์†ํ•˜๋Š” ํด๋ž˜์Šค๋งŒ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. class Box { private T obj;.. 2022. 12. 18.
[D+61] ํ™”๋ฉด๊ตฌํ˜„ ๊ตญ๋น„์ง€์› D+61 - ํ™”๋ฉด ๊ตฌํ˜„ - UI์„ค๊ณ„ ๋‚ด์šฉ ํ™•์ธ • UI (User Interface) - CLI (๋ช…๋ น์–ด ๋ผ์ธ ์ธํ„ฐํŽ˜์ด์Šค, Command Line Interface) : ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ์ด ์ƒํ˜ธ ์ž‘์šฉ์„ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ช…๋ น๊ณผ ์ถœ๋ ฅ์ด ๋ฐ์ŠคํŠธ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋œ๋‹ค. - GUI (๊ทธ๋ž˜ํ”ฝ ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค, Graphical User Interface) : ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ์˜ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ์š”์†Œ๋“ค์ด ๊ทธ๋ž˜ํ”ฝ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋œ๋‹ค. - NUI (์ž์—ฐ์–ด ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค, Natural User Interface) : ๋ชธ์ง“, ๋ง์†Œ๋ฆฌ๋งŒ์œผ๋กœ๋„ IT๊ธฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. • UI ํ‘œ์ค€ ๋ฐ ์ง€์นจ - UIํ‘œ์ค€์€ ์‹œ์Šคํ…œ ์ „๋ฐ˜์— ๊ฑธ์ณ ๋ชจ๋“  UI์— ๊ณตํ†ต์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๋‚ด์šฉ์„ ์˜๋ฏธํ•˜๋ฉฐ, ํ™”๋ฉด ๊ตฌ์„ฑ ๋‚ด์šฉ์ด๋‚˜.. 2022. 12. 16.
[D+60] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ7 (์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐœ๋…, ์ œ๋„ค๋ฆญ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•) ๊ตญ๋น„์ง€์› D+60 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ7 - ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐœ๋… • ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Generic Programming)์ด๋ž€? - ์ž๋ฃŒํ˜•์ด๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ์žฌํ™œ์šฉ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด๋‹ค. ์žฌํ™œ์šฉ์„ฑ : ๋ฐ•์Šค๋ฅผ ํ•˜๋‚˜๋งŒ ๋งŒ๋“ค๋ฉด ๊ฐ๊ฐ์˜ ๋ฐ•์Šค๋ฅผ ๊ตฌํ˜„๋‚ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์œ ์—ฐ์„ฑ : ์™ธ๋ถ€๋ณ€ํ™”์— ๋Œ€ํ•ด ๋Œ€์‘์„ ์ž˜ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. - ๋น„๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ์„ฑํ–ฅ์„ ๊ฐ€์ง€๋ฉฐ ๊ฐ์ฒด์ง€ํ–ฅ์ ์ด๋‚˜ ๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๋ฒ—์–ด๋‚˜ "๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„" ํ•˜๊ฒŒ๋” ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค. - ์ผ๋ฐ˜ํ™” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. (Object๊ฐ€ ๋ฌด์—‡์ด๋ƒ์— ๋”ฐ๋ผ์„œ Class๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๊ฒ ๋‹ค) - ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์‹œ์ ์— ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. • ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด์ „ ๋งŒ์•ฝ ๋‚ด๊ฐ€ ๋ฐ•์Šค ๊ฐ์ฒด ์•ˆ์— ๊ณผ์ผ์„ ๋„ฃ์–ด์„œ.. 2022. 12. 15.
[D+60] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ6 (Object ํด๋ž˜์Šค, Wrapper ํด๋ž˜์Šค, Arrays ํด๋ž˜์Šค) ๊ตญ๋น„์ง€์› D+60 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ6 - Object ํด๋ž˜์Šค • ๊ฐœ๋… - JAVA์˜ ๋ชจ๋“  ํด๋ž˜์Šค์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์ด๋‹ค. - ๊ธฐ๋ณธ์ ์ด๋ฉด์„œ ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. • ์ฃผ์š”๊ธฐ๋Šฅ - finalize : ์ธ์Šคํ„ด์Šค์˜ ์†Œ๋ฉธ์ž - equals : ์ธ์Šคํ„ด์Šค์˜ ๋น„๊ต - clone : ์ธ์Šคํ„ด์Šค์˜ ๋ณต์ œ Wrapper ํด๋ž˜์Šค • ๊ฐœ๋… - wrapper์˜ ๊ฐ์‹ธ๋‹ค(wrap)๋ผ๋Š” ๋œป์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ๊ธฐ๋ณธ์ž๋ฃŒํ˜•(ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒํƒ€์ž…)์„ ๊ฐ์‹ธ์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ ํด๋ž˜์Šค์ด๋‹ค. - int๋‚˜ doubleํ˜•์„ ๊ฐ์ฒดํ™”ํ•˜์—ฌ ํž™์— ๋„ฃ๋Š”๋‹ค. • ์ข…๋ฅ˜ - Boolean - Short - Integer - Byte - Float - Double • ์›๋ฆฌ - Boxing : ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒํƒ€์ž…์„ ๊ฐ์ฒดํ™” ํ•˜๋Š” ๊ฒƒ์„ Boxing์ด๋ผ๊ณ  ํ•œ๋‹ค. - UnBoxing : B.. 2022. 12. 15.
[D+59] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ5 (์˜ˆ์™ธ) ๊ตญ๋น„์ง€์› D+59 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ5 - • ์˜ˆ์™ธ๋ž€? (Exception) - ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์‹œ ์‚ฌ์šฉ์ž ๋˜๋Š” ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ๋กœ ์ธํ•ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋Œ€์‘ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋น„์ •์ƒ์  ์ƒํ™ฉ - ์ฝ”๋“œ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ Run-time์— ๋ฐœ์ƒํ•˜๋Š” ๋น„์ •์ƒ์  ์ƒํ™ฉ - ์˜ˆ์™ธ๋Š” H/W์  ์ฒ˜๋ฆฌ๋ฐฉ์‹๊ณผ S/W์  ์ฒ˜๋ฆฌ๋ฐฉ์‹์ด ์žˆ์œผ๋‚˜ JVM์˜ ๊ฒฝ์šฐ ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌ ๋กœ์ง์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”ํ•œ ์ข…๋ฃŒ ์ฒ˜๋ฆฌํ•œ๋‹ค. => ๋”์ด์ƒ JAVA์‹คํ–‰ ์ฝ”๋“œ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ฌ ์ˆ˜ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. • ์˜ˆ์™ธ์˜ ์ข…๋ฅ˜ - java.lang.ArithmeticException : ์ˆ˜ํ•™ ์—ฐ์‚ฐ์˜ ์˜ˆ์™ธ - java.util.InputMismatchException : Scanner๋ฅผ ํ†ตํ•œ ๊ฐ’์˜ ์ž…๋ ฅ ์˜ˆ์™ธ - ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ ๋ฐœ์ƒ์— ๋”ฐ๋ฅธ ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  .. 2022. 12. 13.