반응형
소프트웨어 개발에서 status와 state는 비슷해 보이지만 사용하는 맥락과 의미가 다르다.
Status
“What is the current status of this project?” The answer should be “In testing.”
Status는 시스템, 프로세스 또는 객체의 외부적이고 정적인 속성을 나타내며, 현재의 상태를 설명하거나 나타낸다.
대표적으로 http 요청을 주고받을 때 response에 status가 포함된다. 여기서 200, 404 등의 status 코드가 함께 반환되고 이러한 상태는 이미 결정된 것이므로 현재의 결과에선 절대 변하지 않는 정적 속성을 지닌다.
특징을 정리해 보면 아래와 같다.
- 외부 정적 상태
- 특정 시점의 상태를 설명
- 시스템의 현재 상태 보고
- 예시: 서버 상태("Running", "Stopped")
State
“What is the current state of this project?” The answer should be “On hold for financial analysis.”
State는 시스템이나 객체의 내부적이고 동적인 속성을 나타내며, 시간이 지남에 따라 변화할 수 있다.
예를 들어 어떤 프로세스는 Ready state에 있다가 OS에 의해 Run state로 전환된다. Run state는 상황에 따라 Wait state, Termination state로 전환될 수 있고, 다시 Ready state로 돌아갈 수도 있다. 주로 상태 다이어그램에서 말하는 상태는 ‘state’를 의미한다.
특징을 정리해보면 아래와 같다.
- 내부 동적 상태
- 이벤트나 시간에 따라 변화
- 사용 예시 객체의 속성 값 변화 관리
- 예시: 주문 상태("Created" → "Shipped")
참고 자료
https://www.quora.com/What-is-the-difference-between-state-and-status
https://velog.io/@curiosity806/%EA%B0%9C%EB%B0%9C-%EC%83%81%EC%8B%9D-status-vs-state
반응형