[java] JSR 305을 활용한 자바 API 디자인 원칙 적용 방법

자바 API를 디자인할 때 코드의 가독성과 안정성을 보장하기 위해서는 몇 가지 원칙을 준수하는 것이 중요합니다. 이때 JSR 305(Java Specification Request 305)은 자바 코드의 어노테이션을 활용하여 API 디자인 원칙을 적용할 수 있는 도구입니다. 이번 블로그에서는 JSR 305을 활용하여 자바 API 디자인 원칙을 적용하는 방법을 소개하겠습니다.

1. JSR 305 소개

JSR 305는 자바 코드의 어노테이션을 정의하는 스펙입니다. 이 스펙은 코드 리뷰와 도구의 도움을 받아 프로그래머들이 API 사용 방법을 명확하게 정의할 수 있게 도와줍니다. 주요 어노테이션은 다음과 같습니다.

2. 어노테이션을 활용한 API 디자인 원칙

2.1. 매개변수에 @Nonnull 어노테이션 사용하기

메서드의 매개변수가 null이 될 수 없는 경우 @Nonnull 어노테이션을 사용하여 명시적으로 표현해야 합니다. 이렇게 함으로써 사용자는 매개변수로 null을 전달할 수 없다는 것을 알 수 있습니다.

public void doSomething(@Nonnull String input) {
    // ...
}

2.2. 반환값에 @Nullable 어노테이션 사용하기

메서드의 반환값이 null일 수 있는 경우 @Nullable 어노테이션을 사용하여 표현해야 합니다. 이렇게 함으로써 사용자는 메서드의 반환값이 null일 수도 있다는 것을 인지할 수 있습니다.

@Nullable
public String getResult() {
    // ...
}

2.3. 기본값 설정하기

JSR 305을 사용하여 API를 디자인할 때, 매개변수나 반환값에 어노테이션이 사용되었을 때 해당 값이 null인 경우 예외를 던지는 것이 일반적입니다. 하지만 기본값을 설정할 수도 있습니다.

@Nonnull
public String getName() {
    return "Default Name";
}

3. JSR 305 도구 사용하기

JSR 305을 활용한 API 디자인 원칙을 적용하기 위해서는 도구의 도움을 받을 수 있습니다. 예를 들어 IntelliJ IDEA와 같은 IDE는 JSR 305 어노테이션을 분석하여 경고 또는 오류를 표시해줍니다. 또한 FindBugs와 같은 정적 분석 도구를 통해서도 JSR 305 어노테이션의 사용을 검사할 수 있습니다.

4. 마무리

JSR 305을 활용하여 자바 API 디자인 원칙을 적용하는 방법을 살펴보았습니다. 이를 통해 코드의 가독성과 안정성을 높일 수 있으며, 사용자에게 명확한 API 사용 방법을 제공할 수 있습니다. JSR 305을 사용하여 자바 API를 설계하는 것은 좋은 개발 실천 방법입니다.

References