본문 바로가기
SpringBoot

[Lombok] Using Lombok UtilityClass

by 띵앤띵 2023. 3. 2.
728x90
반응형

Lombok의 UtilityClass

Lombok은 자바 언어를 위한 코드 생성 라이브러리로, 개발자의 불필요한 반복 코드를 줄여주어 생산성을 높이는 데에 큰 도움을 줍니다. 이 중 Lombok의 UtilityClass는 클래스 내부에 static 메서드만을 가지는 유틸리티 클래스를 생성할 수 있도록 도와주는 기능입니다.

사용 이유

유틸리티 클래스는 특정 기능을 수행하는 메서드들을 모아놓은 클래스입니다. 이 메서드들은 인스턴스 변수를 가지지 않고, 모든 메서드가 static으로 선언됩니다. 이러한 유틸리티 클래스는 다른 객체들과 독립적으로 사용될 수 있으며, 단순한 기능들을 수행하기 때문에 객체를 생성하는 것이 비효율적입니다. 따라서, 유틸리티 클래스는 보통 생성자를 private으로 선언하고, 모든 메서드를 static으로 선언합니다.

하지만, 이러한 유틸리티 클래스를 작성하게 되면 클래스 내부에 생성자나 인스턴스 변수가 없으므로, 코드 가독성이 떨어지고, 개발자가 반복해서 작성해야 하는 코드들이 많아지게 됩니다. 이를 해결하기 위해 Lombok의 UtilityClass를 사용할 수 있습니다.

사용 방법

Lombok의 UtilityClass를 사용하기 위해서는 다음과 같은 단계를 거칩니다.

1. Lombok 라이브러리를 프로젝트에 추가합니다.

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>{Lombok 버전}</version>
    <scope>provided</scope>
</dependency>

2. 유틸리티 클래스를 작성합니다.

import lombok.experimental.UtilityClass;

@UtilityClass
public class MyUtilityClass {
    public int add(int a, int b) {
        return a + b;
    }
}

위와 같이 @UtilityClass 어노테이션을 사용하여 유틸리티 클래스를 작성합니다. 이 때, 생성자는 자동으로 private으로 선언되며, 모든 메서드는 static으로 선언됩니다.

3. 유틸리티 클래스 사용하기

public class Main {
    public static void main(String[] args) {
        int result = MyUtilityClass.add(1, 2);
        System.out.println(result); // 3
    }
}

위와 같이 유틸리티 클래스를 사용할 때에는, 클래스 이름을 통해 바로 접근하여 사용할 수 있습니다.

예시

Lombok의 UtilityClass를 사용하여 작성한 예시 코드입니다.

import lombok.experimental.UtilityClass;

@UtilityClass
public class StringUtils {
    public boolean isNullOrEmpty(String str) {
        return str == null || str.isEmpty();
    }

    public boolean isNotNullOrEmpty(String str) {
        return !isNullOrEmpty(str);
    }

    public String trimToEmpty(String str) {
        return str == null ? "" : str.trim();
    }

    public String trimToNull(String str) {
        String trimmed = trimToEmpty(str);
        return isNullOrEmpty(trimmed) ? null : trimmed;
    }
}

위 코드는 문자열 처리를 위한 유틸리티 클래스입니다. 이 클래스를 사용하면, 문자열의 null 여부를 판단하거나, 공백을 제거하는 등의 기능을 간단하게 사용할 수 있습니다.

결론

Lombok의 UtilityClass는 코드 가독성을 높이고, 반복적인 코드 작성을 줄여줌으로써, 개발자의 생산성을 향상시키는 데에 큰 도움을 줍니다. 특히, 유틸리티 클래스를 자주 사용하는 경우에는, Lombok의 UtilityClass를 사용하여 간편하게 작성할 수 있습니다.

반응형

댓글