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

토큰(Token)이란?

쉽게 이해하기

놀이공원에서 입장권을 끊으면 손목에 띠를 채워주죠. 그 띠만 보여주면 매번 표를 안 사도 되잖아요. 토큰도 마찬가지로 한 번 로그인하면 서버가 '임시 출입증'을 주는 거예요. 그 출입증만 보여주면 매번 비밀번호를 다시 안 물어봐요.

핵심 정리

로그인 후 '인증된 사용자'임을 증명하는 임시 열쇠예요.

자세히 알아보기

토큰(Token)은 로그인 성공 후 서버가 발급해주는 일종의 인증 티켓입니다. 사용자가 아이디와 비밀번호로 로그인하면, 서버는 '당신은 인증된 사용자입니다'라는 의미의 암호화된 문자열을 보내줘요. 이게 바로 토큰이죠. 가장 많이 쓰는 건 JWT(JSON Web Token)예요. JWT는 세 부분으로 나뉘어 있어요. 헤더(어떤 알고리즘으로 암호화했는지), 페이로드(사용자 ID 같은 정보), 서명(위조 방지용 암호화 값)으로 구성돼요. 예를 들어 'eyJhbGciOiJIUzI1NiIsInR5...' 같은 긴 문자열이 나오는데, 이게 토큰이에요. 토큰의 장점은 서버가 상태를 저장하지 않아도 된다는 거예요. 세션 방식은 서버 메모리에 로그인 정보를 저장해야 하지만, 토큰은 클라이언트가 가지고 있다가 매 요청마다 보내주면 돼요. 그래서 서버를 여러 대로 늘릴 때 훨씬 편해요. 실무에서는 로그인 후 받은 토큰을 브라우저의 로컬 스토리지나 쿠키에 저장해요. 그리고 API 요청을 보낼 때마다 헤더에 'Authorization: Bearer 토큰값' 형태로 넣어서 보내죠. 서버는 이 토큰을 검증해서 '이 사람이 인증된 사용자인지' 확인합니다. 토큰에는 유효기간이 있어서, 보통 1시간~7일 정도 지나면 만료돼요.