andan.log
로그인
andan.log
로그인
VS시리즈 - Stateful vs Stateless
김현교
·
2023년 12월 13일
팔로우
0
0
VS시리즈
목록 보기
3/12
Stateful (상태유지)
상태를 유지하고 저장
시스템이 과거의 상태를 기억하고 이를 기반으로 다음 동작을 수행할 수 있음
시스템이 클라이언트의 데이터를 유지하고, 클라이언트와의 상호작용 동안에도 해당 데이터를 사용
세션 상태, 로그인 정보, 작업 진행 상태 등을 유지하는 데 주로 활용
상태 정보를 저장하기 위해 메모리가 필요
서버의 무리가 가고 플랫폼의 다양화가 불가능
Stateless의 모든 기능은 Stateful 방식으로도 구현이 가능
예시 : 전통적인 웹 애플리케이션에서의 서버 측 세션 관리, 데이터베이스 시스템 등
Stateless (무상태)
클라이언트의 상태를 저장하지 않고, 각 요청을 독립적으로 처리
각각의 요청은 이전 요청과 무관하며, 시스템은 요청이 도착할 때마다 새롭게 처리
상태를 저장하지 않기 때문에, 여러 서버에 작업을 분산시키는 데 용이하며 확장성이 좋음
상태를 유지하지 않기 때문에 시스템이 예상치 못한 문제에 대해 더 견고
클라이언트가 추가 데이터 전송해야 함
Stateful의 모든 기능은 Stateless 방식으로 구현이 불가능
예시 : RESTful API, 서버리스 아키텍처, HTTP 프로토콜 등
차이점
데이터 유지 여부 : Stateful은 상태를 유지하고 저장하며, Stateless는 상태를 유지X
메모리 사용 : Stateful은 상태 정보를 저장하기 위해 메모리를 사용
Stateless는 상태를 저장하지 않으므로 메모리 사용이 적음
확장성 : Stateless가 Stateful보다 확장성이 용이
안정성 : Stateless 시스템은 예상치 못한 문제에 대해 더 견고함
Stateful은 상태를 유지하기 때문에 상태가 손상될 수 있음
예시
상태유지
* 같은 점원일 경우
* 다른 점원일 경우
무상태
* 같은 점원일 경우
* 다른 점원일 경우
결과
상태 유지는 중간에 다른 점원으로 바뀌면 안됨
무상태는 중간에 다른 점원으로 바뀌어도 됨
단, 무상태일 경우 노트북, 2개, 신용카드라는 추가 데이터 전송을 해야 함
결론
데이터를 유지해야 하는 경우 Stateful이 유용할 수 있지만,
확장성과 안정성이 중요한 경우 Stateless가 더 적합할 수 있음
일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지
상태 유지는 최소한만 사용
대규모 사용자가 실시간으로 사용하는 경우 고성능의 처리능력과 안정성이 보장되어야 하므로
Stateful Server가 적합
실시간 연동이 상대적으로 덜 필요한 웹 서버는 네트워크 비용을 줄이기 위한 Stateless Server가 적합
김현교
내가 공부하면서 궁금했던 걸 올리는 개발 블로그
팔로우
이전 포스트
VS시리즈 - GET vs POST
다음 포스트
VS시리즈 - Framework vs Library
0개의 댓글
댓글 작성