인터넷에서 아이쇼핑을 하다 문득 그런 생각이 들었다.
왜 로그인을 안했는데 나갔다 다시 들어와도 장바구니에 상품이 안사라지지???
이제 나도 드디어 개발자의 시각으로 생각하는건가???
자 그럼 로그인을 안해도 장바구니에 상품이 사라지지 않는 이유를 알아보자!
대부분의 쇼핑몰 웹사이트는 사용자가 장바구니에 담은 상품 정보를 쿠키에 저장한다.
쿠키는 사용자의 브라우저에 저장되는 작은 데이터 파일로, 일정 기간 동안 유지된다.
이 파일에는 사용자가 장바구니에 담은 상품 정보가 포함되어 있어, 다시 사이트에 접속했을 때 쿠키를 통해 장바구니 정보를 불러온다.
HTML5에서 제공하는 로컬 스토리지 기능을 사용해 장바구니 데이터를 브라우저에 저장할 수 있다.
로컬 스토리지의 특징은 쿠키보다 더 많은 데이터를 저장할 수 있으며, 유효 기간이 따로 없어 사용자가 직접 삭제하지 않는 한 계속 유지된다.
세션 스토리지는 브라우저의 세션이 지속되는 동안 데이터를 저장하는 방법이다.
브라우저 창을 닫기 전까지는 세션 스토리지를 통해 장바구니 데이터를 유지할 수 있다.
사용자가 로그인하지 않은 상태에서도 장바구니 정보를 서버에 저장할 수 있다.
사용자가 다시 사이트에 접속할 때 특정 식별자(ex. IP 주소 또는 브라우저 정보)를 통해 서버에서 해당 사용자의 장바구니 정보를 불러오는 방식이다.
이 방법은 사용자의 장바구니 정보를 더 오랜 기간 동안 유지할 수 있다.
임의로 북마크에 있는 한 웹사이트에 접속해보았다.

장바구니에 상품 한 개를 선택 후 담아보았다.

크롬 개발자 도구를 이용해 위에서 소개한 방법 중 어떤 방법을 사용했을지 알아보자.
로컬 스토리지를 확인해보자.

GUEST_CART란 Key 값이 존재하는 것을 확인하였다.
Value에 들어있는 값을 자세히 보자.

productNo가 120709463인 것을 확인할 수 있다.

제품 번호가 같은 것을 확인!
이 사이트는 로컬 스토리지를 이용해 로그인을 하지 않아도 사용자가 장바구니에 담아 놓은 상품을 유지시키고 있었다.
쇼핑몰에서 사용자가 로그인을 하지 않아도 장바구니에 담은 상품이 사라지지 않는 이유는 쿠키, 로컬 스토리지, 세션 스토리지, 서버 저장과 같은 다양한 기술을 사용하기 때문이다.
각각의 방법은 장단점이 있으며, 우리는 사용자 경험을 최적화하기 위해 이러한 기술을 적절히 조합하여 사용해야 한다.