Reflection
์๋ฐ๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก์, ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํด๋์ค๋ฅผ ์ ์ํ๊ณ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์ง๋ง, ๋๋ก๋ ์คํ ์ค์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๋์ ์ผ๋ก ์กฐ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ ์๋ฐ ๋ฆฌํ๋ ์ (Java Reflection)์ด๋ผ๋ ๊ธฐ๋ฅ์ด ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฐ ๋ฆฌํ๋ ์
์ด๋?
์๋ฐ ๋ฆฌํ๋ ์ ์ ์คํ ์ค์ธ ์๋ฐ ํ๋ก๊ทธ๋จ์ ํด๋์ค, ๋ฉ์๋, ํ๋ ๋ฑ์ ์ ๋ณด๋ฅผ ๋์ ์ผ๋ก ๋ถ์ํ๊ณ ์กฐ์ํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ฆ, ์ปดํ์ผ ์๊ฐ์ด ์๋๋ผ ์คํ ์๊ฐ์ ํด๋์ค์ ์ ๋ณด๋ฅผ ์์๋ด๊ณ , ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ ์ค์ ๋ค๋ฅธ ํด๋์ค์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฑฐ๋, ํด๋์ค์ ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ๊ฑฐ๋, ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๋ฆฌํ๋ ์ ์ ์ฌ์ฉํ๋ ์ด์ ๋ฆฌํ๋ ์ ์ ์ผ๋ฐ์ ์ธ ์๋ฐ ํ๋ก๊ทธ๋๋ฐ์์๋ ์ ์ฌ์ฉ๋์ง ์์ง๋ง, ๋ช ๊ฐ์ง ์ํฉ์์ ์ ์ฉํฉ๋๋ค.
๋ฆฌํ๋ ์ ์ ์ฃผ์ ํด๋์ค ์๋ฐ ๋ฆฌํ๋ ์ ์ java.lang.reflect ํจํค์ง์ ์ ์๋ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ฉ๋๋ค. ์ฃผ์ ํด๋์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Last updated