• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

toEditor 메소드를 사용하는 의미가 잘 와닿지 않습니다 강사님!

22.07.04 15:32 작성 조회수 419

1

Post클래스를 사용하지 않고 PostEditor 클래스를 만들어서 이 클래스에 수정하고 싶은 내용들을 필드로 담아두면 이 클래스는 수정하려는 클래스 이다 , 여기에 있는 필드들은 수정이 가능하다 라는 의미를 다른개발자분들에게 의미부여 할 수 있을것 같은데요!

 

toEdit 메소드가 없이 그냥 PostEditor 클래스에 빌더 패턴으로 생성자를 만들어 save 로 사용하면 될  것 같은데 굳이 toEdit 메소드를 만드신 의미가 어떤건지 궁금합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요. 호돌맨입니다.
질문을 남겨주셔서 감사합니다.

(현재는 코드에는 빠진 부분이 있어서.. 말씀하신대로 요청 들어온 데이터를 빌더 패턴으로 생성자를 만들어 save하시는것과 큰 차이가 없습니다.)

만약 수정 요청 데이터에 title값이 빠진 상태로 들어오면 title 값이 null로 들어가질 수 있는 부분을 보안하기 위해서입니다.
Post Entity내에 toEditor를 따로 만들면 현재 Post가 갖고 있는 데이터(title, content)를 유지 시킬 수 있는 방법이 생깁니다.

아래와같이 빌더생성자 안에 null 체크 같은 게 추가로 들어가야합니다.

(2022년 9월 17일 추가)
아래 코드는 잘못된 예제입니다. 참고하지마세요 (
https://www.inflearn.com/questions/653374)

@Getter
public class PostEditor {

    private final String title;
    private final String content;

    @Builder
    public PostEditor(String title, String content) {
        this.title = title != null ? title : this.title;
        this.content = content != null ? content : this.content;
    }
}

이런 부분에 대해 직접 문제를 경험 해보시려면 PostEdit에 있는 @NotBlank를 제거하시고
수정 요청 json에 일부 데이터를 누락해서 보내보세용!
그리고 직접 수정용 Builder를 만들어 써보시면 와닿으실것 같습니다.

혹시 이해가 잘 안되시면 언제든 더 물어봐주세요.

감사합니다.

원석나님의 프로필

원석나

질문자

2022.07.11

아 ~  이해가 갔습니다 
답변 너무 감사드립니다 강사님 !