다른 출처에서의 리소스 요청을 막는 것이라고 간단하게 생각했는데
사실은 SOP(Same Origin Policy)를 따르기 위해 교차 출처의 리소스 접근을 허용해주는 것이 맞는 말인 것 같다.
구글에 검색해보면 아래와 같은 설명이 나온다.
보안상의 이유로 브라우저는 스크립트에서 시작된 교차 출처 HTTP 요청을 제한합니다. 예를 들어 XMLHttpRequestFetch API 는 동일 출처 정책을 따릅니다 . 즉, 다른 출처의 응답에 올바른 CORS 헤더가 포함되지 않는 한 해당 API를 사용하는 웹 애플리케이션은 애플리케이션이 로드된 동일한 출처의 리소스만 요청할 수 있습니다.
서버가 아닌 브라우저에서 일어나는 일이기 때문에 서버에서 정상적인 응답을 해주어도 브라우저가 그 응답을 CORS위반이라고 분석하면 CORS에러가 발생하게 된다.
CORS를 정확히 이해하지 못하면 어느 부분에서 에러가 났는지 찾는데 문제가 생길 수 있을 것이다.