Safari에서는 쿠키가 저장되지 않는 이유 (Chrome은 되는데요?)

2025. 11. 8. 11:22·프론트엔드

최근 피드백 서비스 피드줍줍을 개발하면서 꽤 흥미로운 문제를 발견했습니다. 같은 코드인데 Chrome에서는 쿠키가 잘 저장되는데, Safari에서는 쿠키가 전혀 저장되지 않는겁니다. 게다가 localhost에서는 잘 동작해서 원인을 추적하는 데 더 혼란스러웠습니다.

결론적으로, 문제의 핵심은 Safari의 쿠키 정책(ITP) 과 쿠키의 Domain 설정이었습니다.

시작하게 된 계기

피드줍줍의 주요 기능인 ‘좋아요’와 ‘나의 피드백 조회’는 사용자 식별을 위해 쿠키(visitorId)를 사용합니다. 그런데 테스트 중 Safari에서만 visitorId가 저장되지 않아 기능이 정상 작동하지 않았습니다.

Chrome ✅ 저장됨
Safari ❌ 저장 안 됨
localhost Safari ✅ 저장됨

개발 환경에서는 proxy 설정 덕분에 문제가 없었지만, 프로덕션 환경에서는 프록시를 둘 수 없어 이 이슈가 실제로 드러났습니다.

 

 영향 범위

좋아요 기능: 쿠키 기반으로 작동하므로 Safari에서는 사용자별 좋아요 정보 저장 불가 (현재는 임시 로직으로 작동하지만, 추후 병합되면 중단 예정)

나의 피드백 조회 : 쿠키 기반 조회 로직 변경 후 Safari 사용자에게는 조회 불가능 상태 발생

원인 분석

현재 도메인 구조는 다음과 같습니다. (보안을 위해 도메인 명은 수정했습니다.)

 
프론트엔드:frontend.example.com API 서버: api.example.com

Safari는 서브도메인이 다르더라도 서로 다른 사이트(cross-site) 로 간주합니다.
즉, SameSite=None 설정을 해도 api.example.com과 frontend.example.com간의 쿠키는 차단됩니다.

 

“Safari는 사용자 프라이버시를 위해 크로스 사이트 쿠키를 엄격히 차단합니다.
서브도메인도 별도 사이트로 인식합니다.”

WebKit: Intelligent Tracking Prevention
 

Tracking Prevention in WebKit

WebKit has implemented tracking prevention technologies, spanning from 2003 with Safari 1.0 until today.

webkit.org

 

Chrome에서는 되는 이유

Chrome은 SameSite=None; Secure로 명시된 쿠키를 개발자의 의도대로 허용합니다.
반면 Safari는 ITP 정책(Intelligent Tracking Prevention) 으로 동일한 설정을 적용해도 차단합니다.

“Chrome allows developer-specified SameSite=None; Secure cookies.”
Google Developers - SameSite=None; Secure Cookie Settings
 

새로운 SameSite=None; Secure 쿠키 설정에 대비  |  Google Search Central Blog  |  Google for Developers

보관 파일 2010 2008

developers.google.com

 

 

문제의 핵심: Domain 속성

현재 서버에서 내려오는 쿠키는 다음과 같았습니다. Set-Cookie: visitorId=abc123; Path=/; Secure; SameSite=None

 

 

여기에는 Domain 속성이 없습니다. 이 경우 쿠키는 Host-only cookie로 저장됩니다.
즉 frontend.example.com에서는 쿠키가 공유되지 않습니다. 그래서 Safari에서는 쿠키를 전혀 받을 수 없었던 거죠.

 

해결 방법

Set-Cookie 시 Domain을 공통 루트 도메인으로 지정하면 해결됩니다.

  • ❌ 기존: domain= 지정되지않음
  • ✅ 변경: domain=.example.com

이렇게 하면 api-dev, dev, www 등 모든 서브도메인에서 쿠키를 공유할 수 있습니다.

 

