무상태
![[시스템 설계] 무상태(stateless) 웹 계층](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FXYSrJ%2FbtsdQghRVN8%2FAAAAAAAAAAAAAAAAAAAAAO-Ths4Ns277QAoi1kR9aVRo2y70dK8f5SRTf5oYQN60%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DCfoZfx1hBqeYy20Q6DCEOmCYJX8%253D)
[시스템 설계] 무상태(stateless) 웹 계층
시스템의 웹 계층을 수평적으로 확장시키려면 웹 서버에서 상태 정보(세션데이터 등)을 제거해야 한다. 만약 상태정보를 가진 채로 웹 계층이 동작하면, 다음과 같은 일이 발생한다. 사용자가 http요청을 통해 웹에 접속하려고 할 때, 해당 사용자에 대한 상태 정보가 존재하는 서버에만 요청을 해야 결과 값이 반환된다. 로드밸런서는 이러한 기능을 지원하기 위해 고정 세션(sticky session)이라는 기능을 제공하지만, 이는 LB에 부담을 준다. 또한 특성 서버에만 부하가 몰리는 문제가 생길 수 있다. 이러한 문제에서 벗어나기 위해 무상태(stateless) 아키텍처를 구성한다. 웹 계층에서 상태 정보를 떼어내 RDBMS나 NoSQL과 같은 공유 저장소(shared storage)에 저장하고, 필요할 때 가..