인프런 커뮤니티 질문&답변

김용준님의 프로필 이미지

작성한 질문수

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

게시글 수정 (오류수정, 보충내용)

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

24.01.30 11:16 작성

·

377

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;
}

답변 2

1

호돌맨님의 프로필 이미지
호돌맨
지식공유자

2024. 02. 06. 23:02

넹. 상관없습니다.

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

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 02. 01. 11:21

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

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

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

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

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

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