JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

서버가 2대 이상일 경우, Redis로 세션 스토리지를 구축해야 하는 이유

JSCODE 박재성
JSCODE 박재성
2026-01-12
author
JSCODE 박재성
category
Redis
createdAt
Jan 12, 2026
series
비전공자도 이해할 수 있는 Redis 중급/실전
slug
why-use-redis-session-store-in-multi-server-environment
type
post
updatedAt
Jan 12, 2026 12:17 AM

✅ 세션(Session)

서비스에서 로그인 기능을 구현할 때 크게 2가지 방식으로 구현한다. JWT 방식과 세션(Session) 방식이 있다. 그 중에서 세션 방식은 다음과 같은 흐름으로 동작한다.
  1. 사용자가 ID / 비밀번호로 로그인 요청
  1. 서버는 인증이 성공하면 세션 ID를 생성한 뒤, 해당 세션 ID에 사용자 정보를 매핑하여 세션 저장소에 저장
  1. 서버는 응답으로 세션 ID를 쿠키에 담아 클라이언트에게 전달
  1. 이후 클라이언트는 요청마다 쿠키에 포함된 세션 ID를 함께 전송
  1. 서버는 세션 ID를 기준으로 세션 저장소에서 사용자 정보를 조회해서 로그인을 처리
 
 

✅ 서버가 2대 이상일 경우, 로컬 세션 스토리지의 문제점

우리가 일반적으로 사용하는 프레임워크(ex. Spring Boot, Nest.js 등)를 살펴보면 각 프레임워크에 내장된 세션 저장소(= 로컬 세션 스토리지)가 존재한다. 그래서 Spring Boot로 예를 들자면, Spring Boot 서버의 일부 메모리 공간에 세션 정보가 저장된다.
이 로컬 스토리지 세션은 서버가 한 대일 경우에는 문제가 안 된다. 하지만 서버가 여러 대 이상일 때는 문제가 발생한다. 왜냐하면 각 서버가 가지고 있는 세션 정보를 서버들끼리 공유하지 않기 때문이다. 그렇게 되면 한 명의 사용자가 로드밸런서에 의해 여러 서버에 요청을 골고루 보내게 될텐데, 어떤 요청에서는 인증이 성공하지만 어떤 요청에서는 인증이 실패하는 상황이 발생한다.
출처 : https://hstory0208.tistory.com/
출처 : https://hstory0208.tistory.com/
 
따라서 이를 해결하기 위해 세션 정보를 공유하기 위한 기존 서버와 별개인 외부 세션 스토리지가 필요하다. 외부 세션 스토리지를 사용하게 되면 세션 정보를 외부 세션 스토리지 한 곳에 저장해두면 되기 때문에, 세션 정보를 서로 공유할 수 있게 된다.
notion image
여기서 외부 세션 스토리지로 많이 활용하는 툴 중 하나가 Redis이다.
 
👨🏻‍🏫
다음 강의에서는 로컬 세션 스토리지의 문제점을 직접 눈으로 확인해보고, 문제점을 개선하기 위해 Redis를 도입하는 것까지 실습으로 진행해보자.
author
category
Redis
createdAt
Jan 12, 2026
series
비전공자도 이해할 수 있는 Redis 중급/실전
slug
type
series-footer
updatedAt
Jan 12, 2026 12:26 AM
📎
이 글은 비전공자도 이해할 수 있는 Redis 중급/실전 강의의 수업 자료 중 일부입니다.