Account 로그인
Jump to section

스테이트풀과 스테이트리스 비교

URL 복사

애플리케이션을 비롯한 모든 항목의 상태란 해당 시점의 상황과 품질, 즉 존재 상태를 말합니다. 스테이트풀(Stateful)과 스테이트리스(Stateless)는 상호 작용 상태가 얼마나 오래 기록되는지, 해당 정보가 어떤 식으로 저장되는지를 기준으로 구별할 수 있습니다. 

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

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

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

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

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

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

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

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

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

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

스테이트풀과 스테이트리스는 Red Hat이 전문입니다. 엔터프라이즈 레디 쿠버네티스 플랫폼인 Red Hat OpenShift에 스테이트풀 컨테이너를 오케스트레이션하든, Red Hat Integration으로 애플리케이션 개발을 위한 통합 환경을 조성하든, Red Hat이 제공하는 높은 수준의 지원과 업계 최대 규모의 파트너 에코시스템을 활용할 수 있습니다. 

Red Hat의 제품이 솔루션을 구축하고, 개발자의 생산성을 향상하고, 혁신을 촉진하는 방식을 확인해보세요. 이 모든 것이 오픈소스 방식으로 이루어집니다.

Keep reading

문서

스테이트풀과 스테이트리스 비교

스테이트풀과 스테이트리스는 상호 작용 상태가 얼마나 오래 기록되는지, 해당 정보가 어떤 식으로 저장되는지를 기준으로 구별할 수 있습니다.

문서

Quarkus란?

Quarkus는 Java 가상 머신(Java Virtual Machine, JVM)과 네이티브 컴파일을 위해 만들어진 쿠버네티스 네이티브 Java 스택으로, 특히 컨테이너에 Java를 최적화합니다.

문서

서버리스란?

서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다.

클라우드 네이티브 애플리케이션에 대한 자세한 내용

제품

Red Hat OpenShift

자동화된 풀스택 오퍼레이션으로 하이브리드 클라우드, 멀티클라우드 및 엣지 배포를 관리하는 엔터프라이즈급 쿠버네티스 컨테이너 플랫폼입니다.

Red Hat Fuse

여러 서비스를 서로 분리하여 독립적으로 생성, 확장, 배포할 수 있게 하는 분산형 클라우드 네이티브 통합 플랫폼입니다.

리소스

e-book

클라우드 네이티브와 하이브리드 클라우드의 융합: 전략 가이드

E-book

클라우드 네이티브 애플리케이션 구현을 위한 과정

교육

무료 교육 과정

Developing Cloud-Native Applications with Microservices Architectures

Illustration - mail

유용한 콘텐츠 더 보기

Red Hat Shares 뉴스레터를 구독해 보세요(무료).

Red Hat logo LinkedInYouTubeFacebookTwitter

제품

구매 정보

커뮤니케이션

Red Hat 소개

Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.

Red Hat Shares 뉴스레터를 구독하세요

지금 신청하기

언어 선택

© 2022 Red Hat, Inc.