๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ๏ธ DevLog/Devcourse

[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 29์ผ์ฐจ

by hyebin (Helia) 2025. 5. 20.
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ Java์—์„œ ์ž์ฃผ ๋งˆ์ฃผํ•˜๊ฒŒ ๋  ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…, ์ธํ„ฐํŽ˜์ด์Šค, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ์ œ๋„ค๋ฆญ์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

 

๊ฐ๊ฐ์˜ ๊ฐœ๋…์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ,

๊ณตํ†ต์ ์œผ๋กœ ์ž๋ฐ”๋ฅผ ๋” ์œ ์—ฐํ•˜๊ณ  ๊ฒฌ๊ณ ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ•ต์‹ฌ ์š”์†Œ๋ผ๋Š” ์ ์ด ์ธ์ƒ ๊นŠ์—ˆ๋‹ค.


๐Ÿ“˜ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ

๐Ÿ”ท ์ธํ„ฐํŽ˜์ด์Šค (interface)

์ธํ„ฐํŽ˜์ด์Šค๋Š” ํด๋ž˜์Šค๊ฐ€ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ํ‹€์„ ์ •์˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๊ตฌํ˜„๋ถ€ ์—†์ด ๋ฉ”์„œ๋“œ์˜ ํ˜•ํƒœ๋งŒ ์„ ์–ธํ•˜๊ณ , ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ์‹ค์ œ ๋™์ž‘์„ ์ฑ„์›Œ ๋„ฃ๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ฝ”๋“œ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ฃผ๋ฉฐ, ๋‹คํ˜•์„ฑ๊ณผ ํ•จ๊ป˜ ์“ฐ์ผ ๋•Œ ํฐ ์žฅ์ ์„ ๋ฐœํœ˜ํ•œ๋‹ค.

ํŠนํžˆ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค๋Š” ์ ์—์„œ, ์‹ค๋ฌด์—์„œ๋„ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

๐Ÿ”ถ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ (try-catch-finally, throws)

์ฝ”๋“œ ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜ ์ƒํ™ฉ์„ ์‚ฌ์ „์— ๋Œ€๋น„ํ•˜๊ณ  ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋‹ค.

try-catch ๋ธ”๋ก์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ๊ฐ์‹ธ๊ณ , ํ•„์š”์— ๋”ฐ๋ผ finally๋กœ ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฑฐ๋‚˜ throws๋กœ ์˜ˆ์™ธ๋ฅผ ์œ„์ž„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ๋ฒ• ์ด์ƒ์œผ๋กœ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜๊ณผ ์„œ๋น„์Šค ์•ˆ์ •์„ฑ์„ ์ง€ํ‚ค๋Š” ์ค‘์š”ํ•œ ๊ตฌ์กฐ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

๐Ÿ”ธ ์ œ๋„ค๋ฆญ (Generic)

์ œ๋„ค๋ฆญ์€ ํด๋ž˜์Šค๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•  ๋•Œ ํƒ€์ž…์„ ๊ณ ์ •ํ•˜์ง€ ์•Š๊ณ , ์‚ฌ์šฉํ•  ๋•Œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

ํŠนํžˆ ArrayList<T>, Map <K, V>์ฒ˜๋Ÿผ ์ž๋ฃŒํ˜•์„ ์œ ์—ฐํ•˜๊ฒŒ ์ง€์ •ํ•˜๊ณ ,

์ปดํŒŒ์ผ ํƒ€์ž„์— ํƒ€์ž… ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์–ด ์•ˆ์ „์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋™์‹œ์— ๋†’์—ฌ์ฃผ๋Š” ๋„๊ตฌ๋ผ๊ณ  ๋А๊ผˆ๋‹ค.

์˜ค๋Š˜์€ T, E, K, V ๊ฐ™์€ ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ์ฒ˜์Œ ์ œ๋Œ€๋กœ ๋ณด๋ฉฐ ์ต์ˆ™ํ•ด์ง€๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.

 


๐Ÿงก ๋А๋‚€ ์ 

์˜ค๋Š˜ ๋ฐฐ์šด ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์€ ์ž๋ฐ”์˜ ๊ตฌ์กฐ๋ฅผ ๋” ํƒ„ํƒ„ํ•˜๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์žฅ์น˜๋ผ๋Š” ๋А๋‚Œ์ด์—ˆ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ฒ˜์Œ์—” “์™œ ๊ตณ์ด ์ด๊ฑธ ์จ์•ผ ํ•˜์ง€?” ์‹ถ์—ˆ์ง€๋งŒ,

ํด๋ž˜์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ๊ธฐ๋Šฅ์˜ ์„ค๊ณ„ ์ž์ฒด๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์•ž์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ ๊ผญ ์“ฐ์ด๊ฒ ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค.

 

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋„ ๋‹จ์ˆœํžˆ try-catch๋ฅผ ์“ฐ๋Š” ๊ฑธ ๋„˜์–ด์„œ, ์–ด๋–ค ์ƒํ™ฉ์„ ์˜ˆ์™ธ๋กœ ๋ณผ ๊ฒƒ์ธ๊ฐ€, ์–ด๋–ค ๋ฉ”์‹œ์ง€๋ฅผ ์ค„ ๊ฒƒ์ธ๊ฐ€๋ฅผ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

์•ž์œผ๋กœ ๋” ๋ณต์žกํ•œ ์„ค๊ณ„๋‚˜ ๋กœ์ง์„ ๋‹ค๋ฃฐ ์ผ์ด ๋งŽ์•„์งˆ ํ…๋ฐ,

์˜ค๋Š˜์ฒ˜๋Ÿผ ๊ฐœ๋… ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์ œ๋Œ€๋กœ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ฉด์„œ

๋” ๋‹จ๋‹จํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๊ฐ€๊ณ  ์‹ถ๋‹ค. ๐Ÿ’ช๐Ÿง 

๋ฐ˜์‘ํ˜•