어디서든 값을 변경 할 수 있는 setter 대신에 빌더 메서드를 사용하는 것을 지향한다.

빌더 메서드를 사용하기 위해서는 빌더 클래스를 직접 생성해도 되지만

Lombok에서 제공해주는  @Builder 어노테이션으로 간단하게 생성 할 수 있다.

 

 

 

@Builder 어노테이션은 클래스 단에 붙여도 되지만 그보다는 생성자 메서드 단에 붙이는 것이 더 좋다.

그 이유는 설명을 너무 잘 해둔 블로그가 있어 소개하겠다.


https://velog.io/@park2348190/Lombok-Builder%EC%9D%98-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC

 

Lombok @Builder의 동작 원리

보일러플레이트 메서드(getter/setter, constructor 등)를 직접 작성하지 않아도 대신 작성해주는 Lombok를 최근에 많이 활용하고 있다. 그나마 setter 메서드같은 경우는 값을 변경시키는 메서드는 그 목

velog.io

클래스 레벨에서는 가능한 모든 필드에 대하여 빌더 메서드를 생성했다면 생성자 레벨에서는 생성자의 파라미터 필드에 대해서만 빌더 메서드를 생성한다는 점이 차이가 있다.

클래스 레벨과 달리 생성자를 직접 생성해서 @Builder 를 적용하면 빌더로 설정하도록 제공하는 항목 역시 직접 고를 수 있다는 장점이 있다. 특히 JPA 엔티티 같은 경우 영속되기 전에는 식별자가 존재하지 않아 필연적으로 null 값을 가져야 한다. 이런 경우 생성자로 null 값을 전달하기보다는 아예 생성자에서 null 값을 받지 않도록 직접 구성하는 편이 좋다.

 

 

'Java > Spring Boot' 카테고리의 다른 글

구글 Oauth2 access token 발급  (0) 2024.06.18
[Thymeleaf] 문법  (0) 2023.09.21
[API 작성법] GET API 만드는 법 핵심 정리  (0) 2023.09.14

+ Recent posts