스프링 부트
-
[Spring Boot] @ModelAttribute 와 @RequestBody 의 차이프로그래밍 2023. 5. 21. 19:47
그동안 스프링 부트로 서버를 개발하면서 @ModelAttribute 와 @RequestBody의 정확한 차이를 모르고 그냥 MVC에서는 @ModelAttribute, REST API 개발에서는 @RequestBody 를 사용했다. 하지만 이번 팀 프로젝트에서 프론트와 백엔드를 붙이면서 여기서 문제가 발생했다. @ModelAttribute 는 URL에서 파라미터로 데이터를 전송할 때 해당 파라미터를 DTO 객체와 매핑시켜준다. 또한 이렇게 동작하기 위해서는 프론트에서 Content-Type 을 반드시 application/x-www-form-urlencoded 이나 multipart/form-data 로 설정해주어야 한다. @RequestBody 는 프론트에서 보낸 request 에서 body 를 파싱해서..
-
[Spring Boot] CORS 문제프로그래밍 2023. 5. 21. 19:41
팀 프로젝트 개발을 하던 도중에 CORS 문제가 발생하였다. 이번 팀 프로젝트에서 프론트 서버와 백엔드 서버를 나눠서 개발하기로 했는데, 두 개를 한 컴퓨터에서 포트를 바꿔 동시에 실행하고 데이터 송수신을 테스트하던 도중에 문제가 발생했다. 이유는 localhost더라도 포트가 다르기 때문에 origin이 달라 오류가 발생한 것이다. 이를 해결하기 위해서는 백엔드 서버에서 수신할 origin을 설정해주면 간단하게 해결된다. @RequiredArgsConstructor @RestController public class LoginApiController { private final LoginService loginService; @CrossOrigin(origins = "http://localhost:80..