🌟 세션 클러스터링 (Session Clustering)
로그인한 사용자 정보(세션)를 여러 서버가 같이 기억하는 방법
왜 여러 서버가 같이 기억해야 되냐면
→ 서버가 여러 대니까.
→ 어떤 서버에 연결돼도 "나 로그인했어" 상태가 유지돼야 하니까
🛠️ 방법은 두 가지
1. 톰캣 설정으로 세션 클러스터링
2. 토큰 기반 세션 유지 (JWT 같은 거)
1. 톰캣 설정으로 세션 클러스터링
서버끼리 세션 내용을 실시간으로 동기화하는 방식
톰캣 같은 웹 서버(WAS)들이 서로 세션 정보를 주고받는다.
그래서 서버 A에서 로그인했어도, 서버 B로 요청이 가도 로그인 상태를 알게된다.
이걸 하려면 톰캣에 Cluster 설정을 해야 한다.
(ex: server.xml 파일에 <Cluster> 태그 추가)
장점
기존 세션 로직 거의 안 건드려도 됨.
단점
서버 간 트래픽(복사/동기화)이 부담됨. 서버 수가 많아질수록 힘들어짐.
2. 토큰 기반 세션 유지 (JWT 같은 거)
서버는 사용자 정보를 저장하지 않고, 클라이언트가 직접 들고 다니게 하는 방식
사용자가 로그인하면, 서버가 "이 사람 인증했어요!" 라는 토큰(JWT) 을 만들어준다.
클라이언트(브라우저, 앱)가 이 토큰을 계속 들고 다님.
서버는 매번 토큰을 검증만 하면 됨. (토큰 안에 사용자 정보가 있음)
장점
서버가 세션 관리 안 해도 됨. 서버 여러 대여도 부담 없음.
수평 확장(Scale-out)이 쉬움.
단점
토큰 탈취되면 위험할 수 있음 (보안 주의!)
토큰에 변경사항이 생기면(예: 강제 로그아웃) 토큰을 폐기하는 게 쉽지 않음.
💬 그래서 보통
트래픽이 별로 없으면 → 톰캣 세션 클러스터
트래픽이 많거나 글로벌 서비스면 → JWT 같은 토큰 방식
(기업 규모나 시스템 아키텍처 따라 결정)
'컴퓨터 > 네트워크' 카테고리의 다른 글
[네트워크] 이중화(HA) 및 세션 관리 | 끊기지 않고 돌아가는 프로그램을 위한 기술 (0) | 2025.05.02 |
---|---|
[네트워크] 시스템 부하와 세션, 쿼리와의 관계 | 시스템 속도가 느린 이유는 무엇일까 (0) | 2025.04.30 |
[리눅스] centos 7,8,9 mariadb 설치하기 | 연결테스트 (0) | 2024.10.08 |
[리눅스] 가상 OS-웹 개발💻5a-1 | VirtualBox 6 + CentOS 8 | linux _webtob 설치 후 서버 기동(1) (0) | 2024.05.30 |
[리눅스] linux _jdk 설치, JAVA_HOME 환경변수 잡기 (1) | 2024.05.29 |
댓글