Search

Item 39. 명명 패턴보다 애너테이션을 사용하라

생성일
2023/07/27 00:29
챕터
6장 - 열거 타입과 애너테이션

명명 패턴

도구나 프레임워크에서는 특별히 다루어야할 프로그램 요소에 고정된 이름을 사용하는 것을 명명 패턴이라 한다. 예를 들면 테스트 프레임워크 JUnit에서는 버전 3까지 테스트 메서드 이름이 test로 시작해야만 하도록 규칙을 정해두었다.
이런 명명 패턴의 문제는 실수로 tsetSafetyOverride와 같이 오타를 발생하면 JUnit은 테스트를 안하고 그냥 지나쳐버린다.
또 다른 문제점은 명명 패턴에 정해진 규칙이 아니면 다른 방법으로 사용할 수 없다는 점이다. 클래스 내의 모든 메서드를 테스트해보고 싶다고 클래스 명을 TestSafetyClass 라고 지어도 JUnit 3에서는 동작하지 않는다.
명명 패턴의 세 번째 문제점은 프로그램 요소를 매개변수로 전달할 마땅한 방법이 없다는 것이다.

애너테이션으로 해결하기

위의 명명 패턴 문제들을 해결하기 위해 JUnit 4부터 애노테이션 동작 방식이 도입되었다.
이제는 간단하게 @Test 애노테이션만 붙이면 메서드 이름이 어떻든, 메서드나 클래스 관계없이 테스트할 수 있다.
그러니 가급적 명명 패턴 대신 애노테이션으로 해결하자