본문 바로가기
용어 및 개념

Stateful vs Stateless 차이

by Rainbound-IT 2021. 8. 13.
반응형

스테이트리스(Stateless)

스테이트리스 프로세스 또는 애플리케이션은 격리된 것으로 간주됩니다. 과거 트랜잭션에 대한 정보 또는 참조가 저장되지 않기 때문입니다. 각 트랜잭션은 모두 처음부터 시작됩니다. 스테이트리스 애플리케이션은 하나의 서비스 또는 기능을 제공하며, 콘텐츠 전달 네트워크(CDN), 웹, 프린트 서버를 사용해 이러한 단기 요청을 처리합니다. 

이러한 스테이트리스 트랜잭션의 가장 일반적인 예시는 검색창에 질문을 입력하고 엔터키를 누르는 형식으로 진행되는 온라인 검색입니다. 트랜잭션이 우발적으로 중단되거나 종료되면 새롭게 시작하면 됩니다. 스테이트리스 트랜잭션은 단일 요청에 대해 하나의 응답이 나오므로, 자동판매기와 비슷합니다. 


스테이트풀(Stateful)

이에 반해, 스테이트풀 애플리케이션과 프로세스는 온라인 뱅킹이나 이메일처럼 여러 번 반환될 수 있습니다. 스테이트풀은 이전 트랜잭션의 컨텍스트에 따라 수행되며, 현재 트랜잭션이 이전 트랜잭션에서 발생한 상황에 영향을 받습니다. 이러한 이유로 스테이트풀 애플리케이션은 사용자에게 받은 요청을 처리할 때마다 같은 서버를 사용합니다.  

스테이트풀 트랜잭션은 컨텍스트와 내역이 저장되므로 중단되어도 중단된 곳부터 다시 시작할 수 있습니다. 스테이트풀 애플리케이션은 창의 위치, 기본 설정 구성, 최근 활동과 같은 항목을 추적합니다. 스테이트풀 트랜잭션은 같은 사람과 주기적으로 지속하는 대화와 비슷합니다.

오늘날 우리가 사용하고 있는 대부분의 애플리케이션은 스테이트풀이지만, 기술이 발전함에 따라 마이크로서비스와 컨테이너를 통해 클라우드에서 더욱 쉽게 애플리케이션을 구축하고 배포할 수 있게 되었습니다. 


컨테이너와 상태(state)

클라우드 컴퓨팅 마이크로서비스의 인기가 높아지면서, 스테이트풀이든 스테이트리스든 상관없이 애플리케이션의 컨테이너화도 그 인기가 높아지고 있습니다. 컨테이너는 라이브러리 및 종속성과 함께 패키징되는 애플리케이션의 코드 유닛이므로 손쉽게 이동할 수 있으며 데스크톱, 기존 IT 인프라, 클라우드를 비롯한 어떤 환경에서든 실행 가능합니다. 

원래 컨테이너는 이식성이 높고 유연하다는 특성으로 인해 스테이트리스로 구축되었으나, 컨테이너의 사용이 확산됨에 따라 사용자들이 기존 스테이트풀 애플리케이션을 컨테이너화(컨테이너에서 실행하기 위해 재설계 및 재패키징)하기 시작했습니다. 이러한 방식으로 스테이트풀 상태의 저장 방식과 컨텍스트를 유지하면서도, 컨테이너의 유연성과 빠른 속도를 활용할 수 있었기 때문입니다.

이로 인해 스테이트풀 및 스테이트리스 애플리케이션의 경계가 크게 허물어졌습니다. 예를 들어, 장기간 저장이 필요하지 않은 스테이트리스 애플리케이션이지만, 서버가 쿠키를 사용해 동일한 클라이언트에서 받은 요청을 추적하도록 할 수 있습니다. 


스테이트리스 및 스테이트풀 컨테이너 관리

컨테이너의 인기가 높아짐에 따라, 기업에서는 데이터 스토리지, 쿠버네티스, StatefulSets를 사용해 스테이트리스 및 스테이트풀 컨테이너 모두를 관리하는 방법을 제공하기 시작했습니다. 스테이트풀이 이제 컨테이너 스토리지 주요 부분이 되면서 스테이트풀 컨테이너를 사용할 것인가가 아닌 언제 사용할 것인가가 관건입니다. 

스테이트풀 또는 스테이트리스 컨테이너 중 무엇을 사용해야 하는지는 빌드 중인 애플리케이션의 종류와 필요에 따라 달라집니다. 정보를 일시적으로 신속하게 사용해야 하는 경우에는 스테이트리스를 선택하고, 한 세션에서 다음 세션으로 넘어갈 때 애플리케이션에서 더 많은 메모리를 필요로 하는 경우에는 스테이트풀을 선택합니다.

 

https://www.redhat.com/ko/topics/cloud-native-apps/stateful-vs-stateless

 

스테이트풀(Stateful)과 스테이트리스(Stateless) 차이 및 비교

스테이트풀(Stateful)과 스테이트리스(Stateless)의 차이는 상호 작용 상태가 얼마나 오래 기록되는지, 해당 정보가 어떤 방식으로 저장되는지에 따라 구별됩니다.

www.redhat.com

 

반응형

'용어 및 개념' 카테고리의 다른 글

curl이란  (0) 2021.08.23
토큰기반 인증 한줄 요약  (0) 2021.08.13
SSH 작동 원리  (0) 2021.07.27
SDS(Software Define Storage)  (0) 2021.07.26
VM Disk - thick, thin provisioning / 고정, 동적, 차이점보관  (0) 2021.07.23

댓글