인프런 커뮤니티 질문&답변
6강 복습중에 질문 있습니다
작성
·
62
답변 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관련)”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






