JAVA Reflection API를 이용한 Annotation만들기
TL;DR Reflection이 뭔가 훑어 보기 Annotation이 뭔가 바라만 보기 Reflection으로 Annotation 다루기 Reflection이 뭔가 정의 Oracle의 문서에 따르면 Reflection의 정의는 아래와 같습니다. Reflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running in the Java virtual machine. Reflection은 JVM에서 동작하고 있는 어플리케이션의 런타임 동작을 검사하거나 바꾸고자 할 때 사용하는 것이다. https://docs.oracle.com/javase/tutorial/reflect/ 주의할 점 성능 문제 야기 Reflection은 런타임에 동작을 합니다. 그렇기 때문에 동작을 할 때 JVM의 최적화 과정 일부가 동작하지 않을 수 있습니다. 그 결과 Reflection이 없는 코드와 비교했을때 느릴 수 있습니다. 보안상 제약 Reflection은 런타임에 동작해야 합니다. 그렇기 때문에 일부 보안이 중요한 맥락에서는 사용하기 어려울 수 있습니다. 내부가 드러남 Reflection은 때로 private등 가려진 정보들에 접근하게 됩니다. 이 때문에 예상치 못한 side effect가 발생할 여지가 생기고, 이식성(portability)에 영향을 줍니다. Annotation은 뭘까 정의 위키백과에 따르면 annotation의 정의는 아래와 같습니다. ...