일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 엘리스sw트랙
- redis
- 개발자취업
- node.js
- Git
- 데이터베이스시스템
- 방송대
- presignedurl
- 코딩테스트
- aws
- TiL
- 파이썬
- MySQL
- 중간이들
- Cookie
- 방송대컴퓨터과학과
- 코딩테스트준비
- 99클럽
- CSS
- Python
- 항해99
- JavaScript
- HTML
- nestjs
- 꿀단집
- 유노코딩
- 파이썬프로그래밍기초
- SQL
- 코드잇
- 프로그래머스
- Today
- Total
배꼽파지 않도록 잘 개발해요
stateful과 stateless 본문
Stateful (상태 유지 시스템)
- 상태(state)를 시스템이 기억하고, 사용자가 이전에 했던 작업이나 데이터를 다음 요청에서도 계속 유지
- 예를 들어, 사용자가 로그인하면 세션을 통해 로그인 상태가 유지되며, 이후 요청에서도 로그인 상태가 계속 유지됨. 상태가 유지되기 때문에, 이전 작업의 결과나 데이터를 바탕으로 추가 작업을 진행할 수 있음.
- 장점 : 사용자의 이전 데이터를 기억하여, 연속적인 작업을 할 수 있음.
- 단점 : 상태를 관리하기 위한 서버 자원과 비용이 필요하고, 여러 서버 간에 상태를 일관되게 유지해야하므로 복잡할 수 있음.
- 예시 : 데이터베이스의 세션 정보는 stateful한 방식. 사용자가 세션을 종료하거나 시간이 지나면 그 상태가 사라짐.
Stateless (상태 비유지 시스템)
- 상태(state)를 유지하지 않으며, 각 요청은 독립적으로 처리됨. 즉, 시스템은 이전 요청의 상태를 기억하지 않고, 매번 새로운 요청을 처리함.
- 예를 들어, HTTP 프로토콜은 stateless임. 각 요청은 서로 독립적이며, 서버는 클라이언트가 보낸 요청만 처리하고 이전 요청에 대한 정보는 기억하지 않음.
- 장점 : 시스템이 단순하고, 서버 간에 상태를 공유할 필요가 없으므로 확장성이 좋음.
- 단점 : 사용자가 이전에 했던 작업이나 상태를 기억하지 못하기 때문에, 매번 요청 시마다 필요한 정보를 다시 보내야 함.
- 예시 : JWT(JSON Web Token)은 stateless한 인증 방식. 서버가 세션을 관리하지 않고 클라이언트가 토큰을 통해 인증정보를 저장하여 서버가 요청을 처리할 수 있도록 함.
stateful과 stateless 요약
- stateful : 상태를 유지하며, 이전 작업이나 데이터를 기억하고 처리 (세션, 데이터베이스)
- stateless : 상태를 유지하지 않고, 매 요청마다 독립적으로 처리 (HTTP, JWT)
데이터베이스와 상태
- 데이터베이스는 보통 stateful임. 왜냐하면, 데이터베이스는 데이터를 저장하고, 그 상태를 계속 유지해야하기 때문임. 예를 들어, 한 사용자가 추가한 정보가 데이터베이스에 저장되면, 그 정보는 다음 요청에서도 유효해야 함.
- 그러나 데이터베이스의 읽기 작업은 stateless한 방식으로 복제본에서 처리할 수 있으며, 이는 요청이 독립적이므로 상태를 기억할 필요가 없음.
stateful 시스템에서는 서버가 사용자의 상태를 계속 추척하고, stateless 시스템에서는 매번 새로운 상태로 요청을 처리함.
'BackEnd > Database' 카테고리의 다른 글
[Redis] Redis 클라이언트는 기본적으로 로컬 Redis 서버에 연결됨 (0) | 2024.09.10 |
---|---|
[Redis] Redis Cloud와 Redis Insignt 차이점 및 사용해보기 (0) | 2024.09.10 |
[MongoDB] Mongoose Populate 이해 - find의 결과를 populate가 필터링 하지 않음 (0) | 2024.08.31 |
[MySQL] NestJS TypeORM DB 초기 세팅 시 발생한 오류 (0) | 2024.08.19 |