**CORS(Cross-Origin Resource Sharing)**는 클라이언트가 다른 출처(origin)의 리소스를 요청할 때 발생하는 보안 정책입니다.
브라우저는 보안상의 이유로 기본적으로 이러한 요청을 차단하며, 이로 인해 CORS 문제가 발생합니다.
이번 글에서는 CORS가 무엇인지, 왜 발생하는지, 그리고 이를 해결하는 방법에 대해 알아보겠습니다.
웹 애플리케이션에서 **다른 출처(origin)**로 요청을 보낼 때 브라우저는 이를 보안 정책에 따라 제한합니다.
📌 출처(Origin)란?
웹 애플리케이션의 출처는 프로토콜 + 도메인 + 포트 조합을 의미합니다.
예를 들어, 아래 두 개의 URL을 비교해보겠습니다.
http://localhost:3000
http://api.example.com
📌 다른 출처로 간주하는 경우
클라이언트 | 서버 | CORS 발생 여부 |
---|---|---|
http://localhost:3000 |
http://localhost:4000 |
✅ 발생 (포트 다름) |
http://localhost:3000 |
https://localhost:3000 |
✅ 발생 (프로토콜 다름) |
http://myapp.com |
http://api.myapp.com |
✅ 발생 (서브도메인 다름) |
http://myapp.com |
http://myapp.com |
❌ 발생하지 않음 |
💡 즉, 같은 도메인이라도 프로토콜, 포트가 다르면 CORS 오류가 발생할 수 있습니다.