[Java] Lombok의 @Builder를 코드에 적용해보았습니다. 🐯

Blair·2024년 10월 9일
1

Java

목록 보기
4/4
post-thumbnail

데이터를 저장하기 위해 VO를 받아 Bean을 생성할 때!
하나씩 하나씩 set 하기 너무너무 귀찮지 않나요?!
좋은 방법이 있어 코드에 적용해보았습니다.
항상 적용 가능한 코드라기 보다는 매개 변수가 많을 때 더 유용할 것 같음.
시작합니다!!


Lombok의 @Builder는 객체를 빌더 패턴(Builder Pattern)으로 생성할 수 있도록 도와주는 애노테이션이다. 빌더 패턴은 특히 매개변수가 많거나 선택적으로 제공되는 경우에 유용한 객체 생성 방식으로, 코드의 가독성을 높이고 유지보수를 쉽게 만들어준다. Lombok은 이 패턴을 매우 간단하게 구현할 수 있게 해준다.

주요 특징

  1. 유연한 객체 생성: 모든 필드를 한 번에 설정할 필요 없이, 필요한 필드만 선택적으로 설정할 수 있다.
  2. 불변성(Immutable): 빌더 패턴을 사용하면 객체를 생성한 후 수정할 수 없도록 만들기 쉽다.
  3. 가독성 향상: 매개변수가 많을 때, 코드의 가독성을 높여주고 매개변수의 순서를 기억할 필요가 없어진다.

기본 사용법

Lombok의 @Builder 애노테이션을 클래스 또는 생성자에 붙여 사용한다.

import lombok.Builder;

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

빌더 사용 예시

위의 클래스에 대해 빌더 패턴을 사용하여 객체를 생성할 수 있다.

public class Main {
    public static void main(String[] args) {
        User user = User.builder()
                        .name("John Doe")
                        .age(30)
                        .email("john.doe@example.com")
                        .build();

        System.out.println(user);
    }
}

@Builder의 장점

  • 매개변수의 순서가 중요하지 않음: 빌더를 사용하면 생성자에 넣는 매개변수의 순서를 기억할 필요 없이, 각 필드를 명시적으로 설정할 수 있다.
  • 유연한 객체 생성: 모든 필드를 다 채울 필요 없이, 필요한 필드만 선택적으로 설정할 수 있다.
  • 읽기 쉬운 코드: 많은 매개변수를 가진 객체를 생성할 때 가독성이 높아진다.

@Builder와 @AllArgsConstructor, @NoArgsConstructor와의 조합

Lombok의 @AllArgsConstructor@NoArgsConstructor와 함께 사용하면 더 유연하게 객체 생성 방식을 조합할 수 있다.

import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Product {
    private String name;
    private double price;
    private int stock;
}

이와 같이 Lombok의 @Builder는 복잡한 객체 생성 과정을 단순화해주고, 객체 생성 시 유연성을 높이는 데 매우 유용하다.

profile
Active 🙌 Curious 🤔 Energetic 💪

0개의 댓글