toEditor 메소드를 사용하는 의미가 잘 와닿지 않습니다 강사님!
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를 만들어 써보시면 와닿으실것 같습니다.
혹시 이해가 잘 안되시면 언제든 더 물어봐주세요.
감사합니다.
Deprecated 관련 사항들
0
128
2
깃헙 collaboator 초대 관련
0
104
1
강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다
0
171
2
logout 후에 login 페이지 이동은 어디서 시켜주는건가요?
0
243
1
다중 데이터를 삭제 할 때
0
294
2
querydsl Q class 이슈
0
433
2
Windows WSL Vue 설정
2
255
1
Dip, @transactional
0
199
1
[vite] http proxy error: /auth/login
0
1069
2
로그인 하고 나서 GET요청으로 메인페이지 요청
0
246
2
GitHub Collaborator 초대 관련
0
283
2
Window에서 Vue.js 설정
0
334
2
collaboator로 초대받을 수 있을까요??
0
298
2
SecurityMockContext 로부터 유저 정보를 가져오기
0
276
1
섹션9 프론트의 코드를 보고싶습니다,,,
0
427
1
Spring Security - defaultSuccessUrl 질문
0
639
1
강의 화면이 나오지 않습니다. 음성과 자막만 나와요
0
313
1
JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ
0
702
2
ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상
0
1186
2
섹션10 언제 나오나요?
0
489
1
CommentService에서 Repository를 호출하지 않는데도
0
346
1
Editor....를 활용한 패턴에 질문있습니다.
0
500
1
섹션9 vue
0
460
2
Post에 edit 메서드 삼항연산자 질문
0
480
2





