티스토리 뷰

Java

Java - 애노테이션 프로세서

사용자 엔꾸꾸 2019. 11. 12. 22:13

애노테이션 프로세서

롬복은 어떻게 동작할까 ?

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

롬복의 원리

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

논란 거리

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

참고

댓글
댓글쓰기 폼
공지사항
Total
68,328
Today
36
Yesterday
123
링크
TAG
more
«   2021/10   »
          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            
글 보관함