inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

게시글 수정

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

해결된 질문

636

원석나

작성한 질문수 65

2

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

 

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

Spring Security vuejs aws spring-boot JPA

답변 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를 만들어 써보시면 와닿으실것 같습니다.

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

감사합니다.

0

원석나

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

 

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