Reflection
๋ฆฌํ๋ ์
(Reflection)
๊ฐ์ฒด์ ๊ตฌ์ฒด์ ์ธ ํด๋์ค ํ์ ์ ์์ง ๋ชปํด๋ ํด๋น ํด๋์ค์ ์ ๋ณด(ํ๋, ๋ฉ์๋ ๋ฑ)์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฒ
Java์์๋ Reflection API๋ฅผ ์ ๊ณตํ์ฌ ๋ฆฌํ๋ ์ ๊ธฐ๋ฒ์ ์ด์ฉํ ์ ์๋๋ก ํจ
Java Reflection API๋ฅผ ํตํด ํ ์ ์๋ ์ผ
ํด๋์ค ์ป์ด์ค๊ธฐ
๋ฉ์๋ ์ป์ด์ค๊ธฐ
๋ฉ์๋ ๋ชฉ๋ก(๋ฐฐ์ด) ์ป์ด์ค๊ธฐ
๋ฉ์๋ ์คํํ๊ธฐ
ํ๋ ์ป์ด์ค๊ธฐ
ํ๋ ๋ชฉ๋ก(๋ฐฐ์ด) ์ป์ด์ค๊ธฐ
์์ฑ์ ์ป์ด์ค๊ธฐ
์์ฑ์๋ฅผ ํตํ ์ธ์คํด์ค ์์ฑ
๊ธฐํ ๋ฑ๋ฑ
๋์ ์๋ฆฌ
๋ฐํ์
์ JVM์ด JVM memory area ์ค static area์ ์ ์ฅ๋ ํด๋์ค ์ ๋ณด๋ฅผ ํ์ํ๊ณ , ์ด๋ฅผ ์ด์ฉํ๋ค.
์ธ์ ์ฌ์ฉํ๋๊ฐ?
๋ฆฌํ๋ ์ ์ ๊ตฌ์ฒด์ ์ธ ํด๋์ค ํ์ ์ ์ ๊ทผํ๊ฒ ํจ์ผ๋ก์จ ๋คํ์ฑ, ์บก์ํ๋ฅผ ์นจํดํ๋ฉฐ, ์ปดํ์ผ ํ์์ด ์๋ ๋ฐํ์์ ์ฝ๋ ์์ญ์ ์ ๊ทผํ์ฌ ๋์ ํ์ดํ์ ์ํํจ์ผ๋ก์จ JVM์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ๋ฐฉํดํ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
๋๋ฌธ์ ๋จ์ํ ํ๋ก๊ทธ๋จ์ ์์ฑํ ๋์๋ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ผ๋ฉฐ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ
, ํ๋ ์์ํฌ
์ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ์ด๋ค ํด๋์ค ํ์
์ ์ด์ฉํ ์ง ์ ์ ์๋ ๋ฒ์ฉ ๋ชจ๋์ ์์ฑํ ๋
์ฃผ๋ก ์ฌ์ฉํ๋ค.
Spring์ Reflection ์ฌ์ฉ์ฒ
โญ Reflection API๋ ์์ฑ์์ ์ธ์ ์ ๋ณด๋ ํ๋ํ ์ ์๋ค.
๋ฐ๋ผ์, Spring๊ณผ ๊ฐ์ด ํ์
์ ์ ์ ์๋ ์ํ์์ ๋์ ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด
๋ฆฌํ๋ ์
์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋ฐ๋์ ํด๋น ํด๋์ค ๋ด์ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ์กด์ฌํด์ผ๋ง ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
์ถ์ฒ
Last updated