명명패턴

    [Effective Java] 명명 패턴보다 애너테이션을 사용하라

    [Effective Java] 명명 패턴보다 애너테이션을 사용하라

    명명 패턴 특별히 다뤄야 할 프로그램 요소에는 구분되는 명명패턴을 이용했다. 예를 들어 JUnit은 테스트 메서드 이름이 test로 시작하게끔 했었다. 이런 명명 패턴은 다음과 같은 문제가 있다. 타입 세이프 하지 않다. tsetSaftey라고 적으면 JUnit은 이를 인지하지 못한다. 올바른 프로그램 요소에서만 사용된다는 보장이 없다. -> 클래스의 이름에 test를 붙여도 클래스에는 적용되지 않는다. 프로그램 요소를 매개변수로 전달할 방법이 없다. -> 예외 테스트가 힘들다. 애너테이션 @Retention가 @Target이라는 메타 어노테이션을 이용해 애너테이션의 라이프사이클을 지정하고 사용자가 올바른 프로그램 요소에 사용할 수 있도록 도와준다. 이러한 마커 애너테이션은 잘못 사용하면 컴파일 타임에 ..