티스토리 뷰

Java

Java - 애노테이션 프로세서

엔꾸꾸 2019. 11. 12. 22:13

애노테이션 프로세서

롬복은 어떻게 동작할까 ?

  • 롬복은 지루하고 반복적인 코드를 자동적으로 생성해주는 툴이다.
    • getter, setter, toString...

롬복의 원리

  • 자바가 제공하는 애노테이션 프로세서를 이용한 기술
  • 컴파일 시점에 끼어들어 특정 애노테이션이 붙은 소스코드를 참조해 다른 소스코드를 생성할수 있는 기능이다.
    • 자바코드, 문서 등을 만들어 낼 수 있다.
  • AST(Abstarct Syntax Tree) 소스코드의 정보를 트리구조로 볼 수 있다.
    • 이를 신텍스 트리라고 한다.
    • 본래는 참조만 가능하다.

논란 거리

  • 공개된 API가 아닌 컴파일러 내부 클래스를 사용하고 기존 소스코드를 조작한다.
  • 특히 이클립스의 경우 java agent를 사용하여 컴파일러 클래스까지 조작하여 사용한다. 해당 클래스들 역시 공개된 API가 아니다 보니 버전호환성에 문제가 생길수 있다.
  • 롬복이 해킹이라고 주장하고 사용해선 안된다는 개발자들도 상당히 많다.
  • 그럼에도 불구하고 100% 대안은 없다.
  • 대안
    • AutoValue
    • Immutables

참고

'Java' 카테고리의 다른 글

Java - 애노테이션 프로세서2  (0) 2019.11.18
Java - 애노테이션 프로세서1  (0) 2019.11.17
Java - 다이나믹 프록시 정리  (0) 2019.11.11
Java - 클래스 프록시 생성하기  (0) 2019.11.11
Java - 다이나믹 프록시 실습  (0) 2019.11.11
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함