본문 바로가기

이펙티브 자바

[이펙티브 자바] 아이템 39. 명명 패턴보다 애너테이션을 사용하라

명명 패턴 : 변수, 메서드, 클래스 등의 이름을 일정한 패턴에 따라 지정하는 방법. 이는 주로 코드의 가독성을 높이고 일관성을 유지하기 위해 사용된다.

예를 들어, 다음과 같은 명명 패턴이 있을 수 있습니다:

  1. 변수 이름에는 camelCase를 사용: myVariable, totalAmount, userName 등
  2. 메서드 이름에는 동사로 시작하여 동작을 나타냄: calculateTotal(), getUserInfo(), sendMessage()
  3. 클래스 이름은 대문자로 시작하는 CamelCase를 사용: MyClass, UserInfo, HttpRequest 등

 

import java.lang.annotation.*;

// 애너테이션 정의
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface Test {
    // 기본값을 설정하여 필수적으로 값을 지정할 필요가 없도록 함
    String value() default "";
}

public class MyClass {
    // 애너테이션을 사용하여 테스트 메서드로 지정
    @Test("This is a test method")
    public void testMethod() {
        // 테스트 로직
    }

    // 테스트 메서드가 아닌 경우
    public void normalMethod() {
        // 일반 메서드 로직
    }

    // 애너테이션이 없는 경우
    public void anotherMethod() {
        // 다른 메서드 로직
    }
}

 

핵심 정리 : 애너테이션으로 할 수 있는 일을 명명 패턴으로 처리할 이유는 없다.