12. 컴퓨터 이해하기 ( state less , state ful )

jhnada·2022년 7월 26일
0

컴퓨터이해하기

목록 보기
9/10

웹 서버는 문서 공유에 목적이 있기 때문에 수동적인 형태이다.
능동적인 응답이 필요 없으므로 웹서버에서 클라이언트의 정보를 요청 응답 후에 삭제한다.

클라이언트가 웹 서버에 처음 요청했다가 응답을 받고 메모리에서 삭제된 후, 같은 클라이언트가 재요청을 해도 웹 서버는 처음 요청한 클라이언트로 인식하게 된다.

이러한 서버를 ' Stateless ' 서버라고 한다.

이러한 서버의 반대로 클라이언트의 상태를 모두 기억하고 있는 서버를 ' Stateful ' 서버라고 한다.

이러한 서버는 능동적인 응답이 가능하지만 메모리의 부하 때문에 느려지게 된다.

클라이언트의 상태가 없다고 하여 ' Stateless '라고 한다.

이 Stateless 서버에서 발생할 수 있는 문제가 있는데,
'인증'의 문제이다.

은행에서의 상황을 예시로 보면,
고객 A가 출금을 하기 위해 은행을 가서 은행원에게 신분증과 통장, 통장 비밀번호를 통해 본인 인증을 하고 출금을 진행한다.

다음날 같은 고객 A가 출금을 하러 다시 같은 은행을 방문해도 은행원은 전날 진행했던 본인 인증을 다시 진행할 것이다.
만약 이 고객 A가 10분에 한번과 같이 짧은 시간에 은행에 출금을 하러 온다면 인증절차가 매우 번거롭고 비효율적일 것이다.

이때 고객이 은행에서 최초 본인인증을 할 때 고객에게 ID카드를 내어 준다면 번거로움이 덜할 것이다.

고객이 출금을 위해
(1)처음 은행 방문시
(2) 본인인증 절차를 진행할때
(3) 고객에게 줄 ID카드 1개, 은행에서 보관할 ID 카드 하나를 발급해준다.
(4) 고객은 ID카드와 출금한 돈을 챙겨 돌아가고
(5) A가 언제든지 ID카드를 챙겨 재방문을 하면
(6) 은행원은 은행의 A ID카드와 A가 가져온 ID카드를 비교하여 본인인증을 한다.

이때 고객에 ID카드를 보관해왔던 주머니는 쿠키라고 하고,

은행원이 ID카드를 보관하고 있던 서랍(장소)는 세션이라고 한다.

즉, 세션과 쿠키를 이용하여 Stateless 서버이면서 Stateful 한 서버인 척 하는 것이라고 볼 수 있다.

Stateful 서버는 클라이언트의 정보를 모두 가지고 있어야 해서 부하가 심하고 느리지만, Stateless 서버에서 세션 영영에 ID카드(쿠키) 하나만 가지고 있으면 되기 때문에 메모리 영역에 차지하는 부분이 매우 적어지게 된다.

로그인 하는 과정에 세션과 쿠키를 이용하는 과정이라고 볼 수 있다.

그렇지만 사람들은 회원 가입하고 로그인 하는 과정에 ID 카드를 발급 받은 적도, ID카드를 쿠키로써 저장한 적도 없을 것이다.

최초의 인증 후 세션에 있는 ID카드를 주는 행위

ID카드를 쿠키에 저장하는 행위

재요청할 때 ID카드를 가져가는 행위

ID카드를 비교하는 행위 모두 프로토콜이기 때문에
자동으로 처리되고 있는 것이다.

profile
밑바닥부터 배우는 초짜 개발자

0개의 댓글