Banner

My Tech Blog (ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด/Java)

1. ์ œ๋„ค๋ฆญ์Šค(Generics) ์ œ๋„ค๋ฆญ์Šค๋ž€?์ œ๋„ค๋ฆญ์Šค(generics)๋Š” ์ž๋ฐ” J2SE 5.0 ๋ฒ„์ „ ์ดํ›„์— ๋„์ž…๋œ ๊ฐœ๋…์œผ๋กœ, ์ž๋ฃŒํ˜•์„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋ฃŒํ˜•์„ ๊ฐ•์ œ๋กœ ๋ฐ”๊ฟ€ ๋•Œ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ์บ์ŠคํŒ…(Casting) ์˜ค๋ฅ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ArrayList๋Š” ์ž๋ฐ”์˜ **์ œ๋„ค๋ฆญ์Šค(Generics)**๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์ด๋‹ค. ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ArrayList์— ์ €์žฅํ•  ์š”์†Œ์˜ ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๋•๋ถ„์— ํ˜• ๋ณ€ํ™˜ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. (ํƒ€์ž… ์•ˆ์ •์„ฑ ๋ณด์žฅ) ArrayList๋Š” ArrayList ํ˜•ํƒœ๋กœ ์ •์˜ํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ E๋Š” ์ €์žฅํ•  ์š”์†Œ์˜ ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋‹ค. ArrayList,ArrayList์ฒ˜๋Ÿผ ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ •..
1. ์ž๋ฐ”์˜ ์ž๋ฃŒํ˜• String Buffer๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ์— ์•ž์„œ ์ž๋ฐ”์˜ ์ž๋ฃŒํ˜•์—๋Š” ๊ธฐ๋ณธํ˜•(Primitive Type)๊ณผ ์ฐธ์กฐํ˜•(Reference Type)์ด ์žˆ๋‹ค. ๊ธฐ๋ณธํ˜•์€ ๊ฐ’ ์ž์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ •์ˆ˜ํ˜•, ์‹ค์ˆ˜ํ˜•, ๋ฌธ์žํ˜•(char), ๋…ผ๋ฆฌํ˜•์ด ๊ธฐ๋ณธํ˜•์— ์†ํ•œ๋‹ค. ๋ฐ˜๋ฉด, ์ฐธ์กฐํ˜• ์ฃผ์†Œ๊ฐ’์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, ์‹ค์ œ๋กœ๋Š” ์ฃผ์†Œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ˜•ํƒœ์ด๋‹ค.  ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋ฐ”์˜ 8๊ฐ€์ง€ ๊ธฐ๋ณธํ˜•(Primitive Type)์ด ์•„๋‹Œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์ฐธ์กฐํ˜•์— ์†ํ•œ๋‹ค. ๋ฆฌ์ŠคํŠธ๋‚˜ ๋งต, ์ง‘ํ•ฉ์ฒ˜๋Ÿผ ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” ์ž๋ฐ” ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒํ˜•๋“ค์ด ์ฐธ์กฐํ˜•์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”ํžˆ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” String๋„ ์ฐธ์กฐํ˜•์— ์†ํ•œ๋‹ค. ์ฐธ์กฐํ˜•(Reference Type)- ํด๋ž˜์Šค (Class): ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๊ฐ..
์—ฌ๋Ÿฌ๋ถ„๋“ค ์ž…๋ ฅ๋„๊ตฌ Scanner ๋งŽ์ด ์“ฐ์‹œ์ฃ ? ๊ทธ๋Ÿฐ๋ฐ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€๋‹ค ๋ณด๋ฉด Scanner๋ณด๋‹ค BufferedReader / BufferedWriter์„ ๋” ๋งŽ์ด ์“ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ ์ด ๋” ์ข‹์„๊นŒ์š”?    ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ž…๋ ฅ์€, ํ‚ค๋ณด๋“œ์˜ ์ž…๋ ฅ์ด ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ์ฆ‰์‹œ ๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋žจ์— ์ „๋‹ฌ๋ฐ˜๋ฉด ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ž…๋ ฅ์€, ํ‚ค๋ณด๋“œ์˜ ์ž…๋ ฅ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ํ•œ ๋ฌธ์ž์”ฉ ๋ฒ„ํผ๋กœ ์ „์†กํ•œ๋‹ค. ๋ฒ„ํผ๊ฐ€ ๊ฐ€๋“ ์ฐจ๊ฑฐ๋‚˜ ๊ฐœํ–‰ ๋ฌธ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ํ•œ ๋ฒˆ์— ํ”„๋กœ๊ทธ๋žจ์— ์ „๋‹ฌ์ฆ‰, ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ชจ์•„์„œ ์ „๋‹ฌ Scanner๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ† ํฐ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋„์–ด์“ฐ๊ธฐ์™€ ๊ฐœํ–‰๋ฌธ์ž๋ฅผ ๊ฒฝ๊ณ„๋กœ ํ•˜์—ฌ ์ž…๋ ฅ ๊ฐ’์„ ์ธ์‹๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๊ฐ€๊ณตํ•  ํ•„์š”๊ฐ€ ์—†์–ด ํŽธ๋ฆฌํ•˜๋‹ค.BufferedReader์€ ์ž…๋ ฅ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๊ฐ€ St..
โœ… List๋ฅผ map์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ด์œ  db๋‚˜ API์—์„œ ๋ฐ์ดํ„ฐ ๋ฐ›์•„์™€์„œ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์†๋„๋‚˜ ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ map์ด ๋น ๋ฆ„์ฆ‰, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋‚˜, ๋น ๋ฅธ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด์„œ ํ•„์š”ํ•จ.์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” map์€ ํ•ด์‹œ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ ํ‚ค,๊ฐ’ ์Œ ํ˜•์‹์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ.  JSON์ด๋ž‘ ๋น„์Šทํ•œ ํ˜•์‹์ด์ง€๋งŒ ์ž๋ฐ”์˜ map์€ ํ‚ค๊ฐ’ ํƒ€์ž…์„ ์ œ๋„ค๋ฆญ์œผ๋กœ ์ง€์ •ํ•ด ์ฃผ์–ด์•ผ ํ•˜๊ณ Map์ฒ˜๋Ÿผ ๋ช…ํ™•ํ•œ ํƒ€์ž…์„ ์ง€์ •ํ•ด ์ฃผ์–ด์•ผ ํ•จ. [JSON]{ "name": "Alice", "age": 30, "isEmployee": true} [JAVA map]Map person = new HashMap();person.put("name", "Alice");person.put("age", 30);person.put("isEmployee", ..
๋‹จ, ์ด ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์€ ์ƒ์„ฑ์ž, ์ƒ์† ์ด๋ผ๋Š” ๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ๋งŒ ์ดํ•ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค~ ์ œ๊ฐ€ ์ƒ์„ฑ์ž, ์ƒ์† ์š”์•ฝ ์ •๋ฆฌ ํ•œ๊ฑฐ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”~ [Java] ์˜ˆ์‹œ ์ฝ”๋“œ๋กœ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๋Š” ์ž๋ฐ”์˜ ์ƒ์† & ์ƒ์„ฑ์ž1. ์ƒ์† 1) ๊ฐœ๋… - ๋ถ€๋ชจํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ๋ฉค๋ฒ„ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ์ƒ์† ๋ฐ›์•„ ์‚ฌ์šฉ - ํด๋ž˜์Šค ์žฌ์‚ฌ์šฉ => ์ค‘๋ณต ์ฝ”๋“œ ์ค„์—ฌ์„œ ํšจ์œจ์„ฑ ์ฆ๋Œ€ 2) ํŠน์ง• - '์ž์‹ํด๋ž˜์Šค extends ๋ถ€๋ชจํด๋ž˜์Šค'awesomepossum.tistory.com ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ์–ด๋ ค์šด ๋ฌธ์ œ ์žˆ์œผ์‹œ๋ฉด ๋Œ“๊ธ€๋กœ ๋ฌธ์˜์ฃผ์„ธ์š”~ ์ •์„ฑ๊ป ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค 1. ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ = ๋ฉ”์„œ๋“œ ์ค‘๋ณต ์ •์˜, ๊ณ„์‚ฐ๊ธฐ - ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ธ์ž๋งŒ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ ์ค‘๋ณต ์ •์˜ - ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผ ํ•˜๊ณ , ์ธ์ž์˜ ๊ฐœ์ˆ˜๋‚˜ ํƒ€์ž…์ด ํ‹€๋ ค์•ผ ํ•œ๋‹ค. - ..
1. ์ƒ์†  1) ๊ฐœ๋…    - ๋ถ€๋ชจํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ๋ฉค๋ฒ„ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ์ƒ์† ๋ฐ›์•„ ์‚ฌ์šฉ   - ํด๋ž˜์Šค ์žฌ์‚ฌ์šฉ => ์ค‘๋ณต ์ฝ”๋“œ ์ค„์—ฌ์„œ ํšจ์œจ์„ฑ ์ฆ๋Œ€  2) ํŠน์ง•   - '์ž์‹ํด๋ž˜์Šค extends ๋ถ€๋ชจํด๋ž˜์Šค' ํ˜•์‹์œผ๋กœ ์ƒ์†   - ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค๋งŒ ์ƒ์† ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ.      => C extends A, B (x)     => C extends B , B extends A (o)    - private ์ ‘๊ทผ ์ œํ•œ์„ ๊ฐ–๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ๋Š” ์ง์ ‘ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€     => ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋ƒ? getter, setter ์‚ฌ์šฉ    3) ์ƒ์† ๊ด€๋ จ ํ‚ค์›Œ๋“œ   - extends ์ƒ์† ๋ฐ›์„ ๋•Œ ํด๋ž˜์Šค๋ช… ์˜†์— ์‚ฌ์šฉ   - super ์ž์‹ ํด๋ž˜์Šค์—์„œ ๋ถ€๋ชจ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ..
์˜ˆ์™ธ์ฒ˜๋ฆฌ 1. ๊ฐœ๋… ์˜ˆ์™ธ ๋ฐœ์ƒํ•  ๊ฒƒ์„ ๋Œ€๋น„ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐœ๋… ์˜ค๋ฅ˜์™€๋Š” ๋‹ค๋ฅด๋ฉฐ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰ ๋„์ค‘์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์• ์— ๋Œ€ํ•œ ๋Œ€์ฒ˜ 2. ํŠน์ง• - try~catch~finally ๊ตฌ๋ฌธ์œผ๋กœ ์ œ์–ด - ์˜ˆ์™ธ ๋„˜๊ธฐ๊ธฐ ์œ„ํ•ด throws ์‚ฌ์šฉ 3. ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ‚ค์›Œ๋“œ - try ๋ธ”๋ก : ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ํฌํ•จ - catch ๋ธ”๋ก : try ๋ธ”๋ก ๋‚ด์—์„œ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌ - finally : ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํฌํ•จ - throw : ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ง์ ‘ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ - throws : ํ•ด๋‹น ๋ฉ”์„œ๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ํ˜ธ์ถœ์ž์—๊ฒŒ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์œ„์ž„ 4. ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐฉ์‹try { // ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒ๋ ๋งŒํ•œ ์ฝ”๋“œ } catch(FileNotFoun..
์•ˆ๋…•ํ•˜์„ธ์š”์˜ค๋Š˜์€ ์ž๋ฐ”์˜ ์ถ”์ƒํด๋ž˜์Šค(abstract) ์™€ ์ธํ„ฐํŽ˜์ด์Šค(Interface) ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ด์š” ์—ฌ๋Ÿฌ๋ถ„๋“ค ์ œ๊ฐ€ ์ œ์ผ ์ข‹์•„ํ•˜๋Š” ์–ธ์–ด๋Š” ์ž๋ฐ”์ธ๋ฐ์š”๊ทธ ์ค‘ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒํด๋ž˜์Šค์— ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…์ด ๋งŽ์•„ ์ •๋ฆฌํ•ด ๋ณด๊ณ ์ž ๊ธ€ ๋‚จ๊ฒจ๋ด…๋‹ˆ๋‹ค~ ์ œ ๋ธ”๋กœ๊ทธ๋Š” ์ˆ˜์ต ์ฐฝ์ถœ์„ ํ•˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค์ œ๊ฐ€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ํŽธํ•˜๊ฒŒ ๋ณด๊ณ  ์ •๋ฆฌํ•˜๋ ค๊ณ  ๋งŒ๋“  ๋ธ”๋กœ๊ทธ์ด๋‹ˆ ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์Šต๋‹ˆ๋‹ค๊ถ๊ธˆํ•œ์ ์ด๋‚˜ ์ฝ”๋“œ์— ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌํ•˜์‹œ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”~ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค 1. ์ถ”์ƒํด๋ž˜์Šค(abstract class) - ํ•˜๋‚˜ ์ด์ƒ์˜ ์ถ”์ƒ ๋ฉ”์„œ๋“œ ํฌํ•จํ•˜๋Š” ํด๋ž˜์Šค- ์ฆ‰ ์™„์„ฑ๋œ ๋ฉ”์„œ๋“œ, ๋ฏธ์™„์„ฑ๋œ ๋ฉ”์„œ๋“œ ๋ชจ๋‘ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ชจ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”์ƒ๋ฉ”์„œ๋“œ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด์•ผ ํ•จ- ์—ฌ๊ธฐ์„œ ์™„์„ฑ๋œ ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์„œ๋“œ ์˜†์— { } ์ค‘๊ด„ํ˜ธ๊ฐ€ ์žˆ๋Š”๊ฒƒ. => ๊ตฌํ˜„๋œ ๊ฒƒ์œผ๋กœ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)
์ƒ๋‹จ์œผ๋กœ