목록런타임 (2)
개발자는 기록이 답이다

Reflection을 통한 메타데이터 접근 어노테이션은 아무런 동작을 가지지 않은 설정 정보일 뿐이다. 이 설정 정보를 이용해서 어떻게 처리할 것인지는 애플리케이션의 몫인데, 리플렉션을 이용해서 적용 대상으로부터 어노테이션의 정보를 얻을 수 있다. 런타임 시 동적으로 프로그램(클래스의 정보)을 분석하거나 변경해야 할때 발생한다. 메타데이터에는 소스 코드에 대한 정보나 추가적인 설정 정보가 포함되어 있을 수 있으며, 프로그램이 실행되는 동안 동적으로 이용하고자 할때 리플랙션을 사용한다. 클래스에 적용된 어노테이션 정보를 읽을땐 java.lang.Class를 이용하면 되지만, 필드, 메소드, 생성자와 같은 메타 정보는 java.lang.reflect패키지를 사용해야 한다. 관련 메소드는 여기에서 확인 할 수..

이번 포스팅은 나에게 매우 의미있는 부분이다. 면접에서 Java내에서 어노테이션의 작동원리를 제대로 말 못했기 때문이다. Java가 아닌 Spring내에서 어노테이션이 어떻게 작동하는지를 말했다. 면접 3일전에 강의를 보고 어노테이션과 "리플렉션"과의 관계도 알고 있었고 1차 면접에서도 살짝 언급했었는데, 왜 2차 면접 당시 그 순간 생각이 나지 않았을까? 흝어진 조각들을 잘 정리해서 말할 수 있도록 해보자. Java의 어노테이션이란? 어노테이션(Annotation)은 자바 프로그래밍 언어에서 코드에 부가적인 정보(메타데이터)를 부여하기 위한 방법 중 하나이다. 코드에 주석을 다는 것과 달리, 프로그램이 빌드되거나 실행될 때 활용되는 메타데이터를 제공한다. Lombok으로 자주보던 "Getter"와 "R..