SeouliteLab

[Java/자바] Lombok의 대표적인 Annotation과 역할 본문

프로그래밍

[Java/자바] Lombok의 대표적인 Annotation과 역할

Seoulite Lab 2024. 3. 12. 11:43

Lombok이란?

Lombok은 자바 언어의 반복적이고 장황한 코드를 줄여주는 라이브러리로, 프로젝트의 코드 가독성을 높이고 개발 생산성을 향상시킵니다. 대표적인 Annotation과 그 역할에 대해 알아보겠습니다.

 

Gradle 설치하기

생략...
dependencies {
	.....
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	.....
}
생략...

 

@Getter / @Setter

필드에 대한 Getter와 Setter 메서드를 자동으로 생성합니다. 보일러플레이트 코드를 줄여주어 코드의 가독성을 높입니다.

Lombok을 사용하지 않은 경우

public class PersonWithoutLombok {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 

Lombok을 사용한 경우

import lombok.Getter;
import lombok.Setter;

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

 

@ToString

클래스의 모든 필드를 포함한 문자열 표현을 생성합니다. 주로 디버깅 용도로 사용됩니다. toString() 메서드를 자동으로 생성합니다. 객체의 문자열 표현을 반환합니다.

예제:

import lombok.ToString;

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

 

@AllArgsConstructor / @NoArgsConstructor

모든 필드를 인자로 받는 생성자와 파라미터가 없는 기본 생성자를 자동으로 생성합니다. 주로 객체를 생성하고 초기화하는 데 사용됩니다.

예제:

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private int age;
}

@Data

@Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 한번에 적용하는 대표적인 Annotation입니다.

예제:

import lombok.Data;

@Data
public class Person {
    private String name;
    private int age;
}

@Builder

빌더 패턴을 자동으로 생성하여 객체를 생성할 때 더욱 편리하게 만들어줍니다. 복잡한 객체를 생성하는 코드를 간결하게 만듭니다.

예제:

import lombok.Builder;

@Builder
public class Person {
    private String name;
    private int age;
}

 

위의 Lombok Annotation들은 코드를 간결하게 작성할 수 있도록 도와줍니다. 반복적이고 장황한 코드를 줄여 개발 생산성을 향상시킵니다.