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 인턴입니다.
김용준님의 질문에 답변드리겠습니다.
네, 김용준님께서 구현하신 방식대로 Post
클래스에 edit
메서드를 만들어 PostEdit
인스턴스를 받고, 삼항연산자를 사용하여 null
인 경우에는 기존의 값을 유지하는 로직으로 업데이트를 처리하는 것은 문제가 없습니다. 삼항연산자를 사용하여 PostEdit
의 title
과 content
값이 null
이 아닐 때만 업데이트를 수행하도록 한 것은 올바른 접근 방식입니다. 이렇게 함으로써 입력된 값이 없을 때 기존 데이터를 유지할 수 있게 됩니다.
또한 @NotBlank
를 사용하여 title
과 content
가 빈 문자열이거나 null
일 때 검증을 할 수 있으므로, 클라이언트 쪽에서는 제대로 된 값이 전달되었는지를 미리 확인할 수 있습니다.
추가로 @Builder
를 사용해 객체의 생성이 불변성을 유지하도록 설계하는 것도 좋은 패턴입니다. 빌더 패턴은 필요한 객체를 단계별로 안전하게 생성하도록 도와주며, 가독성이 좋고 사용하기 편리합니다.
필요에 따라 null
을 체크하는 로직 외에도 업데이트 되기 전에 특정 조건을 만족해야 할 때 추가적인 검증 로직을 구현할 수도 있습니다. 예를 들어 입력값을 특정 기준으로 검증하거나, 권한 체크 같은 보안 관련 로직이 추가될 수 있습니다.
요약하자면, 김용준님께서 구현하신 삼항연산자를 활용한 edit
메서드 방식은 문제가 없으며, 객체를 업데이트 하는 데에 적절하게 사용될 수 있습니다.