[Spring] @RequestPart를 활용하여 JSON + MultipartFile 동시 전송하기 (Feat. 게시판에서 게시물 생성과 첨부 파일 업로드 한번에 처리하기)
·
BackEnd/Spring & JPA
1. 시작하며웹 애플리케이션을 개발할 때, JSON 데이터와 파일을 함께 전송해야 하는 경우가 있습니다.예를 들어, 게시글 작성 시 게시글 정보(JSON)와 첨부파일(MultipartFile)을 함께 API에 전달해야 하는 경우를 생각해 볼 수 있습니다.보통 API에서 @RequestBody를 사용하여 JSON 데이터를 받지만, multipart/form-data 요청에서는 @RequestBody를 사용할 수 없습니다.이러한 경우, Spring의 @RequestPart 어노테이션을 활용하면 JSON과 파일을 동시에 전송할 수 있습니다.이 글에서는@RequestBody와 @RequestPart의 차이점@RequestPart를 활용하여 게시글 정보(JSON) + 첨부파일을 한 번의 요청으로 처리하는 방법프론..
[트러블 슈팅] RESTful API 설계: GET 메서드에서 Request Body를 사용해도 될까?
·
트러블 슈팅
1. 시작하며회사에서 진행 중인 프로젝트에서 프론트엔드와 백엔드 간 통신에서 예상치 못한 문제가 발생했습니다. API 설계 시 Spring Boot에서 GET 메서드에 @RequestBody를 사용해 데이터 요청을 처리하도록 구성했는데, Postman을 이용한 테스트에서는 정상적으로 동작했지만, Axios를 사용하는 프론트엔드 클라이언트에서는 요청이 실패했습니다.당시 Parameter 값이 많아 DTO를 record로 정의한 뒤 @RequestBody로 데이터를 전달받도록 설계했지만, 클라이언트와의 통신에서는 400 Bad Request 에러가 발생하며 정상적으로 동작하지 않았습니다. 이 글에서는 해당 문제를 해결하며 알게 된 GET 메서드와 Request Body의 관계, 그리고 RESTful API ..
[Spring] @ResponseBody VS ResponseEntity<T>
·
BackEnd/Spring & JPA
1. @ResponseBody란?@ResponseBody는 Spring MVC에서 컨트롤러 메서드가 반환하는 값을 HTTP 응답 본문으로 직렬화하여 클라이언트에게 전달할 때 사용됩니다. 반환되는 데이터는 Jackson 라이브러리를 사용하여 JSON 형식으로 변환됩니다. 기본적으로 HTTP 상태 코드는 200 OK로 설정되며, 데이터만 반환하는 단순한 API 응답 처리에 주로 사용됩니다.1.1 @ResponseBody의 주요 특징JSON, XML과 같은 포맷으로 데이터를 반환HTTP 상태 코드는 기본적으로 200 OK주로 REST API 응답에서 사용뷰를 반환하지 않고 데이터를 직렬화하여 전달2. ResponseEntity란?ResponseEntity는 HTTP 응답의 상태 코드, 헤더, 본문을 모두 명시..
[Spring] @Controller VS @RestController
·
BackEnd/Spring & JPA
1. @Controller 란?@Controller는 Spring MVC 패턴에서 주로 사용되는 어노테이션으로, 웹 페이지(View)를 반환하기 위해 사용됩니다. 이 어노테이션을 통해 컨트롤러 클래스를 정의하면, 클라이언트 요청을 받아서 JSP나 Thymeleaf와 같은 뷰(View)를 생성하여 반환할 수 있습니다. Spring에서 @Controller는 주로 전통적인 웹 애플리케이션에서 페이지를 렌더링할 때 사용됩니다.1.1 @Controller 동작 흐름클라이언트 요청: 클라이언트는 브라우저 또는 HTTP 클라이언트를 통해 DispatcherServlet으로 URI에 해당하는 요청을 보냅니다. 예를 들어 /users/detailView와 같은 URI로 요청이 들어옵니다.Handler Mapping: ..