iOS 웹뷰 쿠키, 누가 먹었을까? 99% 문제 해결!
by DD
1년 전
조회수 2
iOS 웹뷰에서 앱 백그라운드 진입 후 특정 시간 뒤 세션 쿠키가 소실되는 문제 발생
iOS의 메모리 관리 과정에서 웹뷰의 세션 쿠키가 삭제되는 것이 원인임
지속 쿠키 사용으로 변경하여 99.66%의 이슈 감소 효과 달성
세션 쿠키 소실 원인 분석
iOS는 메모리 부족 시 백그라운드 앱의 리소스를 정리한다. iOS 웹뷰는 이 과정에서 세션 쿠키를 삭제하여 문제가 발생한다. 세션 쿠키는 브라우저 종료 시 삭제되도록 설계되었기 때문이다. 따라서, iOS의 메모리 관리 정책이 세션 쿠키의 생존에 영향을 미친다.
지속 쿠키 vs 세션 쿠키
세션 쿠키는 Expires/Max-Age 속성이 없어 브라우저 종료 시 삭제된다. 반면, 지속 쿠키는 만료 기간을 설정하여 브라우저 종료 후에도 유지된다. 따라서, 지속 쿠키를 사용하면 iOS의 메모리 정리 과정에서도 쿠키가 유지되어 데이터 무결성을 보장할 수 있다.
실제 적용 가이드
세션 쿠키 대신 지속 쿠키를 사용하도록 코드를 변경한다. 구체적으로, 쿠키 생성 시 Expires/Max-Age 속성을 설정한다. 따라서, 쿠키 설정 변경만으로 문제를 해결할 수 있다. 결과적으로, 웹뷰의 안정성을 높이고 사용자 경험을 개선할 수 있다.