📚 참고자료

  • 블로그 [망나니개발자] - [Spring] 설정 자동화와 설정의 변경, @EnableWebMvc와 WebMvcConfigurer => 링크
  • 블로그 [끝이 없는 배움의 끝] - Spring Boot로 CORS 해결하기 => 링크
  • 블로그 [개발하는 펭군이] - [Spring Boot] CORS 설정하기 => 링크

 

 

CORS가 무엇인가에 대한 것은 아래의 링크를 참고 부탁드립니다.

https://antstudy.tistory.com/259

 

CORS란?

참고자료 [MDN Web Docs] 교차 출처 리소스 공유(CORS) 블로그 [Evans Library] => CORS는 왜 이렇게 우리를 힘들게 하는 걸까? 우아한Tech 테코톡 => 나봄의 CORS # SOP SOP는 Same Origin Policy의 줄임말 다른..

antstudy.tistory.com

 


구글에 검색해보니, 다양한 방법으로 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 등의
    등록을 손쉽게 할 수 있도록 도와줍니다.

 

 

 

 

 

반응형

+ Recent posts