Spring

Java Spring_@Builder

검은고양이개발자 2023. 3. 5. 17:21
반응형

@Builder

 

@Builder는 주석으로 Lombok에서 제공하는 어노테이션으로, 해당 클래스에 대해 빌더 패턴을 생성합니다.

빌더 패턴은 객체 지향 프로그래밍에서 많은 선택적 매개변수를 가진 객체를 생성하기 위해 사용되는 생성 패턴입니다.

빌더 패턴을 사용하면 많은 속성을 가진 객체를 긴 매개변수를 사용하지 않고 생성할 수 있습니다.

 

Java에서 클래스에 대한 빌더 패턴을 생성하는 것은 지루하고 반복적인 작업일 수 있습니다.

이때 @Builder 어노테이션을 사용하면 단 한 줄의 코드로 해당 클래스에 대해 빌더 패턴을 생성할 수 있습니다.

 

 

 

 

 

@Builder 사용법

 

Java에서 @Builder 어노테이션을 사용하려면, 프로젝트에 Lombok 의존성을 추가해야 합니다.

 

@Builder 애노테이션을 사용하기 위해서는 Lombok 라이브러리가 필요합니다.

Maven 프로젝트의 경우, pom.xml 파일에 아래와 같은 의존성을 추가하면 됩니다.

 

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
    <scope>provided</scope>
</dependency>
 
 

 

Gradle 프로젝트의 경우, build.gradle 파일에 아래와 같이 추가하면 됩니다.

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.20'
    annotationProcessor 'org.projectlombok:lombok:1.18.20'
}

 

그런 다음, 클래스에 @Builder 어노테이션을 추가하기만 하면 됩니다.

 

 

 

다음은 예시입니다

 

@Builder
public class User {
    private Long id;
    private String username;
    private String email;
    private String password;
}

 

@Builder 어노테이션을 사용하면, Lombok이 User 클래스에서 다음과 같은 메서드들을 자동으로 생성해 줍니다:

  • 클래스의 모든 필드를 파라미터로 받는 private 생성자
  • 빌더 인스턴스를 반환하는 public static 메서드인 builder()
  • 클래스의 각 필드를 설정할 수 있는 메서드들, 반환 타입은 빌더 클래스
  • 인스턴스를 생성하여 반환하는 build() 메소드

 

그러면 이제 위에서 생성한 빌더 패턴을 이용하여, 다음과 같이 몇 줄의 코드만으로 User 객체를 생성할 수 있습니다.

User user = User.builder()
                .id(1L)
                .username("john_doe")
                .email("john_doe@example.com")
                .password("secret")
                .build();

 

이 예제에서는 builder() 메서드를 사용하여 새로운 빌더 인스턴스를 생성하고, 세터 메서드 호출을 연결하여 클래스의 필드 값을 설정합니다.

마지막으로, build() 메서드를 호출하여 새 User 객체를 생성합니다.

 

 

 

 

 

@Builder의 장점

 

  • 코드를 줄일 수 있습니다 : @Builder 어노테이션을 사용하면 모델 클래스에 대한 별도의 빌더 클래스를 작성할 필요가 없습니다
  • 코드 가독성을 향상합니다 : 빌더 패턴은 객체를 생성할 때 설정된 매개변수가 명확하기 때문에 코드 가독성을 높입니다.
  • 컴파일 타임 안전성을 제공합니다 : @Builder 어노테이션은 모든 필수 필드가 초기화되었는지 확인하기 위해 컴파일 타임 검사를 생성합니다.
  • 유지보수가 쉽습니다: 필드를 추가하거나 제거해야 하는 경우 생성자나 빌더 클래스를 변경할 필요 없이 쉽게 수행할 수 있습니다.

 

 

 

 

 

결론적으로, 이 글에서는 @Builder 어노테이션을 사용하여 클래스에 빌더 패턴을 생성하는 방법을 살펴보았습니다.

이 어노테이션을 사용하면 자바 애플리케이션에서 보일러플레이트 코드를 줄이고, 코드 가독성을 향상하며, 컴파일 타임 안전성을 제공할 수 있습니다.

반응형