정의

@BuilderLombok에서 제공하는 애너테이션으로, 빌더 패턴을 자동 생성해준다.

빌더 패턴은 객체 생성 과정을 유연하게 다루기 위한 방식으로, 매개변수가 많은 객체를 만들 때 특히 유용하다.

📌 사용법

  • 클래스에 @Builder를 적용하면 해당 클래스에 맞는 빌더가 자동으로 생성된다.
import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class Person {
    private String name;
    private int age;
    private String address;
}
  • 위와 같이 선언한 뒤에는 아래처럼 객체를 생성할 수 있다.
Person person = Person.builder()
    .name("John Doe")
    .age(30)
    .address("123 Elm Street")
    .build();

🧠 특징

  • 생성자 호출 순서를 직접 신경 쓰지 않아도 된다.
  • 필요한 값만 선택적으로 넣기 쉽다.
  • 코드가 읽기 쉬워지고 객체 생성 의도가 명확해진다.

⚠️ 주의사항

caution

@Builder는 setter를 사용하는 방식이 아니다.
따라서 외부에서 타입 변환이나 복잡한 값 처리가 필요하면 custom builder를 고려해야 한다.

  • 모든 필드가 항상 필요한 것은 아니므로, 객체 생성 규칙을 함께 생각해야 한다.
  • @Builder는 편리하지만, 무분별하게 사용하면 생성 방식이 분산될 수 있다.

📌 정리

  • @Builder는 Lombok의 빌더 패턴 자동 생성 애너테이션이다.
  • 많은 필드를 가진 객체를 만들 때 유용하다.
  • setter 방식이 아니므로, 복잡한 변환이 필요하면 별도 처리 방식이 필요하다.

연결문서

댓글남기기