🔐 Firebase Hosting + Spring Boot API 연동 시 CORS란?
Firebase Hosting으로 프론트엔드를 배포하면 URL이 보통 다음과 같이 생성됩니다:
https://your-project-id.web.app
그런데 Spring Boot API 서버는 http://your-server.com처럼 다른 도메인을 사용하죠.
브라우저는 보안상 출처(origin)가 다른 요청을 자동으로 막기 때문에, 서버에서 반드시 CORS 정책을 허용해줘야 합니다.
⚙️ Spring Boot에서 CORS 허용하는 방법
SecurityConfig.kt에서 아래와 같이 설정을 추가합니다:
@Bean
fun corsConfigurationSource(): CorsConfigurationSource {
val config = CorsConfiguration()
config.allowedOrigins = listOf(
"http://localhost:5173", // 개발 환경
"https://your-project-id.web.app" // Firebase Hosting
)
config.allowedMethods = listOf("GET", "POST", "PUT", "DELETE", "OPTIONS")
config.allowedHeaders = listOf("*")
config.allowCredentials = true
val source = UrlBasedCorsConfigurationSource()
source.registerCorsConfiguration("/**", config)
return source
}
💡 팁
- 로컬 개발용 주소(localhost)와 배포 주소(Firebase) 모두 추가해야 합니다.
allowedOrigins에는 http/https 포함한 정확한 주소를 써야 합니다.- 쿠키나 인증 정보를 주고받을 땐
allowCredentials = true필수!
✅ 정리
- 클라이언트와 서버의 도메인이 다르면 CORS 정책으로 차단될 수 있다.
- Spring Boot에서
allowedOrigins를 설정해 허용 출처를 등록하면 해결된다. - Firebase Hosting URL을 잊지 말고 꼭 등록할 것!
'개발' 카테고리의 다른 글
| React + Capacitor로 안드로이드 앱 실행하기 (Android Studio) (1) | 2025.07.30 |
|---|---|
| Vue.js에서 URL 쿼리로 테이블 정렬 상태 기억하기 - 새로고침에도 유지돼는 UX 만들기 (0) | 2025.07.21 |
| Vue Firebase 배포 방법 (Vite 기반 실전 예제) (0) | 2025.07.14 |
| Spring Boot 애플리케이션을 Cloud Run에 Docker로 배포하기 (GCP 배포 실습) (2) | 2025.07.11 |
| Firebase Hosting vs Nginx? (0) | 2025.07.11 |