25.02.25 TIL Lombok

신성훈·2025년 2월 25일
0

TIL

목록 보기
138/162

1. Lombok이란?

Lombok은 Java의 반복적인 코드를 줄여주는 라이브러리입니다. Getter, Setter, toString(), 생성자 등을 자동으로 생성해 줍니다.
Spring Boot 프로젝트에서 Lombok을 사용하면 코드를 간결하게 유지하고 생산성을 향상할 수 있습니다.


2. Lombok 설정 방법

Maven 프로젝트 (pom.xml에 추가)

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.30</version>
    <scope>provided</scope>
</dependency>

Gradle 프로젝트 (build.gradle에 추가)

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.30'
    annotationProcessor 'org.projectlombok:lombok:1.18.30'
}

이후, IDE에서 Lombok 플러그인을 설치하고 빌드 후 사용할 수 있습니다.


3. Lombok 주요 어노테이션

1) @Getter, @Setter

자동으로 getter, setter 메서드를 생성합니다.

import lombok.Getter;
import lombok.Setter;

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

-> user.getName() 또는 user.setAge(30)처럼 사용 가능


2) @ToString

클래스의 toString() 메서드를 자동 생성합니다.

import lombok.ToString;

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

-> System.out.println(user); 실행 시 객체 정보 출력


3) @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

  • @NoArgsConstructor : 기본 생성자 자동 생성
  • @AllArgsConstructor : 모든 필드 포함 생성자 자동 생성
  • @RequiredArgsConstructor : final 또는 @NonNull 필드 포함 생성자 자동 생성
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;

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

-> new User() 또는 new User("Alice", 25) 가능


4) @Data

  • @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 포함
  • 가장 많이 사용되는 Lombok 어노테이션
import lombok.Data;

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

-> User 객체의 getter, setter, toString, equals, hashCode 자동 생성


5) @Builder

  • 빌더 패턴을 자동으로 생성
  • 객체 생성 시 가독성이 좋고, 필드 순서를 신경 쓰지 않아도 됨
import lombok.Builder;
import lombok.ToString;

@Builder
@ToString
public class User {
    private String name;
    private int age;
}
User user = User.builder()
                .name("Alice")
                .age(25)
                .build();
System.out.println(user);

-> User(name=Alice, age=25) 출력


4. Lombok 사용 시 주의할 점

  1. 코드 가독성이 떨어질 수 있음
    • 자동 생성된 코드가 보이지 않기 때문에 IDE에서 확인해야 함
  2. 빌드 시 Lombok 플러그인 필요
    • Lombok이 없으면 코드가 제대로 동작하지 않을 수 있음
  3. JPA 엔티티에서는 @NoArgsConstructor 필수
    • JPA에서는 기본 생성자가 필요하므로 Lombok 사용 시 @NoArgsConstructor를 명시적으로 추가

5. 마무리

Lombok을 사용하면 코드가 간결해지고 가독성이 좋아지지만 자동 생성되는 코드에 대한 이해가 필수적입니다.
JPA와 함께 사용할 때는 @Builder와 @NoArgsConstructor를 함께 고려해야 함을 다시 한번 깨달았습니다.
Spring Boot 프로젝트에서 Lombok을 적극 활용하면 생산성이 향상될 것 같습니다.

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글