inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

1시간만에 끝내는 spring boot rest api 서비스 개발

@Controller 요청하는 방식에 대해 궁금합니다.

79

문예진

작성한 질문수 2

1

질문있습니다!

Controller에서 데이터를 클라이언트로부터 요청 받을 때 @RequestBody, @RequestParam, @PathVariable, Dto를 활용하는데, 어떤 경우로부터 클라이언트에게 데이터를 요청받았을 때 어떤 방식을 사용하는게 맞는지를 알고 싶습니다!

 

spring-boot jpa swagger mybatis

답변 2

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 문예진님.

RESTful API에서 클라이언트가 서버에 데이터를 전송할 때 사용되는 다양한 방법이 있습니다. 각각의 사용 목적과 요건에 따라 적절한 방식을 선택하는 것이 중요합니다.

  1. @RequestBody: 클라이언트로부터 JSON, XML 등의 형식으로 데이터를 수신하여 객체로 매핑할 때 사용됩니다. 주로 POST, PUT 요청에서 데이터를 요청 본문(body)에 포함하여 전송할 때 유용합니다.

  2. @RequestParam: 쿼리 파라미터 또는 폼 데이터를 통해 전달되는 간단한 데이터를 수신할 때 사용합니다. 주로 GET 요청에서 URL에 쿼리 형태로 데이터를 전달받는 경우 사용됩니다. 예를 들어, GET /api/items?name=apple에서 name 파라미터를 가져올 때 사용됩니다.

  3. @PathVariable: URL 경로에 포함된 변수를 사용할 때 활용됩니다. 주로 리소스 식별자를 지정할 때 사용되며, RESTful URI 설계에 따라 리소스를 식별하는 데 유리합니다. 예를 들어, GET /api/items/{id}에서 {id}에 해당하는 값을 경로 변수로 받습니다.

  4. DTO(Data Transfer Object): 클라이언트와 서버 간에 데이터를 쉽게 전송하기 위한 객체입니다. 요청이나 응답의 구조가 복잡한 경우 여러 필드를 포함한 DTO 객체를 정의하여 구조적으로 데이터를 전송할 수 있습니다.

각 방법에는 장단점이 있으며, 사용 상황에 따라 적절하게 선택해야 합니다. 예를 들어, 검색 조건처럼 간단한 데이터를 전달할 때는 @RequestParam이 적합하고, 복잡한 객체를 JSON 형식으로 전송할 때는 @RequestBody가 적절합니다.

위의 기본적인 설명을 바탕으로 각 적용 사례의 예제를 탐색하거나, 인프런 포럼에서 관련 질문을 더 찾아보시는 것도 큰 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

Hello World

인프런에서 답변이 잘 달려있네요.

아래 공식 사이트에서 자세한 설명을 알 수 있습니다.

https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller/ann-methods/requestparam.html

다양한 annotation 들은 https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller/ann-methods.html 에 모두 나와있습니다.

테스트 코드 작성 시 DTO 새로 작성하는 이유가 궁금합니다.

0

12

1

leaveGroupChatRoom 문의

0

20

3

변경감지(더티체킹) 이후 플러시할 경우의 쿼리

0

14

1

단일 테이블 시 null 값과 연관관계 필요성 질문

0

31

1

SpringBoot4 버전 Hibernate5JakartaModule 라이브러리 오류

0

33

1

aws 관련 질문드립니다.

1

49

3

spring ai에서 RAG ETL 파이프라인 성능 최적화에 대해 질문이 있습니다!

1

50

1

강사님 질문 있어요.

0

40

2

setter 사용하지 않기

0

38

1

안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?

0

49

2

자막 오타 제보

0

40

1

rabbitmq에 configservice 연결에 대해 질문있습니다.

0

38

1

지식공유 (윈도우 설치) [실습] 외부 MCP Server와 연동한 실시간 날씨 조회 - MCP Client 개발

0

42

1

자료 다운로드가 안됩니다.

0

51

2

claude-squad 실행 시 로그인 및 권한 문제

0

44

2

안녕하세요 졸업프로젝트를 준비하는 학생입니다.!

0

62

1

H2 접속 에러

0

166

3

item을 id로 get하는데 1을 넣었을 때 500에러가 나와요.

0

111

1

swagger spring boot 3 적용 run 실행 에러

0

275

2

Invalid bound statement (not found): com.helloword.fitstStart.mapper.QuickMapper.findById 에 대한 질의 입니다.

0

572

1

QuickMapper를 찾을 수 없다는 오류가 뜹니다. @Autowired 사용에 문제가 있는 걸까요?

2

405

3

mybatis의 hashmap 데이터 호출시 대문자로 불러와야 되나요?

0

531

1

@Autowired 관련

0

271

1

마이바티스 - 해쉬맵

0

569

1