인프런 커뮤니티 질문&답변
업데이트 서비스 관련 질문
작성
·
176
0
public void updateItem(UpdateDto updateDto){
item.changeName(updateDto.getName())
...
....
...
...
}
이런 수정 메서드를 만들었고 수정 api를 제공한다고 할때
프론트에서 변경하고자 하는 값 외 다른 값은 그대로 넣어주도록 강제해야 할까요?
그렇지 않다면 변경 가능한 가짓수가 2^n일것이고 모든 메서드를 만들 순 없는 것같아서 질문 드립니다
퀴즈
회원 가입 시 화면 입력 데이터를 엔티티 객체 대신 별도의 Form 객체로 받는 주된 이유는 무엇일까요?
데이터베이스 성능을 최적화하기 위해서
화면 종속적인 데이터나 유효성 검증 로직을 분리하기 위해서
JPA 영속성 컨텍스트와 직접적인 관계를 맺기 위해서
코드의 자동 생성 기능을 활용하기 위해서
답변 1
0
그건 또 다른 얘기입니다.
null과 공백이 들어올 때 그걸 걸러내는 검증 로직이 없다면 그대로 엔티티에 반영되고 업데이트될 겁니다.
DTO에 a, b 변수에 대해서만 수정 데이터가 들어오고 c, d에는 아무런 데이터가 없다면 어떻게 이를 알아차리고 a, b에 대해서만 엔티티쪽으로 데이터를 넘겨줄 수 있을까요?
상태를 업데이트 하는 메서드 내에서 매개변수로 null과 공백이 들어올 때, 해당 멤버변수는 업데이트 않고 넘어가게 처리할 수도 있습니다.
이런 부분의 테스트는 직접 해보시면 학습에 더욱 도움이 될 것 같습니다:)






사용자가 null값이나 ""값을 넣는 경우에도 처리가 되는 걸까요?
원래 값이
a = "A"
b = "B"
...
z= "Z"
인데
클라이언트가
a값만 바꾸고 싶은 경우
a = "AA"
b = "B"
...
z= "Z"
처럼 바꾸지 않을 값은 그대로 넣어서 api를 호출하게 해야 하냐
아니면
a = "AA"
b =""
..
z=""
이렇게 변경할 값만 넣게 해도 되냐의 질문이였습니다