천천히 올바르게. AI Researcher & DevOps Engineer Youngju's blog. GPU/CUDA, LLM, MLOps, Kubernetes AI workloads, and data engineering — plus mindset essays on confidence, routines, health, and sport psychology.
CORS는 서버를 지키는 보안 장치가 아니라 브라우저가 스크립트에게 응답을 읽게 해 줄지 판단하는 정책입니다. 그래서 curl은 되고 브라우저만 막히며, 고칠 곳은 언제나 서버의 응답 헤더입니다. 프리플라이트가 발생하는 정확한 조건, credentials를 쓸 때 와일드카드를 못 쓰는 이유, Vary 헤더가 없어서 CDN 캐시가 오염되는 사고, 브라우저 에러 메시지별 원인 해독표를 정리했습니다. 프록시 우회가 정당한 경우와 아닌 경우, 개발할 때 브라우저 보안을 끄라는 조언이 왜 나쁜지, 그리고 CORS가 CSRF를 막아 주지 않는다는 가장 위험한 오해까지 다룹니다.
no-cache는 캐시하지 말라는 뜻이 아니라 캐시하되 쓰기 전에 검증하라는 뜻입니다. 이 한 글자 차이를 시작으로 Cache-Control 지시어의 정확한 의미, 조건부 요청과 304가 실제로 절약하는 것과 절약하지 못하는 것, 해시 파일명과 immutable이 프런트엔드 배포의 표준이 된 이유를 정리했습니다. 브라우저와 CDN과 리버스 프록시라는 세 계층이 서로 다른 방식으로만 무효화된다는 사실, Vary 헤더가 캐시 키를 폭발시키는 과정, stale-while-revalidate가 지연과 신선도를 동시에 잡는 원리도 다룹니다. 마지막으로 인증된 API 응답을 공유 캐시에 흘려 다른 사용자에게 노출하는 고전적 사고와 그 회피 설계를 짚습니다.