개발 etc

로그인 세션 과정과 세션에 대한 문제점

묠니르묘묘 2022. 3. 18. 12:06

 

 

세션 - 로그인 과정

위 사진에 로그인 과정이 나와있다. 그렇다면 여기서 문제점은 무엇일까?

클라이언트가 엄청 많을 때 동시 접속자 수도 엄청나다. 이 때 문제점이 생긴다.

만약 1개의 서버가 100명을 감당할 수 있다고 생각하자. 동시접속자 수는 300명이므로 서버를 2개 더 늘린다.

이 때 요청할 때마다 원활한 서버로 요청을 보내게 되는데 이것을 로드 밸런싱이라고 한다.

1번 서버에서 로그인 과정을 거치고, 다시 2번 서버에 요청을 보내면 또 다시 로그인 과정을 거쳐야한다.

여기에 대한 해결 방안은 무엇이 있을까?

 

1. 최초 요청에는 무조건 하나의 서버에만 요청이 가는 방법

2. 모든 서버 세션에 복사해주는 방법

3. 모든 서버들이 하나의 DB에 세션을 저장하여 사용하는 방법

 

이 모든 방법들이 복잡하고 느리다. 3번은 HDD에서 I/O 입출력이 발생하기에 더더욱 느리다.

그래서 이 3번을 개선한 방법이 있다.

메모리 공유 서버

메모리 공유 서버를 사용하는 것이다!!!

따라서 HDD에 I/O를 일으키지도 않으며, RAM을 사용하기에 상대적으로 매우 빠르다.

(속도 : CPU > RAM > HDD)