6강 복습중에 질문 있습니다
80
작성한 질문수 9
GetAPI를 만들때는 dto에 생성자를 만들었는데
왜 post때는 생성자를 만들지 않나요?
답변 2
1
안녕하세요! 성장하자님 🙂 정말 좋은 질문이시네요~
인프런 AI 인턴이 대답을 잘 해주었는데요! 스프링이 문자열로 된 HTTP 을 객체로 만드는 과정에서 (이를 어려운 말로 역-직렬화 라고 합니다) GET API를 객체화 하는 코드와 POST API를 개체화 하는 코드의 로직이 달라서 그렇습니다. 보다 자세한 내용은
에서 추가로 확인해보실 수 있습니다. (왜 스프링이 GET API를 객체화 하는 코드와 POST API를 객체화 하는 코드를 달리 구성하였는지까지는 저도 정확히 모르겠습니다.)
감사합니다. 🙇
0
안녕하세요, 인프런 AI 인턴입니다. 성장하자님.
자바와 스프링 부트를 사용하여 GET 과 POST 요청을 처리할 때, DTO(Data Transfer Object) 클래스에서 생성자 사용에 대한 차이는 두 가지 요청 방법이 각각 API 요청을 처리하는 방식과 관련이 있습니다.
GET 요청과 DTO 생성자:
- 일반적으로 GET 요청은 URL의 쿼리 파라미터로 인자를 전달받아 DTO에 데이터를 매핑합니다. 이때, 생성자를 통해 DTO 객체를 초기화 할 수 있습니다.
- 생성자를 사용하여 각 필드를 명시적으로 설정하면, DTO를 통해 보다 안정적으로 데이터 구조를 관리할 수 있어 유용합니다.
- 일반적으로 GET 요청은 URL의 쿼리 파라미터로 인자를 전달받아 DTO에 데이터를 매핑합니다. 이때, 생성자를 통해 DTO 객체를 초기화 할 수 있습니다.
POST 요청과 리플렉션:
- POST 요청은 주로 HTTP 요청 본문에 JSON 등의 형식으로 데이터를 전송하고, 이를 DTO에 매핑합니다.
- 이 과정에서는 스프링 프레임워크가 Jackson 같은 라이브러리를 사용하여 자동으로 JSON 데이터를 객체로 변환합니다. 이는 리플렉션(Reflection) 기법을 통해 이루어지며, 필드에 직접 값을 할당하기 때문에 기본 생성자가 없어도 동작합니다.
- 자동 매핑이 되기 때문에 필드를 변경할 필요가 없는 경우 생성자를 생략하기도 합니다.
- POST 요청은 주로 HTTP 요청 본문에 JSON 등의 형식으로 데이터를 전송하고, 이를 DTO에 매핑합니다.
관련된 기존 질문에 대한 답변을 통해 더 상세한 설명을 확인해보세요:
- “어떻게 생성자 없이 number1과 number2에 값이 할당된건지 모르겠습니다.(DTO관련)”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
리액트 관련 질문이 있습니다.
0
61
2
스프링부트 버전
0
67
2
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
0
55
2
33강. UserLoanHistory의 관계성에 대한 질문
1
52
2
Java JDK 버전 문의의 건
0
128
2
ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.
0
82
3
h2 console 접속했을 테이블 질문
1
63
1
ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨
0
72
2
15강. updateUser() 질문
0
51
2
깃허브 질
0
78
2
여기까지 다 끝냈다고 하셨는데
0
76
2
왜안될까요
0
68
2
MySQL 창이안ㄴ뜹니다
0
54
2
포스트맨
0
47
1
spring 개념적인 질문
0
69
2
인텔리제이 샘플코드 실행 안됨 오류
0
138
2
aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다
0
81
1
마이그레이션 오류입니다.
0
165
3
Whitelabel Error Page 오류가 났습니다.
0
157
2
안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ
1
88
3
궁금한게 있습니다.
0
55
2
DTO 관련
0
67
2
궁금한게 있습니다!
0
61
2
35강에서 returnBook 에서 userLoanHistory 값 중복에 관하여
0
54
2





