1. CORS란?

cors.png

홈페이지를 서핑하고 있는데, <script>가 심어진 어떠한 페이지를 열었다고 생각해봅시다. 

굉장히 유용한 정보를 담고 있는 사이트이지만, 페이지를 열면서 <script>가 실행되어 

은행에 'Delete /account'를 요청하도록 되어 있습니다. 잘못된 호출로 은행 API를 호출하여 

나의 은행 계좌를 삭제해버리는 사고가 발생합니다.

따라서, 다른 출처의 접근을 막기 위해서 동일 출처 정책이 등장했습니다.
@Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
        .allowedOrigins("<http://localhost:8080>")
				.maxAge(3000);
  }
}
// 모든 uri에 대해 <http://localhost:8080> 도메인은 접근을 허용한다. 
// (배포시 맞는 도메인 주소로 교체)

WebMvcConfigurer를 상속 받아서 addCorsMappings를 Override하면 CORS 관련 설정이 가능합니다.

maxAge메소드를 이용해서 원하는 시간만큼 pre-flight 리퀘스트를 캐싱 해둘 수 있습니다.