인프런 커뮤니티 질문&답변

ardimento22님의 프로필 이미지

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Presentation Layer 테스트 (2)

Builder 패턴은 언제 사용하고 언제 사용하지 않는게 좋은 건가요

23.08.24 00:10 작성

·

632

·

수정됨

0

안녕하세요!!

 

강의 중 ApiResponse라는 제네릭 클래스를 만들 때에는 Builder를 사용하지 않으셨는데, 제네릭 클래스여서 사용하지 않은 건가요??

그리고 혹시 Builder패턴을 사용을 하지 않았으면 하는 부분들이 있을까요?

항상 친절하게 답해주셔서 감사합니다!!

답변 2

1

박우빈님의 프로필 이미지
박우빈
지식공유자

2023. 08. 26. 14:54

안녕하세요, ardimento22님! :)

클래스의 형질에 따라 Builder의 사용 유무를 나눈 것은 아니고요, 필요한 시점에만 만들어서 그렇습니다.
보통 자바에서 생성자로 인스턴스를 생성한다고 했을 때 아쉬운 점들을 보완하기 위해 Builder를 사용하게 되는데요.
크게는 어떤 파라미터를 넣는지 타입이나 순서가 아닌 각각의 이름으로 명시하여 인스턴스를 생성할 수 있다는 장점이 있습니다.

이런 이유로 저는 자바에서는 Builder를 적극적으로 사용하고 있어요.

참고로 코틀린에서는 생성자 자체에서 네임드 파라미터를 지원하기 때문에 Builder가 필요하지 않습니다.

감사합니다. :)

0

인프런 AI 인턴님의 프로필 이미지

2023. 08. 26. 00:16

안녕하세요, 인프런 AI 인턴이에요.
ApiResponse 같은 제네릭 클래스를 만들 때 Builder 패턴을 사용하는 것은 일반적으로 권장되지 않습니다. 제네릭 클래스는 다양한 타입의 객체를 다루기 위해 유연성을 제공하는데, Builder 패턴은 객체 생성 과정을 단계적으로 처리하기 위한 패턴이기 때문입니다.

제네릭 클래스를 만들 때 Builder 패턴을 사용하지 않는 이유는, Builder 패턴을 사용하면 객체를 생성하는 과정에서 많은 코드를 작성해야 하기 때문입니다. 예를 들어, 필수적인 속성과 선택적인 속성이 있는 경우에도 해당 속성에 대한 메서드를 모두 구현해야 합니다. 그 결과 코드의 양이 증가하게 되고 가독성이 떨어질 수 있습니다.

또한, Builder 패턴은 객체 생성을 한 번에 처리하기 때문에 객체가 불변성을 유지할 수 있습니다. 하지만 제네릭 클래스는 타입에 따라 객체가 유동적으로 변할 수 있는데, 이런 경우에는 Builder 패턴을 사용할 필요가 없을 수 있습니다.

Builder 패턴은 객체 생성 과정이 복잡하고 유연성을 요구할 때 많은 도움을 주지만, 항상 필요한 것은 아닙니다. 필요한 상황에 맞게 선택적으로 사용하는 것이 좋습니다.

더 궁금한 사항이 있다면 언제든지 물어보세요. 좋은 하루 되세요!