1995๋
์ ์ฒ์ ๋์
๋ Java๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค ํ๋๊ฐ ๋์์ต๋๋ค. ์ด๋ฌํ ์ฑ๊ณต์ Java๊ฐ ์๋ก ๋ค๋ฅธ ์ด์ ์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ 30์ต ๋ ์ด์์ ์ฅ์น์์ ์คํ๋๋ ํ๋ซํผ ๋
๋ฆฝ์ ์ธ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ์ ๋นํ๋ฉ๋๋ค. ๋ค๋ฅธ ์ฅ์ ์ค์์๋ Java๋ ๋จ์ํจ์ด ๋งค๋ ฅ์ ์
๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Java๋ ๋ค๋ฅธ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋นํด ์๋์ ์ผ๋ก ๋ฐฐ์ฐ๊ณ ๋ฐฐํฌํ๊ธฐ ์ฝ์ต๋๋ค. ๋ํ Java๋ ์ด๋ณด์์๊ฒ ์น์ํ๋ฉฐ ๋
ธ๋ ฅํ๋ฉด ๋น ๋ฅด๊ฒ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ์ฅ ๋ถ์ง๋ฐํ ํ์๋ค๋ ์ด๋ ค์์ ์ง๋ฉดํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ด๋ ค์ด ์ฃผ์ ์ ์ด๋ฅผ "๊ทน๋ณต"ํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์๋์ ์ค๋ช
๋์ด ์์ต๋๋ค.
์ด๋ณด์์๊ฒ Java๊ฐ ์ด๋ ค์ ๋ณด์ด๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๊ธฐ์ ์ ์ธ ๋ฐฐ๊ฒฝ์ด ์ด๋ฏธ ์๋ค๋ฉด Java๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ด ์์ ์ฃฝ ๋จน๊ธฐ ์ผ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ์์ ํ ์ด๋ณด์๋ผ๋ฉด ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ Java ๊ตฌ๋ฌธ์ด ์ฌ๋ฌ ํ๋ซํผ์ ํตํฉ๋ ์ ์๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์๊ณ ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ํ๋ ์์ํฌ๋ฅผ ๊ฐ์ง ์ ์ ์ผ๋ก ์ ํ์ด ์ง์ ๋ ๊ธฐ๊ณ ์ธ์ด๋ผ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ณด์๋ฅผ ์ํ "๊ฐ์ฅ ์ธ๊ธฐ ์๋" ์ฃผ์ ๋ ๋ฌด์์
๋๊น?
๋ณ์ ๊ฐ์์ฑ
์ง์ญ ๋ณ์๋ ์์ ํ ์ด๋ณด์์๊ฒ๋ ์ฝ๊ฐ ๋ฒ๊ฑฐ๋ก์ธ ์ ์์ต๋๋ค(๋
ธ๋ จํ ํ์ต์์๊ฒ๋ ์ฐ๋ค๋ฐ๋). Java์์ ์ง์ญ ๋ณ์๋ ๋ธ๋ก ๋ด๋ถ์ ๊ฐ์ ๋ณด์ ํ๊ธฐ ์ํด ์์ ๋ณ์๊ฐ ํ์ํ ๋ ์ถ๊ฐ๋ก ์ ์ฉํ๋ฉฐ ๋ค๋ฅธ ๋ฉ์๋์๋ ํด๋น ๋ณ์๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๊น๋ค๋ก์ด ๊ฒ ๊ฐ๋์? ๋น์ ์ ํผ์๊ฐ ์๋๋๋ค! ์ด๊ฒ์ด ๋ฐ๋ก ์ง์ญ ๋ณ์์ ๋ํ ๊ฐ์๊ฐ ์๋ ์ด์ ์
๋๋ค.
๋ฐฉ๋ฒ์ ๊ฒฐ๊ณผ
๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ด์ ์ด ์์ต๋๊น? ์ฒซ ๋ฒ์งธ๋ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ด๊ณ ๋ ๋ฒ์งธ๋ ๋ฉ์๋๊ฐ ์ฝ๋๋ฅผ ํจ์ฌ ๋ ์ฝ๊ธฐ ์ฝ๊ณ ๋๋ฒ๊น
ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ ๋ค๋ ์ฌ์ค์
๋๋ค. ๊ทธ๋ฌ๋ ๋ฉ์๋๊ฐ ์ฝ๋๋ก ๋ฐํ๋ ์ ์๋ค๋ ๊ฒ์ ์ด๋ฏธ ์๊ณ ์์ ๊ฒ์
๋๋ค. ์ธ ๊ฐ์ง ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.
- ๋ฉ์๋์ ๋ชจ๋ ๋ฌธ์ ์๋ฃํ๋ฉด
- ์์ธ๋ฅผ ๋์ง ๋(๋์ค์ ๋ค๋ฃน๋๋ค),
- return ๋ฌธ์ ๋๋ฌํ์ ๋.
์ด๋ฌํ ์ธก๋ฉด์ด ๋น์ ์ ํผ๋์ค๋ฝ๊ฒ ํ๋ค๋ฉด, ๋ฐํ ์ง์ ์ ๋ํ ์ฐ๋ฆฌ์ ๊ฐ์๊ฐ ๋น์ ์๊ฒ ๋งค์ฐ ์ ์ฉํ ๊ฒ์
๋๋ค:
๋ถ์๋ฒ ์์ฑ ์
๋ฌผ๋ก Java๋ ๋ฏธ๋ฆฌ ์ ์๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ง๋ง ๋ฉ์๋๋ฅผ ๋ง๋ค๋ฉด ํ์์ ๋ฐ๋ผ ํน์ ์์
์ ์ํํ ์ ์๋ ์๋ก์ด ์ ๋๋ฒ์ค๊ฐ ์ด๋ฆฝ๋๋ค. ๋ค์ ์์ต์์์๋ Java ๋ฉ์๋(์ด๋ฅผ ์ ์ํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ)์ ์ต์ํ์ ๋
ธ๋ ฅ๊ณผ ์๊ฐ์ผ๋ก ๋ฉ์๋๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์๋ด
๋๋ค.
Java์ ๋ฉ์๋ ๋งค๊ฐ๋ณ์
๊ฐ๋จํ ๋งํด์ ๋งค๊ฐ๋ณ์๋ ๋ฉ์๋ ๋ด์์ ์ ์๋ ๋ณ์์
๋๋ค. ์ ๋ณด๋ int, float, boolean ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์ ํ(๋ฐฐ์ด, ๋ฌธ์์ด ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ์ด ์๋ ์ ํ ๋๋ ๊ฐ์ฒด ์ ํ)์ ํฌํจํ ์ ์๋ ๋งค๊ฐ๋ณ์๋ก ๋ฉ์๋์ ์ ๋ฌ๋ ์ ์์ต๋๋ค. ์ด ์ฃผ์ ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ๋ค์ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ฐฐ์ด๋ชฉ๋ก
์๋ก์ด ํ์ต์๋ฅผ ์ํ ๋ ๋ค๋ฅธ ๋ณต์กํ ์ฃผ์ ๋ ArrayList์
๋๋ค.
์ปฌ๋ ์
ํ๋ ์์ํฌ ์ ์ผ๋ถ์ธ ArrayList๋ Java์์ ๋์ ํฌ๊ธฐ์ ์์ ์ปฌ๋ ์
์ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. Java์ List ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ Java ์ปฌ๋ ์
ํ๋ ์์ํฌ์ ์์์
๋๋ค. ์ด ์ฃผ์ ์ ์ต์ํด์ง๋ ค๋ฉด ๋ค์ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ฐฐ์ด ํด๋์ค
๋น์ ์ ์ข์ ์ํฌ ์ ์๋ ๋ค์ ์ฃผ์ ๋ Arrays ํด๋์ค์ ๊ทธ ์ฌ์ฉ๋ฒ์
๋๋ค. Arrays ํด๋์ค๋ Java Collection Framework์ ์ผ๋ถ์
๋๋ค. ์ด ํด๋์ค์๋ ๋ฐฐ์ด ์กฐ์(์ ๋ ฌ ๋ฐ ๊ฒ์)์ ์ํ ๋ค์ํ ๋ฉ์๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ํ ๋ฐฐ์ด์ ๋ชฉ๋ก์ผ๋ก ๋ณผ ์ ์๋๋ก ํ๋ ์ ์ ํฉํฐ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. Arrays ํด๋์ค๋ ์ ์ ๋ฉ์๋์ Object ํด๋์ค์ ๋ฉ์๋๋ก๋ง ๊ตฌ์ฑ๋ฉ๋๋ค.
๊ฐ์ ์ ํจ๊ป ์ ์ฉ
๋ฌธ์๋ฅผ ์ฌ์ฉ ํ๋ฉด ์์
์ด ํจ์ฌ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฌ์์ง๋๋ค.
๊ฐ์ฒด ๋ฐ ํด๋์ค
์ํ, ๋์ ๋ฐ ID๊ฐ ์๋ ์ํฐํฐ๋ Java์ ๊ฐ์ฒด์
๋๋ค. ๊ฐ์ฒด๋ ํด๋์ค์ ์ธ์คํด์ค์
๋๋ค. ํด๋์ค๋ ๊ณตํต ์์ฑ์ ๊ฐ์ง ๊ฐ์ฒด ๊ทธ๋ฃน์
๋๋ค. ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ํ
ํ๋ฆฟ์
๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฒด๋ ํด๋์ค์ ์ธ์คํด์ค(๊ฒฐ๊ณผ)์
๋๋ค. ๊ธฐ๋ฐํ๊ฒ ๋ค๋ฆฌ๋์? ๋น์ ์ ํผ์๊ฐ ์๋๋๋ค. ๋ค์ ๋จ์์ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ, Java์์ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ ๋ฑ์ ์ค๋ช
ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์์ฑ์์ ๊ทธ ํน์ฑ
์ผ๋ฐ์ ์ผ๋ก Java์ ์์ฑ์๋ No-Arg ์์ฑ์, Parameterized ์์ฑ์ ๋ฐ Default ์์ฑ์๋ก ๋๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ์์ฑ์์๋ ๋ฉ์๋์ ์ ์ฌํ ๋งค๊ฐ ๋ณ์(์ธ์)๊ฐ ์์ ์๋ ์๊ณ ์์ ์๋ ์์ต๋๋ค. ๋ํ ์ผ๋ถ๋ ํ๋ ์ด์์ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํ ์๋ ์์ต๋๋ค. ๋น์ฐํ ์ด ์ฃผ์ ๋ ์ด๋ณด์์๊ฒ ๋งค์ฐ ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ฑ์์ ๊ทธ ํน์ ๊ธฐ๋ฅ์ ๋์์ผ๋ก ํ๋ ๋ช ๊ฐ์ง ๊ฐ์๊ฐ ์์ต๋๋ค.
๊ณ์น
์์์ OO ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ๊ฐ๋ ฅํ ๋๊ตฌ์
๋๋ค. ๋ค๋ฅธ ํด๋์ค์ ๊ธฐ๋ฅ(ํ๋ ๋ฐ ๋ฉ์๋)์ ์์ํ ์ ์๋๋ก ํ๋ Java์ ํ์ ๋ฉ์ปค๋์ฆ์
๋๋ค. ๊ทธ๋ฌ๋ ์ ๋๋ก ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋งค์ฐ ๊ธด๋ฐํ๊ฒ ๊ฒฐํฉ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ด๋ ต์ต๋๋ค. ์ด ๋๋ฌธ์ ์์์ ๊ฝค ๋ฌด์๋ฌด์ํ ํํ์ ์ป์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์๋ค์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ์๋ น์ ํฐ๋ํ ์ ์๋๋ก ๊ด๋ฒ์ํ ๊ฐ์์ ๊ธฐ์ฌ๋ฅผ ์ค๋นํ์ต๋๋ค.
๊ณต์
๋ง์ ์๋ก์ด ํ์ต์๊ฐ ์ ์ ํด๋์ค, ์ ์ ๋ฐฉ๋ฒ ๋ฐ ์ ์ ๋ณ์์ ๊ฐํ๋ ๋ฐ๋ ์ด์ ๊ฐ ์์ต๋๋ค. ์
์ ์ ๋ณ์๊ฐ ์
์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๊น ? ์ด๋ค ์ด๋ค์
"๊ฐ์ฒด ์งํฅ ํจ๋ฌ๋ค์์ ์๋ฐฐ๋ฉ๋๋ค. ํนํ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฒด์ ์บก์ํ๋๋ค๋ ์์น์ ์๋ฐํฉ๋๋ค(ํ์ฅ ๊ฐ๋ฅ, ์ ๋ณด ์ํ ๋ฑ)"๋ผ๊ณ ๋ฏฟ๋ ๋ฐ๋ฉด ๋ค๋ฅธ ์ด๋ค์ "์ ์ ๋ณ์๋ ๊ธ๋ก๋ฒ ์ํ์
๋๋ค. ์ถ๋ก ํ๊ธฐ๋ ์ด๋ ต๊ณ ํ
์คํธํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค." . ์ฐ๋ฆฌ์ ํฌ๊ด์ ์ธ ์ฃผ์ ๋ ์ ์ ๋ณ์๋ก ์ธํ ์ด๋ ค์์ ๊ทน๋ณตํ๊ณ ๋ฏธ์ํ์ง ์๊ณ ์ฌ๋ํ๊ฒ ๋ง๋๋ ๋ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
์ฆ, ๋ช ๊ฐ์ง ๋ค๋ฅธ ๊ฐ๋
์ ๋น์ ์ ๋๋๋ฅผ ๋
น์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Generics๋ ๋ง์ ํ์ต์์๊ฒ ๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ ์ค ํ๋๋ก ๋ณด์
๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ค์ค ์ค๋ ๋ ๊ฐ๋
, ๊ธฐ๋ณธ ์ธํฐํ์ด์ค, ๋คํ์ฑ, ๋๊ธฐํ ๋ฐ ์ง๋ ฌํ์ Apt ๊ตฌํ, ๋ฒกํฐ ๋ฐ ํ๋ ฌ์ ์ฌ์ฉ๋ ์ฌ๋ฌ๋ถ์ด ๊ณ ์ฌํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ธก๋ฉด์ด๋ผ๊ณ ์ธ๊ธํฉ๋๋ค.
๊ฒฐ๋ก
Java๋ ๋ฐฉ๋ํ๋ฉฐ ๋๊ตฐ๊ฐ๋ฅผ ๊ดด๋กญํ ์ ์๋ ๋ง์ ์ธก๋ฉด์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ํตํด Java๋ ์ ์ฐํ๋ฉฐ ๋์ผํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋งํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ค๋ฅธ ๋จ๊ณ๋ฅผ ์๊ฐํด ๋ณด์ญ์์ค. Java๋ ์ฌ๋ฏธ์๊ณ Java์ ์ฝ๋ ์ฑ๋ฆฐ์ง๋ ๊ธฐ์ ๊ณผ ์์ ๊ฐ์ ๋์ด๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. IT ์ธ๊ณ์ ์์ ํ ์ด๋ณด์๋ผ๋ฉด Java์ ๊ธฐ์ด๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ด ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์ ๊ธฐ์ตํ์ญ์์ค. ๊ทธ๋ฌ๋ ๋ ๋ค๋ฅธ ํฐ ์์ง์์ ๋
ธ๋ จํ ๊ฐ๋ฐ์ ๋ฐ ๋๋ฃ Java ํ์ต์์ ์ฐ๊ฒฐํ๋ ๊ฒ์
๋๋ค. ๋ฌผ๋ก CodeGym์ ๊ฐ์ฅ ์ด๋ ค์ด ์ฃผ์ ๋ฅผ ํต๊ณผํ๋ ๋ฐ ๋์์ด ๋์ง๋ง ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ๋๋ฌํ๋ฉด Java ์ปค๋ฎค๋ํฐ๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ฑ๊ณต์ ์ธ ํ์ต์ ๋ง์ง๋ง ์์๋ ์ฐ์ต์
๋๋ค. Java ํ๋ก๊ทธ๋๋ฐ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ฉด ์ฝ๋ฉ ์ฐ์ต์ ๋ง์ด ํ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค. ํ์ ์ ์ธ ์ฌ๋(์ด์ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์๋ ์ฌ๋)์ ๊ฒฝ์ฐ Java๋ฅผ ์ดํดํ๊ณ ํ๋ก๊ทธ๋จ ์์ฑ์ ์์ ํ ์์ํ๋ ๋ฐ 9-12๊ฐ์์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ์, ์ฐ์ต์ ์์ํฉ์๋ค!