Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 캐시
- 보안
- CS
- 웹성능최적화
- 백엔드개발자
- 인프라
- interceptor
- java
- devops
- 인증
- 백엔드개발
- 성능최적화
- DEVIEW2023
- Spring Boot
- 웹개발
- redis
- http
- SnowFalke
- 프론트엔드
- Spring
- 클린코드
- JPA
- AbstractAggregateRoot
- 세션
- 데이터베이스
- spring event
- 네트워크
- db
- 백엔드
- 백엔드기초
Archives
- Today
- Total
이것저것 개발기록
"빨간 줄의 공포" CORS 에러 완벽 해결 가이드 본문
"로컬에선 잘 되는데 서버에만 올리면 빨간 글씨가 떠요!"
웹 개발자라면 누구나 한 번은 마주치는 CORS(Cross-Origin Resource Sharing) 에러. 왜 발생하고 어떻게 해결하는지 핵심만 짚어드립니다.
1. CORS는 에러가 아니라 보안 정책입니다
CORS는 한 출처(Origin)에서 실행 중인 웹 애플리케이션이 다른 출처의 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 브라우저는 기본적으로 동일 출처 정책(SOP)을 따르기 때문에, 다른 도메인으로의 요청을 기본적으로 차단하여 사용자를 보호합니다.
2. 어떻게 해결하나요?
가장 정석적인 방법은 서버에서 허용해주는 것입니다.
- Access-Control-Allow-Origin 헤더 추가: 서버 응답 헤더에 허용할 도메인을 명시합니다. (예:
https://my-app.com) - 프록시(Proxy) 설정: 개발 환경에서는 프론트엔드 서버가 대신 요청을 보내주는 프록시를 설정해 SOP를 우회할 수 있습니다.
💡 실무 노트
귀찮다고 서버 설정에서 Access-Control-Allow-Origin: * (와일드카드)를 사용하는 건 매우 위험한 행동입니다. 보안 구멍을 활짝 열어주는 꼴이거든요.
팁: 실무 운영 서버에서는 허용할 도메인 리스트(White List)를 관리하고, 해당 도메인만 접근할 수 있도록 꼼꼼하게 세팅해야 합니다. 또한, PUT이나 DELETE 같은 요청은 브라우저가 먼저 Preflight(OPTIONS) 요청을 보내 자격이 있는지 확인한다는 점도 기억해 두세요. 서버에서 OPTIONS 메소드에 대한 응답이 막혀있어도 CORS 에러가 날 수 있습니다.
"CORS 에러는 브라우저가 우리를 지키기 위해 내뱉는 비명입니다. 차근차근 허용 리스트를 점검해 보세요."
'IT 이야기' 카테고리의 다른 글
| "서버의 병목을 해결하는 해결사" 메시지 큐(Message Queue) 이해하기 (0) | 2026.01.06 |
|---|---|
| "왜 다들 Redis를 쓸까?" 캐시 계층 도입으로 API 속도 높이기 (0) | 2026.01.05 |
| "폰트 하나 때문에 속도가?" 웹 폰트 최적화 전략 (FOIT vs FOUT) (0) | 2026.01.04 |
| "거대해진 DB를 감당하는 법" 데이터베이스 샤딩(Sharding) 입문 (0) | 2026.01.04 |
| "데이터 설계의 정석" DB 정규화(Normalization) 핵심 요약 (0) | 2026.01.03 |