TIL : 빌더, 질문법,구글링

원녕·2024년 2월 23일
0

TIL

목록 보기
18/21
post-thumbnail

❤️ Today I Learned

빌더 사용의 이유. 질문 방법 및 구글링

📕 내용

  • 오늘의 학습 키워드
    - 빌더,구글링 및 주도적 질문법

빌더를 사용하는이유

[!tip] 필요한 데이터를 설정할 수 있다.

예시로, User 객체를 생성하는데 password가 필요없이 접근해야 하는 상황이 있을수도 있다.
하지만 그럴때마다 생성자를 수정하기에는 번거롭고 귀찮은 작업이다. 그때 builder를 사용해서 불필요한 필드를 작성하지 않으면 해결된다.

[!tip] 가독성을 높일수 있다.

아래의 현재그림이

이렇게 변할수 있다. 즉, 어떤 값을 설정 하는지 알기 쉽다.

[!tip] 변경 가능성을 최소화 시킬 수 있다.

이부분은 잘 이해가 되지 않는다. setter를 지양하기 위해서 쓸 수도 있다는 말인듯 싶다.

@Builder  
public Restaurants(String name,String category,String address,String number){  
  this.name = name;  
  this.category = category;  
  this.address = address;  
  this.number = number;  
  this.created_date = LocalDate.now();  
  this.updated_date = LocalDate.now();  
}

왜 이렇게하고 class자체에 Builder를 또 붙이면안될까??
이유는 다음과 같다.

이 코드에서 빌더(@Builder)를 두 번 사용하는 것이 문제를 일으키는 이유는 롬복(Lombok)이 두 개의 빌더 메소드를 생성하려고 하기 때문입니다. 롬복의 @Builder는 클래스에 대한 빌더 패턴을 생성하는데, 이미 생성자가 있고 빌더가 있으므로 충돌이 발생합니다.

롬복에서 두번 빌더를 실행하게되는 셈이 되어서 충돌이 일어나서 실행이 안된 모양이다. 잘 알아두자.

이거는 created_date,updated_date와 같은 날짜 생성 함수들의 작동원리다
https://wildeveloperetrain.tistory.com/76
요약하자면, 공통적으로 created_date,updated_date를 사용하게 될땐

MappedSuperclass

Jpa가 Entity에서 이벤트가 발생할 때 특정 로직을 수행하는

@EntityListeners

주도적으로 질문하기

질문의 요점을 잘 정리해서 검색해보자

이상적인 Q1. 제가 ---해서 ---한 방법을 사용해보고 시도해봤는데 ---와 같은 결과가 나왔습니다.
결과가 이렇게 나온 이유는 디버그를 통해서 알아봤는데 ---때문이라는 생각이 들었습니다. 이점믈 어떻게 해결할 수 있을까요? 아니면 제가 a방법을 시도해보려고하는데 괜찮을까요? 혹은 다른 좋은 대안을 주실수 있을까요?

조금은 오버한 질문이긴하지만 좋은 답변을 받기 좋을만한 질문이라서 추가해봤다.

구글 검색하기

그냥 검색하는 것보다 구글 검색연산자를 활용해봅시다.

영어로 검색시

한글로 검색시
업로드중..

profile
메타인지하는 개발자

0개의 댓글