@Builder
정의
@Builder는 Lombok에서 제공하는 애너테이션으로, 빌더 패턴을 자동 생성해준다.
빌더 패턴은 객체 생성 과정을 유연하게 다루기 위한 방식으로, 매개변수가 많은 객체를 만들 때 특히 유용하다.
📌 사용법
- 클래스에
@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 방식이 아니므로, 복잡한 변환이 필요하면 별도 처리 방식이 필요하다.
댓글남기기