-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
toEditor 메소드를 사용하는 의미가 잘 와닿지 않습니다 강사님!
22.07.04 15:32 작성 조회수 419
1
Post클래스를 사용하지 않고 PostEditor 클래스를 만들어서 이 클래스에 수정하고 싶은 내용들을 필드로 담아두면 이 클래스는 수정하려는 클래스 이다 , 여기에 있는 필드들은 수정이 가능하다 라는 의미를 다른개발자분들에게 의미부여 할 수 있을것 같은데요!
toEdit 메소드가 없이 그냥 PostEditor 클래스에 빌더 패턴으로 생성자를 만들어 save 로 사용하면 될 것 같은데 굳이 toEdit 메소드를 만드신 의미가 어떤건지 궁금합니다!
답변을 작성해보세요.
0
호돌맨
지식공유자2022.07.05
안녕하세요. 호돌맨입니다.
질문을 남겨주셔서 감사합니다.
(현재는 코드에는 빠진 부분이 있어서.. 말씀하신대로 요청 들어온 데이터를 빌더 패턴으로 생성자를 만들어 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를 만들어 써보시면 와닿으실것 같습니다.
혹시 이해가 잘 안되시면 언제든 더 물어봐주세요.
감사합니다.
답변 1