웹 개발을 하다 보면 자주 등장하는 두 가지 개념이 있습니다. 바로 액세스 토큰과 리프레시 토큰, 그리고 로컬 스토리지와 세션 스토리지입니다. 이번 포스팅에서는 이 두 가지를 쉽게 이해할 수 있도록 정리해 보겠습니다.
1. 액세스 토큰 vs. 리프레시 토큰
액세스 토큰 (Access Token)
- 사용자가 로그인에 성공한 후 발급되는 토큰입니다.
- 유효 시간이 짧기 때문에 보안에 유리합니다.
- 서버에 API 요청을 보낼 때 인증에 사용됩니다.
- 예를 들어, 로그인 후유저 정보에 접근할 때 이 토큰이 필요합니다.
리프레시 토큰 (Refresh Token)
- 액세스 토큰이 만료되었을 때 새로운 액세스 토큰을 발급받는 데 사용됩니다.
- 유효 기간이 상대적으로 더 길며 서버에 자주 재인증할 필요를 줄여줍니다.
- 리프레시 토큰 덕분에 사용자는 로그인 세션을 유지 하면서도 보안이 강화된 환경을 경험할 수 있습니다.
2. 로컬 스토리지 vs. 세션 스토리지
로컬 스토리지 (Local Storage)
- 데이터를 영구적으로 저장할 수 있습니다.
- 브라우저를 닫거나 컴퓨터를 재시작해도 데이터가 유지됩니다.
- 사용자가 지우기 전까지 정보가 남아 있으므로, 장기적인 데이터 보관에 적합합니다.
- 예: 사용자의 테마(다크 모드/라이트 모드) 설정 저장.
세션 스토리지 (Session Storage)
- 브라우저 탭이 열려 있는 동안에만 데이터를 유지합니다.
- 탭을 닫으면 데이터가 자동으로 삭제됩니다.
- 각 탭이 독립적인 스토리지를 가지기 때문에 임시 데이터를 저장할 때 유용합니다.
- 예: 사용자 입력 폼 데이터를 유지해 탭 이동 시에도 내용이 유지되도록 할 때 사용.
---
3. 언제 어떤 것을 사용해야 할까?
- 액세스 토큰과 리프레시 토큰은 사용자의 인증 상태를 유지하면서도 보안을 강화하는 데 필수적입니다. 액세스 토큰은 짧은 시간 동안 사용되는 반면, 리프레시 토큰은 장기적인 세션 유지를 도와줍니다.
- 로컬 스토리지와 세션 스토리지는 각각 데이터가 유지되는 기간과 목적에 따라 선택합니다. 설정 값이나 사용자의 선호 데이터를 저장할 때는 로컬 스토리지를, 임시 데이터나 특정 세션에만 필요한 데이터는 세션 스토리지를 사용하는 것이 좋습니다.
결론
웹 개발에서 토큰과 스토리지는 사용자 경험과 보안 측면에서 매우 중요한 역할을 합니다. 각각의 목적과 특성을 이해하고 적절하게 활용한다면 더 나은 개발 환경과 사용자 경험을 제공할 수 있습니다. 앞으로 프로젝트를 진행하면서 이러한 개념들을 적극적으로 활용해 보세요!