inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

6강. POST API 개발하고 테스트하기

안녕하세요. 5강, 6강 관련 질문 남깁니다.

637

migein7

작성한 질문수 1

3

 안녕하세요. 5강 6강을 수강하던 중 몇 가지 궁금증이 생겨 질문 남깁니다.

 

1. GET API - CalculatorAddRequest에서 number1, number2 필드에 왜 final 키워드가 필요한가요?

2. GET API - CalculatorAddRequest에서 생성자를 없애면 값이 0으로 바인딩되던데 왜그럴까요?

3. POST API - CalculatorMultiplyRequest에서는 왜 생성자가 없어도 값이 바인딩되는 걸까요? @RequestBody 어노테이션 때문일까요?

 

감사합니다.

aws java spring JPA jpa mysql spring-boot

답변 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

mrx

3번 질문에 추가적으로 궁금한점이 그러면 생성자가 있더라도 상관이 없는걸까요?!

1

최태현

넵넵! 생성자가 있더라도 값이 바인딩 됩니다!!

0

migein7

친절한 답변 감사합니다!ㅎㅎㅎㅎ

패키지 구분에 대해 궁금한게 있습니다

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