์ค๋์ Java์์ ์์ฃผ ๋ง์ฃผํ๊ฒ ๋ ์ธ ๊ฐ์ง ๊ฐ๋ , ์ธํฐํ์ด์ค, ์์ธ ์ฒ๋ฆฌ, ์ ๋ค๋ฆญ์ ๋ํด ํ์ตํ๋ค.
๊ฐ๊ฐ์ ๊ฐ๋ ์ ์๋ก ๋ค๋ฅธ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง,
๊ณตํต์ ์ผ๋ก ์๋ฐ๋ฅผ ๋ ์ ์ฐํ๊ณ ๊ฒฌ๊ณ ํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ํต์ฌ ์์๋ผ๋ ์ ์ด ์ธ์ ๊น์๋ค.
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ ์ ๋ฆฌ
๐ท ์ธํฐํ์ด์ค (interface)
์ธํฐํ์ด์ค๋ ํด๋์ค๊ฐ ๊ตฌํํด์ผ ํ๋ ๊ธฐ๋ฅ์ ํ์ ์ ์ํ๋ ์ญํ ์ ํ๋ค.
๊ตฌํ๋ถ ์์ด ๋ฉ์๋์ ํํ๋ง ์ ์ธํ๊ณ , ์ด๋ฅผ ๊ตฌํํ๋ ํด๋์ค๊ฐ ์ค์ ๋์์ ์ฑ์ ๋ฃ๋ ๋ฐฉ์์ด๋ค.
์ฝ๋๋ฅผ ์ ์ฐํ๊ฒ ์ค๊ณํ ์ ์๊ฒ ํด ์ฃผ๋ฉฐ, ๋คํ์ฑ๊ณผ ํจ๊ป ์ฐ์ผ ๋ ํฐ ์ฅ์ ์ ๋ฐํํ๋ค.
ํนํ ํ๋์ ๊ฐ์ฒด๋ฅผ ๋ค์ํ ํํ๋ก ๋ค๋ฃฐ ์ ์๊ฒ ํด ์ค๋ค๋ ์ ์์, ์ค๋ฌด์์๋ ์์ฃผ ์ฌ์ฉ๋๋ค๊ณ ํ๋ค.
๐ถ ์์ธ ์ฒ๋ฆฌ (try-catch-finally, throws)
์ฝ๋ ์คํ ์ค์ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ ์ํฉ์ ์ฌ์ ์ ๋๋นํ๊ณ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ์์ด๋ค.
try-catch ๋ธ๋ก์ผ๋ก ์ค๋ฅ๋ฅผ ๊ฐ์ธ๊ณ , ํ์์ ๋ฐ๋ผ finally๋ก ํ์ฒ๋ฆฌ๋ฅผ ํ๊ฑฐ๋ throws๋ก ์์ธ๋ฅผ ์์ํ ์ ์๋ค.
์์ธ ์ฒ๋ฆฌ๋ ๋จ์ํ ๋ฌธ๋ฒ ์ด์์ผ๋ก, ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ์๋น์ค ์์ ์ฑ์ ์งํค๋ ์ค์ํ ๊ตฌ์กฐ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๐ธ ์ ๋ค๋ฆญ (Generic)
์ ๋ค๋ฆญ์ ํด๋์ค๋ ๋ฉ์๋๋ฅผ ์ ์ธํ ๋ ํ์ ์ ๊ณ ์ ํ์ง ์๊ณ , ์ฌ์ฉํ ๋ ์ง์ ํ ์ ์๋๋ก ๋ง๋๋ ๋ฌธ๋ฒ์ด๋ค.
ํนํ ArrayList<T>, Map <K, V>์ฒ๋ผ ์๋ฃํ์ ์ ์ฐํ๊ฒ ์ง์ ํ๊ณ ,
์ปดํ์ผ ํ์์ ํ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ด ์์ ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์์ ๋์ฌ์ฃผ๋ ๋๊ตฌ๋ผ๊ณ ๋๊ผ๋ค.
์ค๋์ T, E, K, V ๊ฐ์ ํ์ ํ๋ผ๋ฏธํฐ๋ค์ ์ฒ์ ์ ๋๋ก ๋ณด๋ฉฐ ์ต์ํด์ง๋ ์๊ฐ์ ๊ฐ์ก๋ค.
๐งก ๋๋ ์
์ค๋ ๋ฐฐ์ด ์ธ ๊ฐ์ง ๊ฐ๋ ์ ์๋ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ ํํํ๊ณ ์ ์ฐํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ์ฅ์น๋ผ๋ ๋๋์ด์๋ค.
์ธํฐํ์ด์ค๋ ์ฒ์์ “์ ๊ตณ์ด ์ด๊ฑธ ์จ์ผ ํ์ง?” ์ถ์์ง๋ง,
ํด๋์ค ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ , ๊ธฐ๋ฅ์ ์ค๊ณ ์์ฒด๋ฅผ ๋ถ๋ฆฌํ ์ ์๋ค๋ ์ ์์ ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ํ ๋ ๊ผญ ์ฐ์ด๊ฒ ๊ตฌ๋ ์ถ์๋ค.
์์ธ ์ฒ๋ฆฌ๋ ๋จ์ํ try-catch๋ฅผ ์ฐ๋ ๊ฑธ ๋์ด์, ์ด๋ค ์ํฉ์ ์์ธ๋ก ๋ณผ ๊ฒ์ธ๊ฐ, ์ด๋ค ๋ฉ์์ง๋ฅผ ์ค ๊ฒ์ธ๊ฐ๋ฅผ ๊ณ ๋ฏผํ๊ฒ ๋์๋ค.
์์ผ๋ก ๋ ๋ณต์กํ ์ค๊ณ๋ ๋ก์ง์ ๋ค๋ฃฐ ์ผ์ด ๋ง์์ง ํ ๋ฐ,
์ค๋์ฒ๋ผ ๊ฐ๋ ํ๋ํ๋๋ฅผ ์ ๋๋ก ์ง๊ณ ๋์ด๊ฐ๋ฉด์
๋ ๋จ๋จํ ๊ฐ๋ฐ์๊ฐ ๋์ด๊ฐ๊ณ ์ถ๋ค. ๐ช๐ง