Safari 콘솔로 직접 검증하기

Safari 개발자 콘솔에서 테스트해본 결과입니다 👇

 
// 성공 케이스 document.cookie = "test=1; domain=.example.com; secure; samesite=none";
✅ 쿠키가 정상적으로 저장됨

 
// 실패 케이스 document.cookie = "test1=2; domain=api.example.com; secure; samesite=none";
❌ 쿠키가 저장되지 않음

 


 

적용 후 결과

Safari에서도 visitorId 쿠키가 정상적으로 저장되며, ‘좋아요’, ‘나의 피드백 조회’ 기능 모두 정상 작동하게 되었습니다.

Chrome ✅ 정상
Safari ✅ 정상
localhost Safari ✅ 정상

비슷한 사례

저와 같은 문제를 겪은 사례가 이미 있더라구요. 아래 글에서도 동일하게 Domain 속성 변경으로 해결했습니다.

Spring third-party 쿠키 문제 해결하기 - Velog @hanbirang

 

마무리

이번 이슈를 통해 단순히 “쿠키가 안 된다”를 넘어서 브라우저별 쿠키 정책 차이와 쿠키 메커니즘을 깊게 이해할 수 있었습니다.

 

결국 해결책은 단순했습니다. domain 속성을 .example.com으로 지정하는 것만으로  Safari에서도 완벽히 동작하게 되었어요ㅎㅎ 이 경험을 통해 “같은 코드라도 브라우저가 다르면 전혀 다르게 작동할 수 있다”는 걸 다시 한 번 느낀것 같습니다. 위의 내용은 문서로 백엔드분들에게 공유했고, 재빠르게 수정해주셨습니다!

📚 참고자료

  • WebKit - Intelligent Tracking Prevention
  • Google Developers - SameSite=None; Secure Cookie Settings
  • MDN - Set-Cookie Domain Attribute
  • Velog - Spring third-party 쿠키 문제 해결하기

'프론트엔드' 카테고리의 다른 글

Lighthouse CI로 성능 측정 자동화: PR 코멘트와 구글 시트까지  (0) 2025.09.22
Sentry로 에러 모니터링 시스템 구축하기 in 피드줍줍  (0) 2025.09.21
AWS CodePipeline으로 자동 배포 시스템 구축하기  (0) 2025.09.21
피드줍줍 성능 최적화: Lighthouse에 반영되지 않은 개선들  (0) 2025.09.21
React + PWA에서 FCM 알림 API 연동기  (0) 2025.09.21
'프론트엔드' 카테고리의 다른 글
  • Lighthouse CI로 성능 측정 자동화: PR 코멘트와 구글 시트까지
  • Sentry로 에러 모니터링 시스템 구축하기 in 피드줍줍
  • AWS CodePipeline으로 자동 배포 시스템 구축하기
  • 피드줍줍 성능 최적화: Lighthouse에 반영되지 않은 개선들
분주
분주
bunju20 님의 블로그 입니다.
  • 분주
    개발자의 분주한 하루
    분주
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • 회고 (16)
        • 프로젝트 회고 (5)
        • 우아한테크코스 (11)
      • 알고리즘 (7)
        • 프로그래머스 (6)
      • 프론트엔드 (8)
        • Flutter (1)
      • 일상 (0)
        • 독서 (0)
      • 공부 (1)
        • 우아한테크코스 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    유연성강화스터디
    JavaScript
    우아한테크코스
    js
    우테코프론트엔드
    React
    코딩테스트 고득점 Kit
    웹프론트엔드
    우아한테크코스프론트엔드
    우테코프론트
    우테코
    회고
    프로그래머스
    프리코스
    우테코7기
    우테코 프론트엔드
    프론트엔드
    우테코 프리코스
    level2
    level1
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
분주
Safari에서는 쿠키가 저장되지 않는 이유 (Chrome은 되는데요?)
상단으로

티스토리툴바