Safari에서 쿠키 미저장 문제 해결: ITP 정책과 도메인 통합 전략
🤖 AI 추천
이 콘텐츠는 백엔드 개발자 및 프론트엔드 개발자를 대상으로 하며, 특히 웹 보안, 쿠키 처리, 브라우저 간 호환성 문제 해결 경험이 적은 주니어 개발자에게 유용합니다. 또한, 여러 서브도메인이나 외부 서비스와 연동되는 복잡한 프로젝트를 진행하는 미들 레벨 이상의 개발자에게도 인사이트를 제공할 수 있습니다.
🔖 주요 키워드

핵심 기술
이 글은 Safari 브라우저에서 HTTP-ONLY
속성이 적용된 Access Token 및 Refresh Token 쿠키가 저장되지 않아 로그인에 실패하는 문제를 다룹니다. 이는 주로 Apple의 Intelligent Tracking Prevention(ITP) 정책과 SameSite
쿠키 속성의 상호작용으로 인해 발생하며, 도메인 통합을 통해 해결하는 과정을 설명합니다.
기술적 세부사항
- 문제 상황: Safari에서
HTTP-ONLY
쿠키에Access Token
과Refresh Token
을 저장하려 할 때 쿠키가 저장되지 않아 로그인 실패 - 쿠키의 도메인 종속성: 쿠키는 생성된 도메인에 종속되며, 기본적으로 해당 도메인에서만 접근 가능
SameSite
옵션:Strict
: 같은 도메인에서만 사용 가능Lax
: 같은 도메인에서 사용 가능하며, 링크 클릭 등 특정 조건에서 다른 도메인에서도 사용 가능None
: 다른 도메인에서도 사용 가능 (HTTPS 필요)- 프로젝트에서는
SameSite=None
설정으로 프론트엔드와 백엔드 도메인 불일치 문제를 해결하려 함
- Apple의 ITP(Intelligent Tracking Prevention) 정책:
- 사용자 행동 추적 억제 및 보안 강화를 위한 Safari 기능
- 서드파티 쿠키 완전 차단, 미방문 도메인 쿠키/로컬 저장소 차단 등
- ITP 2.0은 first-party를 제외한 쿠키 차단
- 발생 원인: 프론트엔드(
chipsatbooks.vercel.app
)와 백엔드(chipsat.shop
) 도메인이 달라 Safari는 이를 서드파티 요청으로 간주하고 ITP 정책에 따라 쿠키 저장을 차단함 - 해결 방법: 커스텀 도메인을 구매하여 프론트엔드와 백엔드 도메인을 통합 (예:
www.wowGood.com
및api.wowGood.com
) - 결과: 도메인 통합 후 Safari 환경에서 쿠키가 정상적으로 저장되어 로그인 성공
개발 임팩트
- Safari를 포함한 다양한 브라우저 환경에서의 웹 애플리케이션 호환성 확보
- 쿠키 작동 방식,
SameSite
속성, 브라우저 보안 정책(ITP)에 대한 깊이 있는 이해 - 크로스 도메인 통신 및 인증 시 발생할 수 있는 문제점 예측 및 해결 능력 향상
- 웹 보안 전반에 대한 개발자의 이해도 증진
커뮤니티 반응
원문에는 구체적인 커뮤니티 반응이 언급되지 않았으나, 유사한 문제에 대한 논의는 Stack Overflow와 같은 개발자 커뮤니티에서 활발히 이루어지고 있습니다. 특히 SameSite=None
사용 시 Secure
속성이 필수이며, HTTPS 환경에서만 정상 작동한다는 점 등이 주요 논의 사항입니다.
톤앤매너
기술적 문제 해결 과정을 상세하고 논리적으로 설명하며, 개발자가 실제 경험할 수 있는 난관과 그 해결책을 명확하게 제시하는 전문적인 톤을 유지합니다.
📚 관련 자료
expressjs
글에서 사용된 백엔드 프레임워크로 추정되며, 쿠키 설정 및 미들웨어 처리에 대한 이해를 돕는 데 관련이 깊습니다.
관련도: 90%
cookie-parser
Express.js에서 쿠키를 파싱하고 관리하는 데 사용되는 라이브러리로, 쿠키 관련 문제 해결에 대한 직접적인 연관성이 있습니다.
관련도: 85%
next.js
글에서 프론트엔드 배포 환경으로 언급된 Vercel에서 주로 사용하는 프레임워크로, SSR/CSR 환경에서의 쿠키 처리 방식 이해에 도움이 될 수 있습니다.
관련도: 70%