<aside> 📑 참고자료 : KOTLIN IN ACTION

</aside>

애노테이션


어떤 함수를 호출하려면 그 함수가 정의된 클래스의 이름과 함수 이름, 파라미터 이를 등을 알아야만 했다. 애노테이션annotation과 리플랙션reflection을 사용하면 미리 알지 못하는 임의의 클래스를 다룰 수 있다.

애노테이션을 사용하면 라이브러리가 요구하는 의미를 클래스에게 봉할 수 있고, 리플랙션을 사용하면 실행 시점에 컴파일러 내부 구조를 분석할 수 있다.

애노테이션 선언과 적용

애노테이션 대상

코틀린의 한 선언이 여러 자바 선언과 대응하는 경우가 있다. 따라서 애노테이션을 붙일 때 이런 요소 중 어떤 요소에 애노테이션을 불일지 표시할 필요가 있다!

ex) 코틀린 프로퍼티 = 자바의 필드 + 게터+(변경 가능하다면)세터

애노테이션을 활용한 JSON 직렬화 제어

애노테이션을 사용하는 고전적인 예제로 객체 직렬화 제어를 들 수 있다.

직렬화serialization ****객체를 저장장치에 저장하거나 네트워크를 통해 전송하기 위해 텍스트나 이진 형식으로 변환 역직렬화deserialization ****텍스트나 이진 형식으로 저장된 데이터로부터 원래의 객체를 만들어낸다.

→직렬화에 자주 쓰이는 형식 JSON ::

자바와 JSON을 변환할 때 자주 쓰이는 라이브러리 잭슨Jackson, 지슨GSON