브라우저에서 API를 호출하다 보면, 서버 로직과는 무관하게 요청이 차단되는 상황을 자주 마주한다.콘솔에는 다음과 같은 메시지가 출력된다.“Blocked by CORS policy”이 문제는 Spring 코드의 버그가 아니라, 브라우저 보안 정책과 HTTP 응답 설계의 문제다.이 글에서는 Same-Origin Policy가 무엇인지, CORS는 왜 필요한지, 그리고 Spring Web에서 이 문제를 어디서 해결해야 하는지 정리한다.1. Same-Origin Policy란 무엇인가?Same-Origin Policy는 브라우저가 기본적으로 적용하는 보안 정책이다.여기서 Origin은 다음 세 가지 요소의 조합이다.프로토콜 (http / https)호스트 (도메인)포트이 세 가지 중 하나라도 다르면, 브라우저..