Day 27 · 4/5
🌿 중급 백엔드

세션(Session)이란?

쉽게 이해하기

병원에 가면 접수대에서 번호표를 받죠. 접수대에서는 '2번 환자는 감기 진료'라고 메모해두고, 당신이 2번 번호표만 들고 있으면 돼요. 세션도 마찬가지로 서버가 '이 사용자는 로그인했다'고 메모해두고, 브라우저에는 번호표(세션 ID)만 주는 거예요.

핵심 정리

서버가 사용자의 로그인 상태를 기억하는 방식이에요.

자세히 알아보기

세션(Session)은 서버가 사용자의 로그인 상태를 서버 메모리나 데이터베이스에 저장하는 방식입니다. 로그인하면 서버가 세션 ID라는 고유한 번호를 만들어서 브라우저에 쿠키로 보내줘요. 브라우저는 이 세션 ID를 매 요청마다 서버에 보내고, 서버는 '아, 이 세션 ID는 홍길동 사용자구나'라고 확인하는 거죠. 세션의 장점은 서버가 사용자 정보를 완전히 통제할 수 있다는 거예요. 예를 들어 관리자가 특정 사용자를 강제 로그아웃시키고 싶으면, 서버에서 그 사용자의 세션만 삭제하면 돼요. 토큰 방식은 한 번 발급하면 만료 전까지 계속 유효하지만, 세션은 서버가 언제든 무효화할 수 있어요. 하지만 세션은 서버가 모든 로그인 정보를 기억해야 해서 메모리를 많이 쓰고, 서버를 여러 대 쓸 때 세션 공유가 복잡해져요. 그래서 요즘은 Redis 같은 별도 저장소에 세션을 저장하거나, 아예 토큰 방식을 쓰는 경우가 많아요. 실무에서는 보안이 중요한 서비스(은행, 관리자 페이지)에서 세션을 많이 씁니다. 세션에는 만료 시간을 설정할 수 있어서, 30분 동안 활동이 없으면 자동 로그아웃되게 할 수 있어요. 또 세션은 쿠키에 민감한 정보를 담지 않고, 단순한 ID만 담기 때문에 상대적으로 안전해요.