inflearn logo
강의

Course

Instructor

Hodolman's Stomach-Turning Development Show (SpringBoot, Vue.JS, AWS)

Post Edit (Error Correction, Supplementary Content)

Post에 edit 메서드 삼항연산자 질문

472

practice960426

1 asked

0

업데이트 관련 질문입니다!!

PostEdit을 만들고

Post에 edit이라는 메서드를 만들어서 PostEdit자체를 받은 후에 삼항연산자를 쓰는 방식으로 해결해도 문제가 없을까요??

@Data
public class PostEdit {

    @NotBlank(message = "제목을 입력하세요.")
    private String title;

    @NotBlank(message = "내용을 입력하세요.")
    private String content;

    @Builder
    public PostEdit(String title, String content) {
        this.title = title;
        this.content = content;
    }
}
public void edit(PostEdit postEdit) {
    this.title = postEdit.getTitle() != null ? postEdit.getTitle() : this.title;
    this.content = postEdit.getContent() != null ? postEdit.getContent() : this.content;
}

vue.js aws spring-boot jpa spring-security

Answer 2

1

hodolman888675

넹. 상관없습니다.

front에서 데이터를 온전히 보내준다고 가정하면 사실 저렇게 null 체크하는게 의미가 없기는 합니다. 그냥 보내주는대로 update를 해주면 되니깐요. ^^

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
김용준님의 질문에 답변드리겠습니다.

네, 김용준님께서 구현하신 방식대로 Post 클래스에 edit 메서드를 만들어 PostEdit 인스턴스를 받고, 삼항연산자를 사용하여 null인 경우에는 기존의 값을 유지하는 로직으로 업데이트를 처리하는 것은 문제가 없습니다. 삼항연산자를 사용하여 PostEdittitlecontent 값이 null이 아닐 때만 업데이트를 수행하도록 한 것은 올바른 접근 방식입니다. 이렇게 함으로써 입력된 값이 없을 때 기존 데이터를 유지할 수 있게 됩니다.

또한 @NotBlank를 사용하여 titlecontent가 빈 문자열이거나 null일 때 검증을 할 수 있으므로, 클라이언트 쪽에서는 제대로 된 값이 전달되었는지를 미리 확인할 수 있습니다.

추가로 @Builder를 사용해 객체의 생성이 불변성을 유지하도록 설계하는 것도 좋은 패턴입니다. 빌더 패턴은 필요한 객체를 단계별로 안전하게 생성하도록 도와주며, 가독성이 좋고 사용하기 편리합니다.

필요에 따라 null을 체크하는 로직 외에도 업데이트 되기 전에 특정 조건을 만족해야 할 때 추가적인 검증 로직을 구현할 수도 있습니다. 예를 들어 입력값을 특정 기준으로 검증하거나, 권한 체크 같은 보안 관련 로직이 추가될 수 있습니다.

요약하자면, 김용준님께서 구현하신 삼항연산자를 활용한 edit 메서드 방식은 문제가 없으며, 객체를 업데이트 하는 데에 적절하게 사용될 수 있습니다.

Deprecated 관련 사항들

0

100

2

깃헙 collaboator 초대 관련

0

86

1

강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다

0

157

2

logout 후에 login 페이지 이동은 어디서 시켜주는건가요?

0

229

1

다중 데이터를 삭제 할 때

0

270

2

querydsl Q class 이슈

0

413

2

Windows WSL Vue 설정

2

246

1

Dip, @transactional

0

187

1

[vite] http proxy error: /auth/login

0

1040

2

로그인 하고 나서 GET요청으로 메인페이지 요청

0

234

2

GitHub Collaborator 초대 관련

0

256

2

Window에서 Vue.js 설정

0

321

2

(솔루션 수정)'tsyringe' Error: TypeInfo not known for "클래스명"

0

712

2

collaboator로 초대받을 수 있을까요??

0

283

2

SecurityMockContext 로부터 유저 정보를 가져오기

0

260

1

given 부분이 길어질 때 어떻게 처리하면 좋을까요?

0

317

1

섹션9 프론트의 코드를 보고싶습니다,,,

0

423

1

Spring Security - defaultSuccessUrl 질문

0

624

1

강의 화면이 나오지 않습니다. 음성과 자막만 나와요

0

302

1

JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ

0

689

2

ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상

0

1178

2

섹션10 언제 나오나요?

0

482

1

CommentService에서 Repository를 호출하지 않는데도

0

340

1

Editor....를 활용한 패턴에 질문있습니다.

0

492

1