정리된 내용
발생 원인
해결 방법
@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*") // (일단 개발 환경에서는) 모든 Domain(Origin)에 대해 요청 허용
                .allowedMethods("GET", "POST", "PUT", "PATCH", "OPTIONS")  // 모든 HTTP Method 종류에 대해
                .allowedHeaders("headers")
                .maxAge(3000);
    }
}
Spring Security를 사용한다면, 따로 설정을 해주어야 함
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.
        ...
        .and().cors()
        ...
    }
    @Bean
    public CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOriginPatterns(Arrays.asList("*"));
        configuration.setAllowedMethods(Arrays.asList("HEAD","POST","GET","DELETE","PUT"));
        configuration.setAllowedHeaders(Arrays.asList("*"));
        configuration.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }