본문 바로가기

개발이야기/Effective Java

[Effective Java]작명 패턴 대신 어노테이션을 사용하라


Java 1.5 이전에는 annotation이 존재하지 않았다. 그래서 이전에는 도구 or 프레임워크를 특별 취급하기 위해서 Java 1.5 이전에는 작명 패턴을 사용(ex. JUnit 테스트 이름을 test로 시작하는 것)했다. 그러나 이 방법을 사용하면 이름을 잘못 입력하면 문제가 발생하거나 무시해버리는 오류가 생기며, parameter을 전달할 방법이 없었음.


이를 해결하기 위해 Java 1.5에서는 annotation이 등장 했다.

JAVA API Annotation 자료형 보러가기(클릭)




  • Annotation 종류
    • @Override
      - 해당 메소드가 부모 클래스에 있는 메소드를 오버라이드 했다는 것을 명시적으로 선언
    • @Deprecated
      - 더이상 사용되지 않은 클래스나 메소드 앞에 추가
    • @SuppressWarnings
      -컴파일러 warning을 제거하여 컴파일러에게 명시적으로 warning을 제거
    • Meta Annotation
      • @Target
        - 어떤 것에 annotation을 적용할지 선언할 때 사용
      • @Retention
        - annotation 유지 시점을 선언
      • @Documented
        - 해당 annotation information이 JavaDocs(API) 문서에 포함된다는 것을 선언
      • @Inherited
        - 모든 자식 클래스가 부모 클래스의 anntation을 사용할 수 있다는 것을 선언
      • @Interface
        - annotation을 선언할 때 사용

  • Annotation 특징
    • enum 클래스가 상속을 지원하지 않듯이 Annotation도 상속이 되지 않음