[스프링] 스프링 웹 서비스와 크로스 오리진 리소스 공유(CORS)

스프링은 모든 종류의 웹 애플리케이션을 만들고 실행하기 위한 지원을 제공합니다. 여러 클라이언트가 웹 서비스에 접근할 때 크로스 오리진 리소스 공유(CORS) 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해서는 스프링 웹 서비스에 CORS 설정을 추가해야 합니다.

CORS란 무엇인가요?

CORS란 Cross-Origin Resource Sharing의 약자로, 웹 애플리케이션의 한 출처(origin)에서 실행 중인 웹 페이지가 다른 출처의 서버 자원에 접근할 수 있도록 허용하는 매커니즘을 말합니다. 보안 상의 이유로 브라우저는 자체적으로 다른 출처의 자원에 접근하는 것을 차단하는데, CORS를 사용하여 이를 우회할 수 있습니다.

스프링에서 CORS 설정하기

스프링 프레임워크에서 CORS 설정은 간단하게 WebMvcConfigurer를 구현하고 addCorsMappings 메서드를 오버라이드하여 수행할 수 있습니다. 아래는 간단한 CORS 설정 예제입니다.

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
            .allowedOrigins("http://localhost:8080")
            .allowedMethods("GET", "POST");
  }
}

위 코드에서 addCorsMappings 메서드를 사용하여 모든 경로에 대해 오리진(origin)을 허용하고 특정 메서드(예: GET, POST)를 허용하도록 설정하고 있습니다. 이렇게 설정하면 클라이언트가 해당 오리진에서 GET 및 POST 요청을 보낼 때 CORS 문제가 발생하지 않습니다.

결론

스프링 웹 서비스에서 CORS 설정은 웹 클라이언트와의 통신을 원활하게 만들어주며, CORS를 이해하고 적절히 설정함으로써 브라우저와의 상호작용을 원할하게 만들 수 있습니다. CORS 설정은 웹 서비스 보안에 중요한 부분이므로 프로젝트를 진행하면서 꼭 숙지하고 활용해야 합니다.

더 자세한 내용은 공식 스프링 문서를 참고하세요.