pile·
프론트엔드·쏘카쏘카·

누가 내 쿠키를 먹었을까?

iOS 앱에서 쏘카 WebView를 사용하는 고객들이 앱을 백그라운드로 전환한 후 재진입할 때 로그인이 풀리는 현상이 반복됐다. 원인은 iOS 15+의 메모리 정리 메커니즘이 Expires/Max-Age가 없는 세션 쿠키를 백그라운드 중 삭제한다는 것이었고, 영속 쿠키 전환으로 99.66% 문제를 해소했다.

핵심 포인트
  • 증상: 앱 백그라운드 전환 후 재진입 시 WebView 세션 소실, 인증 쿠키 사라짐
  • 원인: iOS 15+ 백그라운드 메모리 정리 시 Expires/Max-Age 미지정 세션 쿠키 삭제
  • 세션 쿠키 vs 영속 쿠키: 세션 쿠키는 앱/브라우저 종료 또는 메모리 정리 시 삭제, 영속 쿠키는 만료 기간까지 유지
  • 해결: 인증 쿠키에 Expires 또는 Max-Age 설정 → 영속 쿠키로 전환
  • 결과: 해당 이슈 246건/일 → 0.85건/일 수준으로 99.66% 감소
상세 정리
  • WebView 특성: iOS 네이티브 앱 내 WKWebView는 앱 생명주기와 쿠키 관리가 브라우저와 다름
  • iOS 15+ 변화: 백그라운드 전환 시 WKWebView 메모리 정리 과정에서 세션 쿠키 삭제 발생
  • 세션 쿠키 정의: Set-Cookie 헤더에 Expires·Max-Age 미지정 시 세션 종료와 함께 만료
  • 문제 상황: 인증에 세션 쿠키 사용 → 앱 백그라운드 전환 후 인증 정보 소실 → 재진입 시 로그인 화면
  • 영향 범위: iOS 기기 WebView 이용 고객, 앱 백그라운드 전환 빈도가 높은 사용 패턴에서 두드러짐
  • 해결 방법: 서버 측 Set-Cookie에 Expires 또는 Max-Age 값 추가하여 영속 쿠키로 변환
  • 영속 쿠키 고려사항: 만료 기간 설정에 따른 보안 트레이드오프(세션 탈취 시 유효 기간 연장) 고려 필요
  • 정량 검증: 조치 전후 이슈 발생 건수 비교로 효과 정량화 — 246건 → 0.85건/일 평균
  • 플랫폼 특성 중요성: 동일한 웹 기술이 iOS WKWebView 환경에서 다르게 동작할 수 있음
왜 읽나iOS WebView 세션 쿠키 소실이라는 흔히 놓치기 쉬운 플랫폼 이슈를 원인·해결·정량 결과까지 명쾌하게 정리한 실전 사례다.
쏘카
쏘카 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2