1. 빌더사용


Spring Boot에서 Lombok의 @Builder와 팩토리 메서드 패턴을 함께 사용하는 것은 충분히 가능한 접근 방식입니다. 두 개념이 어떻게 다르고, 어떻게 결합될 수 있는지를 설명하겠습니다.

Lombok의 @Builder

Lombok의 @Builder는 객체의 인스턴스를 생성하는 데 사용되는 패턴을 제공합니다. 이 패턴은 주로 복잡한 객체 생성의 유연성을 높이고 가독성을 개선하기 위해 사용됩니다. @Builder를 사용하면:

  1. 가독성 향상: 객체 생성 시 필요한 매개변수의 이름을 명시할 수 있어 가독성이 좋습니다.
  2. 유연성: 선택적 매개변수를 쉽게 처리할 수 있습니다.
  3. Immutable 객체 생성: 불변 객체를 쉽게 생성할 수 있습니다.

Lombok의 @Builder는 실제로 객체를 생성할 때 new 키워드를 사용합니다. @Builder를 적용한 클래스는 내부적으로 정적 빌더 클래스를 생성하며, 이 빌더 클래스는 new를 사용하여 대상 객체를 인스턴스화합니다.

팩토리 메서드 패턴

팩토리 메서드 패턴은 객체 생성의 책임을 서브클래스에 위임하는 디자인 패턴입니다. 이 패턴을 사용하면 객체 생성 로직을 중앙화하고, 복잡한 객체 생성 과정을 숨길 수 있습니다. 팩토리 메서드는 객체를 생성하기 위한 메서드로, new 키워드를 직접 사용하는 대신 이를 캡슐화하는 방식입니다.

Lombok @Builder와 팩토리 메서드의 결합

Lombok의 @Builder와 팩토리 메서드를 함께 사용하는 것이 가능한 이유는 다음과 같습니다:

  1. 캡슐화: 팩토리 메서드를 통해 객체 생성 로직을 캡슐화하면서, 내부적으로 Lombok의 빌더를 사용하여 객체를 생성할 수 있습니다.
  2. 유연성: 팩토리 메서드는 객체 생성에 필요한 전처리나 후처리 로직을 추가할 수 있는 반면, Lombok의 빌더는 복잡한 객체를 유연하게 생성하는 데 도움을 줍니다.

예제 코드