안녕하세요. 5강, 6강 관련 질문 남깁니다.
637
작성한 질문수 1
안녕하세요. 5강 6강을 수강하던 중 몇 가지 궁금증이 생겨 질문 남깁니다.
5강 GET API에서 사용된 CalculatorAddRequest -> 생성자 O, getter O
6강 POST API에서 사용된 CalculatorMultiplyRequest -> 생성자 X, getter O
1. GET API - CalculatorAddRequest에서 number1, number2 필드에 왜 final 키워드가 필요한가요?
2. GET API - CalculatorAddRequest에서 생성자를 없애면 값이 0으로 바인딩되던데 왜그럴까요?
3. POST API - CalculatorMultiplyRequest에서는 왜 생성자가 없어도 값이 바인딩되는 걸까요? @RequestBody 어노테이션 때문일까요?
감사합니다.
답변 3
2
안녕하세요! migein7님~~ 😊 크으~~~ 강의에서 다루었던 내용을 기반으로 이렇게 저렇게 변경해보시는게 너무 대단하십니다!!! 👍 정말 빠르게 실력이 느실거에요!! 👍
질문 주신 내용에 답변 드려보겠습니다!!
1. GET API - CalculatorAddRequest에서 number1, number2 필드에 왜 final 키워드가 필요한가요?
필요하지 않습니다! 다만 아시다시피
final키워드를 필드에 붙이면 변경이 불가능하고, DTO는 최초 객체 생성 이후 필드가 변경될 일이 없기 때문에 붙여주었습니다!
2. GET API - CalculatorAddRequest에서 생성자를 없애면 값이 0으로 바인딩되던데 왜그럴까요?
GET API에서 사용되는 DTO의 경우, POST와 달리 생성자를 통해 값이 바인딩 되기 때문입니다!
만약 생성자가 없다면, API를 통해 들어온 쿼리가 바인딩 되는게 아니라, 기본값인 0이 필드에 들어가게 됩니다.
public class Data {
private int number;
}
new Data(); // 이렇게 해보시면 number에 0이 들어 있을 겁니다!
3. POST API - CalculatorMultiplyRequest에서는 왜 생성자가 없어도 값이 바인딩되는 걸까요? @RequestBody 어노테이션 때문일까요?
네네 맞습니다!! POST API에서 사용되는 DTO의 경우,
getter를 통해 값이 바인딩 되기 때문에 생성자가 없더라도 필드에 값을 넣을 수 있는데요!@RequestBody를 붙이게 되면 바인딩 되는 로직이 GET API와는 달라지기 때문입니다!
강의를 들으시다 또 궁금한 점이 생기신다면 편하게 질문 주세요!! 😊
감사합니다!! 🙏🙇
패키지 구분에 대해 궁금한게 있습니다
0
7
1
리액트 관련 질문이 있습니다.
0
62
2
스프링부트 버전
0
68
2
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
0
55
2
33강. UserLoanHistory의 관계성에 대한 질문
1
53
2
Java JDK 버전 문의의 건
0
131
2
ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.
0
83
3
h2 console 접속했을 테이블 질문
1
63
1
ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨
0
72
2
15강. updateUser() 질문
0
53
2
깃허브 질
0
80
2
여기까지 다 끝냈다고 하셨는데
0
76
2
왜안될까요
0
68
2
MySQL 창이안ㄴ뜹니다
0
56
2
포스트맨
0
47
1
spring 개념적인 질문
0
69
2
인텔리제이 샘플코드 실행 안됨 오류
0
138
2
aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다
0
81
1
마이그레이션 오류입니다.
0
168
3
Whitelabel Error Page 오류가 났습니다.
0
161
2
안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ
1
89
3
궁금한게 있습니다.
0
55
2
DTO 관련
0
68
2
궁금한게 있습니다!
0
64
2





