4주1일차_HTTP_Session과_Session_Clustering
4주1일차_HTTP_Session과_Session_Clustering
필기 가자
세션 ID와 쿠키를 이용한 상태 유지 방식을 학습하고, 로컬 세션, 중앙 집중형 세션, 분산 세션 관리 방식의 특징과 장단점을 비교합니다. 또한, Sticky Session, Session Replication, Centralized Session Store와 같은 세션 클러스터링 전략의 동작 원리를 배우고, 단일 서버와 분산 서버 환경에서 세션 데이터 관리의 차이점을 실습으로 익힙니다.
세션의 주요 특징:
- 상태 유지를 통해 사용자 경험 향상.
- 서버 측에서 관리되므로 클라이언트 측 데이터 조작 위험을 최소화.
- 그러나 세션 데이터가 증가할 경우, 서버 메모리 사용량이 증가하며 성능에 영향을 미칠 수 있음. 이를 해결하기 위해 세션 클러스터링, 중앙 저장소 등의 기술이 사용됩니다.
2.3 세션의 주요 특징
- 상태 유지:
- 서버는 세션을 통해 클라이언트와의 여러 요청 간 상태를 유지할 수 있습니다.
- 예: 로그인한 사용자의 상태 정보를 유지하여 인증 필요 없이 요청 처리.
- 보안성:
- 세션 ID는 서버에서 생성되므로 클라이언트가 직접 데이터를 조작할 수 없습니다.
- 세션 쿠키는
HttpOnly,Secure속성을 설정하여 보안을 강화할 수 있습니다.
- 효율성:
- 모든 상태 정보를 서버에 저장하므로 클라이언트가 불필요한 데이터를 전송하지 않아도 됩니다.
### 2.5 세션의 장점과 단점
장점:
- 상태 관리가 용이하며, 사용자의 일관된 경험 제공.
- 서버 측에서 데이터가 관리되므로 보안성이 높음.
- 복잡한 데이터도 효율적으로 처리 가능.
단점:
- 스케일링 이슈:
- 서버가 세션 데이터를 메모리에 저장하면, 사용자 수가 많아질 경우 메모리 부족 문제가 발생.
- 분산 환경 관리:
- 서버가 여러 대인 경우, 세션 데이터를 공유하는 데 추가적인 클러스터링 기술이 필요.
- 데이터 유실:
- 서버가 재시작되거나 장애가 발생하면 세션 데이터가 손실될 수 있음.
3.4 요약: 세션 관리 방식 비교
| 방식 | 특징 | 장점 | 단점 | 사용 사례 |
|---|---|---|---|---|
| 로컬 관리 | 서버 메모리에 세션 저장 | 구현 간단, 빠른 접근 가능 | 다중 서버 환경 부적합, 데이터 유실 위험 | 단일 서버 애플리케이션 |
| 중앙 집중 관리 | 별도의 저장소(예: redis)에 세션 저장 | 서버 간 공유 가능, 데이터 유지 | 중앙 저장소 의존, 성능 부담 | 대규모 시스템, 다중 서버 환경 |
| 분산 관리 | 세션 데이터를 여러 서버에 복제 및 저장 | 데이터 신뢰성 및 가용성 보장 | 복제 비용 증가, 데이터 일관성 문제 | 고가용성 및 확장성이 요구되는 대규모 시스템 |
4.3 세션 클러스터링 방식 비교
| 방식 | 특징 | 장점 | 단점 | 적용 사례 |
|---|---|---|---|---|
| Sticky Session | 동일 사용자의 요청을 항상 동일 서버로 전달 | 구현 간단, 빠른 성능 | 서버 과부하 발생 가능, 확장성 제한 | 소규모 시스템, 간단한 웹 애플리케이션 |
| Session Replication | 서버 간 세션 데이터 복제 | 고가용성 제공, 서버 장애에도 세션 유지 가능 | 성능 저하, 복잡성 증가 | 대규모 시스템, 고가용성 서비스 |
| Centralized Store | redis 등 중앙 저장소에 세션 저장 | 데이터 일관성, 확장성 우수 | 중앙 저장소 장애 시 모든 서버에 영향, 성능 부담 | 글로벌 웹 애플리케이션, API 게이트웨이 |
Action Plan
- 세션은 한번 즈음 실습이 필요해보이긴 함.
- spring이 sessionId를 쿠키에 담도록 response Header 설정까지 하고 전달하는 것인지 확인 필요.
수업 내용 필기 정리.
- session 의 단점들 : 다른 서버의 세션 공유는 다른 접근 필요.
This post is licensed under CC BY 4.0 by the author.