로그인 기능 만들고 나서 이런 경험 다들 한 번씩 있을 거예요. 로그인은 분명 됐는데 페이지를 새로고침하면 다시 로그아웃 상태. 혹은 반대로 브라우저를 닫았다 켰는데도 계속 로그인이 유지돼서 신기했던 적도 있고요.
이걸 이해하려면 세션과 쿠키를 구분해야 합니다.
한 줄 정의
쿠키는 브라우저에 저장되는 작은 데이터 조각이고, 세션은 서버가 "이 사람은 로그인한 사용자다"라고 기억해두는 정보예요. 보통 쿠키는 그 세션을 찾아가기 위한 열쇠(ID) 역할을 합니다.
왜 필요한가
웹은 원래 매 요청마다 "누구세요?"를 새로 묻는 구조예요. 로그인 버튼을 눌렀다고 해서 서버가 알아서 "아, 이 사람이구나" 하고 계속 기억해주지 않습니다. 그래서 첫 로그인 때 서버가 세션을 하나 만들고, 그 세션을 찾을 수 있는 ID를 쿠키에 담아 브라우저로 보내요. 이후 요청마다 브라우저가 그 쿠키를 자동으로 같이 보내니까, 서버는 쿠키 속 ID로 세션을 찾아 "아, 로그인된 사용자구나"를 알게 되는 거죠.
실전에서 이렇게
바이브코딩 중 로그인 기능을 붙이면서 "로그인 유지"나 "자동 로그인" 체크박스를 만들어본 적 있다면, 그게 바로 쿠키의 유효기간을 길게 설정하느냐 짧게 설정하느냐의 문제예요.
또 배포 환경에서 로그인이 이상하게 자꾸 풀린다면, 쿠키가 제대로 저장되지 않거나 도메인/보안 설정(https 여부 등) 때문에 브라우저가 쿠키를 거부하고 있는 경우가 많습니다. AI에게 물어볼 때 "쿠키가 저장 안 되는 것 같다"고 설명하면 원인 찾기가 훨씬 빨라져요.
비유
쿠키는 놀이공원 손목띠, 세션은 입장 명단이라고 생각하면 쉬워요. 손목띠(쿠키) 자체엔 큰 정보가 없지만, 직원이 손목띠 번호를 보고 명단(세션)을 확인해서 "아 이 사람 입장권 산 사람 맞네"라고 확인해주는 거죠. 손목띠를 잃어버리면(쿠키 삭제) 다시 확인받아야 하는 것처럼, 쿠키가 사라지면 로그인도 풀리는 거예요.
댓글 0
첫 댓글을 남겨보세요!