반응형
📚 참고자료
- 블로그 [망나니개발자] - [Spring] 설정 자동화와 설정의 변경, @EnableWebMvc와 WebMvcConfigurer => 링크
- 블로그 [끝이 없는 배움의 끝] - Spring Boot로 CORS 해결하기 => 링크
- 블로그 [개발하는 펭군이] - [Spring Boot] CORS 설정하기 => 링크
CORS가 무엇인가에 대한 것은 아래의 링크를 참고 부탁드립니다.
https://antstudy.tistory.com/259
구글에 검색해보니, 다양한 방법으로 CORS를 설정하는 방법이 있었습니다.
저는 WebMvcConfigurer를 Implements 해서 addCorsMappings 메소드(함수)를 오버라이딩하는 방식을 사용했습니다.
✅ config 폴더에 MvcConfig 자바 파일 만들기
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
// addMapping: CORS를 적용할 URL패턴을 정의할 수 있습니다.
registry.addMapping("/**")
// allowedOrigins: 자원 공유를 허락할 Origin을 지정할 수 있습니다.
// - 아래와 같이 한번에 여러 Origin을 설정할 수 있습니다.
.allowedOrigins("http://localhost:3000",
"http://localhost:8080",
"https://kauth.kakao.com/oauth/authorize/**",
"https://accounts.kakao.com/**")
// allowedMethods: 허용할 HTTP method를 지정할 수 있습니다.
// - 아래처럼 "*" 를 이용하여 모든 method를 허용할 수 있습니다.
.allowedMethods("*")
.allowedHeaders("*")
.exposedHeaders(HttpHeaders.AUTHORIZATION);
}
}
위 코드를 config 폴더 안에 있는 MvcConfig 파일과 코드를 추가해줍니다.
그러면 끝입니다.
* 꼭 config 폴더가 아니어도 괜찮습니다.
근데 여기서 드는 궁금한 점이 생겼습니다.
- WebMvcConfigurer 무엇인지?
- 왜 addCorsMappings 메소드를 override 해서 Origin을 설정하면 CORS 설정이 끝나는지?
그래서 WebMvcConfigurer에 대해 더 찾아봤습니다.
❓ WebMvcConfigurer 란?
- WebMvcConfigurer는 자동 구성된 스프링 MVC 구성에 Formatter, MessageConverter 등을 추가 등록할 수 있다.
- @EnableWebMvc가 자동적으로 세팅해주는 설정에 개발자가 원하는 설정을 추가할 수 있게 된다.
❓ 그러면 @EnableWebMvc 애노테이션이란?
- SpringMVC에서 필요한 빈들을 등록하기 위해 @EnableWebMvc 애노테이션을 사용합니다.
- @EnableWebMvc는 애노테이션 기반의 SpringMvc를 구성할 때 필요한 Bean 설정들을
자동으로 해주는 애노테이션입니다. - 기본적으로 등록해주는 Bean들 이외에 추가적으로 개발자가 필요로 하는 Bean 등의
등록을 손쉽게 할 수 있도록 도와줍니다.
반응형