[java] 롬복(Lombok)이란?

롬복은 자바 언어를 위한 라이브러리로, 자바 개발자들이 코드를 작성하고 유지보수하는 과정에서 흔히 반복되는 보일러플레이트 코드(boilerplate code)를 줄여주는 역할을 합니다. 롬복을 사용하면 간결하고 가독성이 높은 코드를 작성할 수 있으며, 자바의 문법적인 제약사항을 극복할 수 있습니다.

주요 기능

롬복의 주요 기능은 다음과 같습니다.

  1. @Getter / @Setter: 클래스의 필드에 대해 게터(Getter)와 세터(Setter) 메서드를 자동으로 생성하여 코드 중복을 줄여줍니다.

  2. @ToString: 클래스의 필드들을 포함한 문자열을 리턴하는 toString() 메서드를 자동으로 생성합니다.

  3. @EqualsAndHashCode: equals()와 hashCode() 메서드를 자동으로 생성하여 객체의 동등성 비교를 간편하게 할 수 있습니다.

  4. @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor: 인자가 없는 생성자, 필수 인자만을 받는 생성자, 모든 인자를 받는 생성자를 간편하게 생성할 수 있습니다.

  5. @Builder: 불변 객체를 생성하기 위한 빌더 패턴을 자동으로 생성합니다.

롬복 사용 방법

롬복을 사용하기 위해서는 빌드 도구에 롬복 의존성을 추가해야 합니다. 대표적인 빌드 도구인 Maven과 Gradle에서는 각각 다음과 같이 의존성을 추가할 수 있습니다.

Maven

<dependencies>
    <!-- 롬복 의존성 추가 -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

Gradle

dependencies {
    // 롬복 의존성 추가
    implementation 'org.projectlombok:lombok:1.18.20'
}

롬복을 의존성으로 추가한 후에는 자바 클래스에 롬복 어노테이션을 사용하여 필요한 기능들을 자동으로 생성할 수 있습니다.

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class Person {
    private String name;
    private int age;
}

위와 같이 @Getter, @Setter, @ToString 어노테이션을 사용하면 name, age 필드에 대한 게터, 세터, toString() 메서드가 자동으로 생성됩니다.

롬복을 사용하면 개발자는 반복적인 코드 작성에 시간을 절약하고, 더 읽기 쉽고 간결한 코드를 작성할 수 있습니다.

참고 자료