Spring & Java
Stateless 와 Stateful 본문

이번에는 Stateless와 Stateful에 대해서 이야기를 해보도록 하겠습니다.
학습 목표
● Stateless 와 Stateful 학습
Stateless VS Stateful
앱을 운영 환경에서 안정적으로 운영하려면 Stateless (상태 없음) 패턴이 중요합니다.
정의
| 패턴 | 의미 | 특징 |
| Stateless ( 상태 없음 ) | 앱이 상태를 저장하지 않음 | 서버 교체/확장 용이 |
| Stateful ( 상태 있음 ) | 앱이 상태를 저장함 | 서버 교체 시 데이터 유실 위험 |
Stateless 패턴의 핵심
1. 앱은 언제든지 교체 가능하게
2. 데이터는 외부에

고민을 한번 해봅시다.
사용자가 업로드한 파일을 같은 서버 디스크에 저장하면 어떤 문제가 발생할 것 같나요?
같은 서버 디스크에 파일 저장 시 발생하는 문제
1. 서버 재시작, 재배포 시 파일 유실 위험
2. 서버 확장 (Scale Out) 시 파일 불일치
3. Auto Scaling 환경에서 완전히 사용 불가
4. 백업,복구,이관이 매우 어려움
5. 보안문제
6. 디스크 용량 한계
서버는 상태를 가지지 않아야 한다 ( Stateless )
파일은 서버 밖에 저장해야 한다.
S3와 RDS를 이용한 상태 분리
이번 챕터의 AWS 서비스
