반응형
1. Token:
- 특징:
- 상태 정보를 저장하지 않음: Token은 클라이언트 측에서 상태 정보를 저장하지 않습니다. 각 요청은 자체적으로 모든 필요한 정보를 가지고 있어야 합니다.
- 자체 포함성: Token은 클라이언트에 대한 모든 정보를 자체적으로 포함하며, 서버에서 상태 정보를 저장할 필요가 없습니다.
- JWT 등 활용: 주로 JWT(JSON Web Token)와 같은 토큰 기반 인증 시스템에서 사용됩니다.
- 장점:
- 확장성: 서버의 상태를 유지하지 않기 때문에 서버 확장이 용이합니다.
- 클라이언트와 서버의 독립성: 서버와 클라이언트 간의 독립성이 유지되어 서로에게 영향을 덜 주고 확장이 가능합니다.
- 단점:
- 상태 관리 어려움: 클라이언트에서 상태 정보를 모두 관리하므로, 클라이언트의 상태를 관리하는 부담이 있을 수 있습니다.
- 보안 이슈: 클라이언트에서 관리되므로 클라이언트의 보안이 강화되어야 합니다.
2. Session:
- 특징:
- 상태 정보를 저장함: Session은 서버 측에 상태 정보를 저장하고 클라이언트에는 세션 ID만을 전달합니다. 클라이언트는 세션 ID를 이용하여 서버의 상태 정보에 접근합니다.
- 서버 메모리 사용: 서버 측에서 상태 정보를 유지하므로 서버 메모리를 사용합니다.
- 쿠키 등을 통한 세션 ID 전달: 주로 쿠키를 사용하여 세션 ID를 클라이언트에 전달합니다.
- 장점:
- 상태 관리 용이: 클라이언트가 아닌 서버에서 상태 정보를 관리하므로 클라이언트에서 상태를 따로 관리하지 않아도 됩니다.
- 보안성: 상태 정보가 서버에 저장되므로 클라이언트에 노출되는 정보가 적습니다.
- 단점:
- 서버 확장 어려움: 서버 측에서 상태를 유지하므로 서버 확장이 어려울 수 있습니다.
- 클라이언트와 서버의 종속성: 서버와 클라이언트 간의 종속성이 있어 서로에게 영향을 주며, 확장이 어려울 수 있습니다.
비교 및 선택:
- Token 선택 시:
- 클라이언트와 서버 간의 독립성이 중요한 경우.
- 서버 확장이 필요한 경우.
- 상태 정보를 클라이언트에서 관리할 수 있는 경우.
- Session 선택 시:
- 서버 측에서 상태 정보를 안전하게 관리하고 싶은 경우.
- 서버와 클라이언트 간의 종속성이 허용되는 경우.
- 서버 확장이 상대적으로 적은 규모의 서비스인 경우.
반응형
'IT > 개발자 면접' 카테고리의 다른 글
Java Checked Exception과 Unchecked Exception (0) | 2023.12.12 |
---|---|
서비스 개발 요청을 받았을 때 업무 진행 (0) | 2023.12.12 |
Spring Filter와 Interceptor (0) | 2023.12.11 |
Spring Data JPA와 Spring Data JDBC 장단점 (0) | 2023.12.09 |
Spring Framework 을 사용하는 이유는 ? (0) | 2023.12.09 |