Tech & IT/개발환경세팅하기

CORS가 필요한 경우 vs 불필요한 경우

해피콧 2025. 9. 10. 17:53
'); }
'); }

현재서비스 구조 확인:

  Browser → nginx (port 80) → FastAPI (port 8000) → Templates (Jinja2)

  📋 현재 서비스 특성:

  1. SSR (Server-Side Rendering): FastAPI + Jinja2 템플릿
  2. Same-Origin: 브라우저 요청과 응답이 모두 같은 도메인 (http://xx.xx.xx.xx)
  3. HTMX 사용: 일부 동적 업데이트만 AJAX

  🎯 CORS가 필요한 경우 vs 불필요한 경우:

  CORS가 필요한 경우:
  - SPA (React, Vue, Angular)에서 다른 도메인 API 호출
  - http://frontend.com → http://api.com 호출

  CORS가 불필요한 경우:
  - SSR 웹앱 (Django, Flask, FastAPI + Templates)
  - Same-Origin 요청: http://00.00.00.00 → http://00.00.00.00

  ✅ 결론: CORS 설정 불필요!

  이유:
  1. Same-Origin 정책: 모든 요청이 http://내주소 에서 시작되어 같은 도메인으로
   전송
  2. SSR 구조: HTML이 서버에서 렌더링되어 브라우저로 전송
  3. HTMX 요청도 Same-Origin: 페이지 내에서 같은 도메인으로 요청

  현재 CORS 설정은 무시됨:
  - nginx가 프록시 역할을 하므로 FastAPI는 nginx로부터만 요청을 받음
  - 브라우저는 nginx와만 통신하므로 CORS 검사 없음