로그인 설명(JWT)
파이널 프로젝트|조회 7|2026.10.12 16:15
0:00 / 42:17
로그인 설명(JWT)
42:17학습 목표
이 강의를 통해 JWT(JSON Web Token) 기반의 로그인 시스템을 이해하고, 기존 세션 기반 로그인 방식의 한계를 파악하며, JWT의 구조와 작동 방식을 학습합니다. 또한, 액세스 토큰과 리프레시 토큰의 역할 및 사용법을 익혀 안전하고 효율적인 인증 시스템을 설계하는 방법을 배웁니다.
핵심 개념
- 세션 기반 로그인 (Stateful):
- 서버가 사용자의 로그인 상태를 세션에 저장하고 관리하는 방식입니다.
- 클라이언트는 세션 ID를 쿠키에 저장하여 요청 시마다 전송합니다.
- 단점: 여러 서버로 확장 시 세션 공유 문제, 모바일/다른 서비스 연동의 복잡성, 서버 메모리 사용량 증가.
- JWT (JSON Web Token):
- 상태 비저장(Stateless) 방식의 인증 메커니즘으로, 서버는 클라이언트의 상태를 저장하지 않습니다.
- 토큰 자체에 사용자 정보와 권한 정보가 포함됩니다.
- 구조: 헤더(Header), 페이로드(Payload), 서명(Signature)으로 구성됩니다.
- 헤더: 토큰 타입(JWT) 및 해시 알고리즘 정보.
- 페이로드: 사용자 식별 정보(예: 회원 번호), 발급 시간, 만료 시간 등.
- 서명: 헤더와 페이로드를 비밀 키로 암호화하여 토큰의 위변조를 방지.
- Base64 인코딩: 토큰의 헤더와 페이로드는 Base64로 인코딩되어 전달되지만, 암호화는 아닙니다. 비밀번호와 같은 민감 정보는 포함하면 안 됩니다.
- 액세스 토큰 (Access Token):
- API 요청 시 인증을 위해 사용되는 짧은 만료 시간(예: 30분)을 가진 토큰입니다.
- 주로 브라우저의 메모리(예: Vuex/React Context)에 저장되어 새로고침 시 유실될 수 있습니다.
- 리프레시 토큰 (Refresh Token):
- 만료된 액세스 토큰을 갱신하기 위해 사용되는 긴 만료 시간(예: 14일, 30일)을 가진 토큰입니다.
- 보안 강화를 위해
HttpOnly속성을 가진 쿠키에 저장하고, 서버 DB에도 저장하여 관리합니다. - 사용자 편의성을 높이기 위한 목적이 큽니다.
공부 방향성
- 시청 전: 웹 애플리케이션의 기본적인 로그인 방식(세션 기반)에 대한 이해가 있다면 더욱 좋습니다.
- 시청 중: JWT의 구조와 각 부분의 역할, 액세스 토큰과 리프레시 토큰의 차이점 및 필요성을 집중적으로 학습하세요. 특히, 토큰이 탈취되었을 때의 보안 문제와 이를 완화하기 위한 방법들을 주의 깊게 살펴보세요.
- 시청 후: 실제 프로젝트에 JWT를 적용하는 방법을 고민해보고,
HttpOnly쿠키와 같은 보안 관련 설정을 직접 구성해보는 실습을 진행해보세요. RESTful API 설계 관점에서 Stateless 아키텍처의 중요성을 이해하는 것도 도움이 됩니다.