๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Note for moment

์ œ๋„ค๋ฆญ(Generic) - ํ™œ์šฉ์˜ ์˜ˆ : ์ž๋ฃŒ๊ตฌ์กฐ

by ๐Ÿ’œautumn 2020. 9. 5.

Generic์€ ์ฝ”๋“œ๋ธ”๋Ÿญ ๋‚ด๋ถ€์—์„œ ์“ธ ์ž๋ฃŒํ˜•์„ ์™ธ๋ถ€์—์„œ ์ง€์ •ํ•˜๋Š”๊ฒƒ 

 

* NonGeneric

  : Objectํƒ€์ž…์˜ ํ•„๋“œ๊ฐ€ ์„ ์–ธ๋œ ํด๋ž˜์Šค๋กœ, ํ•„๋“œ์— ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์˜ ์ €์žฅ(ํฌํ•จ)์ด ๊ฐ€๋Šฅํ•˜๋‹ค

  : ์ €์žฅ์— ๋Œ€ํ•œ ์ œ์•ฝ์€ ์—†์ง€๋งŒ ํšจ์œจ์„ฑ์ด ๋‚ฎ๋‹ค (๊ฐ์ฒดํ˜•๋ณ€ํ™˜์„ ์ž˜ํ•ด์ค˜์•ผํ•˜๊ธฐ๋•Œ๋ฌธ)

  : ํ•„๋“œ์— ์ €์žฅ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ๊ฐ์ฒดํ˜•๋ณ€ํ™˜์ด ์š”๊ตฌ๋˜๋ฉฐ instanceof ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•œ ๊ฒ€์ฆ์„ ํ•„์š”๋กœํ•œ๋‹ค

 

 

* Generic

 : ์ œ๋„ค๋ฆญํƒ€์ž…์˜ ํ•„๋“œ๊ฐ€ ์„ ์–ธ๋œ ํด๋ž˜์Šค๋กœ, ํ•„๋“œ์— ๋งž๋Š” ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค ์ €์žฅ(ํฌํ•จ)๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค

 : ์ €์žฅ์— ๋Œ€ํ•œ ์ œ์•ฝ์€ ์กด์žฌํ•˜์ง€๋งŒ ์‚ฌ์šฉ์˜ ํšจ์œจ์„ฑ์ด ๋†’์œผ๋ฉฐ, ํ˜• ๋ณ€ํ™˜ ์—†์ด๋„ ๊ฐ’์„ ๋ฐ˜ํ™˜๋ฐ›์•„ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

   * Generic Type? ํ•„๋“œ์˜ ์ง€์ •์ž๋ฃŒํ˜•์œผ๋กœ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค ์ž‘์„ฑ์‹œ์— ์„ ์–ธํ•œ๋‹ค.

     : <>๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Wrapper ํด๋ž˜์Šค ์ž๋ฃŒํ˜•์„ ๊ธฐ์ž…ํ•˜๋ฉฐ ์ปด๋งˆ(,)๊ธฐํ˜ธ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๋‹ค.

     : ๋˜ํ•œ ์ œ๋„ค๋ฆญ์— ํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ œ์•ฝ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค

 

 # Generic์„ ํ™œ์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ : ์ž๋ฃŒ๊ตฌ์กฐ Interface์™€ ๊ทธ๊ฒƒ์„ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค 

   ๊ฐ’์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ(CRUD) ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ผ๊ด„์ฒ˜๋ฆฌ๊ฐ€ ์šฉ์ด(map์ œ์™ธ)

๋Œ“๊ธ€