서버 저장 방식
세션 ID
Stateful:
보안성:
| 장점 | 단점 |
|---|---|
| 민감한 사용자 데이터를 서버에 안전하게 저장 가능 | 서버 자원을 많이 사용하여 대규모 분산 시스템에서는확장성이 떨어짐 |
| 사용자 상태 관리를 위한 구현이 비교적 직관적 | 세션 스토리지에 대한 관리 및 클러스터링 처리가 필요함 |
클라이언트 저장 방식:
데이터 크기 제한:
유형
보안 이슈:
| 장점 | 단점 |
|---|---|
| 사용자 기기에 저장되어 서버 자원을 덜 사용 | 보안에 민감한 데이터 저장에는 부적합 (노출 위험) |
| 간단한 사용자 설정이나 기본 상태 정보를 저장하는 데 적합 | 데이터 크기 제한으로 인해 대용량 정보 저장 불가 |
자체 인증 방식:
클라이언트 저장:
확장성:
보안 고려사항:
| 장점 | 단점 |
|---|---|
| 서버 상태 유지가 필요 없으므로 확장성이 뛰어남 | 토큰 탈취 시 즉각적인 보안 위협이 발생할 수 있음 |
| 클라이언트와 서버 간의 통신이 간편해짐 | 토큰 자체가 정보를 담고 있기 때문에, 민감한 정보는 암호화하여 사용해야 함 |
| 항목 | 세션(Session) | 쿠키(Cookie) | 토큰(Token) |
|---|---|---|---|
| 저장 위치 | 서버 | 클라이언트(브라우저) | 클라이언트 (로컬 스토리지, 메모리 등) |
| 상태 관리 | 서버가 상태 유지 (Stateful) | 클라이언트가 상태 유지 | 서버가 상태를 저장하지 않음 (Stateless) |
| 보안 | 상대적으로 안전하나 서버 부하 큼 | 노출 위험 존재 (특히 영속 쿠키) | 탈취 위험 있으나, 짧은 만료 시간 및 암호화로 대응 |
| 확장성 | 서버 자원 소모, 확장성 낮음 | 상대적으로 가볍지만, 보안에 주의 필요 | 서버 부하 적고 확장성 우수 |
| 사용 예시 | 로그인, 쇼핑몰 사용자 상태 관리 | 사용자 설정, "Remember Me" 기능 | RESTful API, 분산 시스템, SPA 인증 |
세션 기반 인증이 유리.쿠키가 적합.토큰 기반 인증(JWT 등)이 효과적.