옛 X-Frame-Options:DENY 응답이 브라우저 캐시에 박혀 서버 수정 후에도 계속
'연결 거부'가 나던 문제의 근본 대응:
- DocViewerPage iframe src에 ?v=2 — 캐시 키를 바꿔 새 응답을 받게(캐시 우회)
- Caddy 캐시 정책 정리: /assets/*(해시파일) 영구 immutable, 그 외 HTML·문서 no-cache
→ 앞으로 헤더/내용 변경이 캐시에 눌어붙지 않고 즉시 반영
검증: 문서=no-cache+SAMEORIGIN, index=no-cache, assets=immutable.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
X-Frame-Options를 SAMEORIGIN으로 고쳤는데도, 예전에 DENY로 받은 문서가
브라우저 캐시에 남아 일반 새로고침으로는 계속 '연결 거부'가 났다.
/docs/* 응답에 no-cache를 걸어 브라우저가 매번 서버에 재검증하게 함 —
이후로는 헤더가 바뀌면 즉시 반영된다. Caddy 재기동만으로 적용.
검증: 문서 응답에 Cache-Control:no-cache + X-Frame-Options:SAMEORIGIN 확인.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
보안 헤더 추가(0a4c769) 때 X-Frame-Options를 DENY로 걸었는데,
DENY는 '어떤 사이트에서도 iframe 금지'라 우리 자신의 iframe(DocViewerPage가
학습 문서를 표시하는 방식)까지 막아 '연결 거부'로 문서가 안 떴다.
SAMEORIGIN(같은 출처끼리는 허용)으로 변경 — 클릭재킹 방어는 그대로 유지.
원인·교훈을 Caddyfile 주석에 기록. Caddy 재기동만으로 반영(재빌드 불필요).
검증: 문서 헤더 SAMEORIGIN, SPA도 헤더 유지, intern-guide 문서 iframe 정상 로딩.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 로그인/회원가입/아이디찾기/비밀번호재설정 (세션 기반)
- 대시보드(주차별 진도 체크리스트), 학습 문서 뷰어(17종), 과제 제출/멘토 피드백
- 코딩 기초·개발 환경 설치 가이드 학습 페이지
- 전 소스 한국어 학습 주석 — 수습생 교육용 저장소
- Docker 배포 구성 (Caddy + Spring Boot + PG + Gitea)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>