annotation이란?

어노테이션은 메타데이터의 일종이다.
어노테이션에는 클래스 정보가 있기 때문에 리플렉션을 통해 특정 행위를 할 수 있다.

리플렉션은 클래스명을 통해 클래스 정보(인스턴스, 메서드, 필드)를 찾거나 클래스 인스턴스를 생성할 수 있는 기술이다 클래스 정보는 바이트코드 형태로 static한 메모리 영역에 저장된다. 리플렉션은 이곳에서 클래스 정보를 찾는다.