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

흰머리오목눈이님의 프로필 이미지

작성한 질문수

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

5강. GET API 개발하고 테스트하기

강사님 5강 관련하여 질문 드립니다.

작성

·

372

3

 안녕하세요. 강의 잘보고 있습니다. 한가지 궁금한 것이 있어 문의드립니다.

아직 자바 문법을 1차 마무리한 초보자인데요. 괜히 자바 문법 관련 내용을 여쭤보는건가 싶어 죄송하네요.

문의사항은 아래에 있는 내용입니다.

위 내용에서 CalculatorAddRequest request 가, 어떠한 과정으로 int number1, number 2 에 할당되는지 알 수 있을까요?

만약 너무 범위가 넓다고 생각되어서 답변하기 어려우시면 관련 하여 자바 목차로 말씀해주시면 제가 한 번 학습하고 다시 여쭤보겠습니다. 🙏

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요, 흰머리오목눈이님!! 질문 올려주셔서 감사드립니다~😊

질문 주신 내용은 Java 문법과 관련된 부분은 아닙니다!!!!

 

우선 현재 상황을 정리해보면, 이해해주신 것처럼~

CalculatorAddRequest 라는 객체를 만들어 @GetMapping 아래 있는 함수의 매개변수로 넣으면, 해당 객체 (여기서는 CalculatorAddRequest 입니다!!) 의 필드에 저희가 Post Man으로 작성한 같은 이름의 HTTP query가 할당 되는데요

(아래 PPT와 관련된 부분입니다!)

image

이건 바로 스프링이 해주는 일입니다!!!

 

스프링이 ?number1=10&number2=20 이라고 날아온 문자열을 보고~

어디보자~~~ number1이랑~ number2가 있네~~~ 라고 생각한 다음,

저희가 함수의 매개변수로 넣어둔 CalculatorAddRequest 를 봅니다.

 

그리고 또 스프링이 이렇게 생각합니다!

"(생성자를 보고) 어머~~ CalculatorAddRequest 에 number1이랑 number2라는게 있잖아~~~ 어 아까 HTTP query에 number1이랑 number2 있었는데~~ 이거 넣어주면 되겠다~~~"

 

그리고 스프링이 CalculatorAddRequest 객체를 만들며 number1과 number2 값을 넣어주게 되는 것입니다 ㅎㅎㅎㅎㅎ

 

그래서 다시 한 번 정리드리면, '잘 이해해주신 현상은 스프링이 처리해주는 것입니다!!!'

혹시나 또 어려운 부분 있으시면 편하게 질문 주세요~!! 😊

감사합니다!!! 🙏

다음 강의 보고 있던 중에 답변이 와서 놀라면서도, 너무 감사한 마음입니다. 바쁘실텐데, 감사인사부터 드립니다.. 😀

스프링에서 어느 변수에 할당 할지를 판단해서 값을 전달해준다고 이해하였습니다.

추가로 궁금한 부분이 그럼 값이 dto 에 들어온 순서대로 할당되는 것일까요?

예를 들어 dto 에 선언된 변수가 아래와 같이 있다고 가정해본다면,

private int number1;
private int number2;
private int number3;

 

?number1=40&number2=20&number3=30 과같이 쿼리가 서버로 요청이 오면, 순서대로 위에 선언된 변수 순서대로 값이 할당되는 것일까요?

아니면 스프링에서 요청과 같이 전달받은 쿼리의 키값을 보고 같은 변수명을 찾아 할당해 주는 것일까요?

나중에 실무를 하다보면 특정 값은 특정 변수에 넣어서 처리를 하고싶은 경우가 생길 수도 있을것 같아서 혹시나 여쭤봅니다.

다시 한번 빠른 답변에 감사드립니다 🙏

앗.. 강사님 이제보니 6강 14분경에 답변이 있군요..! 확인했습니다 ㅎㅎ;

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요!! 후자가 맞습니다!!

즉, 스프링에서 요청과 같이 전달받은 쿼리의 키값을 보고 같은 변수명을 찾아 할당해 주게 됩니다!!! 😊😊

아이고~~ 저도 때마침 알림이 울리더라고요~~!!! 덕분에 빠른 답변을 드릴 수 있어 좋네요~~!!

언제든 편하게 질문 주세요~~~ 감사합니다!!! 🙏