WIPIVERSE

상태 (컴퓨터 과학)

상태

정의
컴퓨터 과학 분야에서 상태(state)는 시스템·프로그램·알고리즘이 특정 시점에 보유하고 있는 모든 정보를 총칭한다. 상태는 외부 입력에 대한 현재의 반응을 결정하며, 시스템이 시간에 따라 어떻게 변하는지를 기술한다.

주요 사용 맥락

분야 상태의 의미 및 역할
유한 상태 기계(FSM) 상태는 기계가 점유하고 있는 현재 위치를 나타낸다. 입력 심볼에 따라 상태 전이(transition)가 발생한다.
프로그램 실행 변수 값, 메모리 내용, 레지스터 값 등 실행 중인 프로세스가 보유하는 모든 런타임 정보를 의미한다. 프로그램이 상태를 저장하고 복원함으로써 스레드 컨텍스트 스위칭이 가능하다.
데이터베이스 트랜잭션이 진행 중인 단계(예: active, committed, aborted)와 같은 내부 관리 정보를 상태라고 한다. 또한 레코드 수준의 “현재 상태”(예: 주문 상태)도 데이터 모델링에서 사용된다.
네트워크·분산 시스템 세션, 연결, 캐시 등 서비스가 유지하고 있는 정보를 상태라고 하며, 무상태(stateless)와 대비된다.
상태 기반 설계 객체지향·함수형 프로그래밍 등에서 불변(immutable) 상태와 가변(mutable) 상태를 구분해 설계한다.
인공지능·강화학습 에이전트가 환경으로부터 관찰하는 현재 상황을 “상태”라 하며, 행동 선택 정책(policy)은 상태에 기반한다.

특징

  1. 명시적·암묵적 구분 – 일부 시스템은 상태를 명시적으로 저장(예: 상태 변수)하고, 다른 시스템은 암묵적으로 상태를 유지(예: 함수 호출 스택)한다.
  2. 상태 불변성 – 함수형 프로그래밍에서는 상태 변경을 피하고 새로운 상태를 반환하는 방식으로 부작용을 최소화한다.
  3. 상태 전이 규칙 – 상태 머신에서는 전이 함수를 통해 현재 상태와 입력에 따라 다음 상태가 결정된다.

관련 개념

  • 상태 전이(state transition): 현재 상태와 입력에 따라 새로운 상태로 이동하는 과정.
  • 상태 저장(state persistence): 시스템 종료 후에도 상태를 유지하기 위해 디스크 등에 기록하는 메커니즘.
  • 상태 관리(state management): 특히 UI 프레임워크(React, Vue 등)에서 UI와 데이터의 현재 상태를 일관되게 유지·갱신하는 기술이다.

참고 문헌

  • Hopcroft, J. E., & Ullman, J. D. (1979). Introduction to Automata Theory, Languages, and Computation.
  • Tanenbaum, A. S., & Bos, H. (2015). Modern Operating Systems.
  • Codd, E. F. (1970). “A Relational Model of Data for Large Shared Data Banks.” Communications of the ACM.

위와 같이 상태는 컴퓨터 과학 전반에 걸쳐 핵심적인 개념으로, 시스템의 동작을 이해하고 설계하는 데 필수적인 용어이다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기