CORS

moon.kick·2025년 5월 2일

물론입니다! 웹 개발을 하다 보면 자주 마주치는 CORS 오류는 다음과 같은 의미입니다:


✅ CORS란?

**CORS(Cross-Origin Resource Sharing)**는 다른 출처(Origin) 간에 리소스를 요청할 때 발생하는 보안 정책입니다.

  • 브라우저는 기본적으로 보안상의 이유로 "다른 출처"의 리소스를 불러오는 것을 제한합니다.
  • 예를 들어, 여러분의 React 앱이 http://localhost:3000에서 실행 중인데, 백엔드는 http://localhost:8080에 있다면 서로 다른 Origin으로 간주됩니다.

✅ CORS 오류 예시

브라우저 콘솔에 이런 식으로 뜹니다:

Access to fetch at 'http://localhost:8080/api/data' from origin 'http://localhost:3000' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.

이 오류는:

  • 프론트엔드가 백엔드에 요청을 보냈지만,
  • 백엔드가 이 요청을 허용해주지 않아서 생긴 것입니다.

✅ CORS 해결 방법 (백엔드 설정)

🔸 Spring Boot 예시

@CrossOrigin(origins = "http://localhost:3000") // 프론트 주소
@RestController
public class MyApiController {
    // ...
}

혹은 전역 설정:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:3000") // 허용할 프론트 주소
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                .allowCredentials(true);
    }
}

✅ 정리 요약

용어의미
CORSCross-Origin Resource Sharing
오류 발생 원인브라우저가 다른 출처의 요청을 차단
해결 방법백엔드 서버가 Access-Control-Allow-Origin 헤더를 설정

원하시면, Node.js, Nginx, Express, Flask 등의 환경에서도 CORS 해결 방법을 알려드릴 수 있어요.

어떤 환경에서 오류가 발생했는지 알려주실 수 있나요?

profile
@mgkick

0개의 댓글