컴퓨터 용어

Stateful, Stateless

Twisted 2025. 2. 22. 03:46

오늘 알아볼 용어는 Stateful, Stateless이다.

두 용어는 클라이언트와 서버간의 통신 상태(state)유지 여부에 따라 나뉘는 특성이다.

 

Stateful(상태 유지)

Stateful은 상태를 유지하는 시스템을 의미한다. 즉 클라이언트와 서버 간의 세션이 지속적으로 유지되며, 서버는 클라이언트의 이전 요청 정보를 기억하고 있는다. 이를 통해 사용자의 이전 작업을 기반으로 응답을 제공할 수 있다.

 

Stateful의 특징

  • 세션 유지 : 서버가 클라이언트의 상태를 저장하여 이후 요청에서 활용한다.
  • 연속성 제공 : 로그인 정보, 쇼핑 카트, 진행중인 트랜잭션 등을 유지할 수 있다.
  • 리소스 소모 : 클라이언트별로 세션 데이터를 저장해야 하므로 메모리와 저장 공간이 많이 필요하다.
  • 서버 장애 시 데이터 손실 가능성 : 특정 서버에서 상태를 저장하므로, 서버 장애 시 데이터 유실 가능성이 존재한다.

 

Stateless(무상태)

Stateless는 상태를 유지하지 않는 시스템을 의미한다. 즉, 각 요청이 독립적으로 처리되며, 서버는 클라이언트의 이전 요청 정보를 저장하지 않는다. 요청마다 필요한 모든 정보를 포함하여 서버에 전달해야한다.

 

Stateful의 특징

  • 세션 없음 : 각 요청을 독립적이며, 서버는 이전 요청에 대한 정보를 기억하지 않는다.
  • 확장성이 높음 : 클라이언트의 상태를 유지할 필요가 없어, 서버 간 부하 분산이 용이하다.
  • 무상태 요청 처리 : 요청이 독립적이므로, 서버 간 부하 균형을 맞추기 쉽고 장애 복구가 용이하다.
  • 클라이언트 부담 증가 : 필요한 데이터를 매번 요청해야 하므로 클라이언트가 더 많은 정보를 전송해야 할 수도 있다.

 

Stateful vs Stateless

 

Stateful 과 Stateless는 시스템 설계에서 매우 중요한 개념이며, 각각의 장단점을 고려하여 상황에 맞는 방식을 선택하는 것이 중요하다.

 

Stateful - 사용자 상태를 유지하는 것이 필요한 경우 유리하지만, 확장성이 떨어지고 리소스 부담이 크다.

 

Stateless - 요청을 독립적으로 처리하여 확장성이 뛰어나지만, 일부 기능에서는 불편할 수 있다.

'컴퓨터 용어' 카테고리의 다른 글

Connection, Connectionless  (0) 2025.02.24
JSON, Scale Up, Scale Out  (1) 2025.02.21
프로그래밍 명명 규칙(Casing)  (1) 2025.02.20