Lombok @Builder 사용 이유 🚀
Java에서 객체 생성 시 필드를 하나씩 설정하는 **Setter 방식**이나 생성자를 통해 값을 주입하는 방식은 가독성과 유지보수 측면에서 불편할 수 있습니다. Lombok의 @Builder는 이런 문제를 해결하기 위해 **빌더 패턴**을 쉽게 사용할 수 있도록 도와줍니다.
📌 빌더 패턴이란?
빌더 패턴은 객체 생성 시 **복잡한 생성자 호출을 대체**하고 필드 값을 직관적으로 설정할 수 있도록 도와주는 디자인 패턴입니다. 가독성이 좋고, 필요한 필드만 선택적으로 초기화할 수 있다는 장점이 있습니다.
✅ Lombok @Builder 사용 이유
- **가독성 향상**: 필드의 이름을 명시적으로 설정하므로 코드의 가독성이 높아집니다.
- **유연한 객체 생성**: 불필요한 필드를 초기화하지 않고 선택적으로 설정할 수 있습니다.
- **불변 객체 생성**: 빌더 패턴을 통해 불변 객체를 쉽게 만들 수 있습니다.
- **코드 간결화**: Lombok의 @Builder를 사용하면 직접 빌더 클래스를 작성할 필요가 없습니다.
🛠️ @Builder 사용 예제
아래는 Lombok의 @Builder를 사용해 객체를 생성하는 예제입니다.
1️⃣ Lombok @Builder 적용
import lombok.Builder;
import lombok.ToString;
@Builder
@ToString
public class User {
private String name;
private int age;
private String email;
public static void main(String[] args) {
// User 객체 생성
User user = User.builder()
.name("홍길동")
.age(30)
.email("hong@example.com")
.build();
System.out.println(user);
}
}
출력 결과:
User(name=홍길동, age=30, email=hong@example.com)
2️⃣ 필드 선택적 설정
@Builder를 사용하면 필요한 필드만 설정하고 나머지는 **기본값**으로 유지할 수 있습니다.
User user = User.builder()
.name("이순신")
.build();
System.out.println(user);
출력 결과:
User(name=이순신, age=0, email=null)
💡 @Builder의 장점
- **복잡한 생성자**를 대신해 가독성이 높은 객체 생성
- 필요한 필드만 선택적으로 설정 가능
- 불변 객체 생성에 용이
- 코드 작성량을 줄여 개발 생산성 향상
⚠️ 주의사항
- @Builder는 클래스 레벨과 생성자 레벨에 적용할 수 있습니다.
- 객체 생성 시 필드 값의 순서를 실수할 가능성이 없지만, 필드 이름이 바뀌면 컴파일 에러가 발생할 수 있습니다.
- **불변 객체**를 생성하려면 필드를 final로 선언하세요.
🚀 결론
Lombok의 **@Builder**는 빌더 패턴을 간편하게 사용할 수 있게 도와주는 강력한 도구입니다. 객체 생성의 가독성을 높이고 코드 작성량을 줄이는 효과를 기대할 수 있습니다.
**유연하고 깔끔한 객체 생성**을 위해 Lombok의 @Builder를 프로젝트에 활용해 보세요! 😊