웹 개발 공부를 하다보면 네트워크 프로토콜 중 Stateful과 Stateless, 두 단어를 들어본적이 있을 것이다.
단어 뜻 그대로 상태를 유지하는가(Stateful), 하지않는가(Stateless)의 연결성 차이인데,
어떻게 유지를 하고 왜 유지를 하는지 짚고 넘어갈 필요가 있다.
Stateless | Stateful | |
---|---|---|
정의 | 클라이언트의 요청에 따른 응답만 처리하는 네트워크 프로토콜 | 세션이 종료될 때까지, 클라이언트의 세션 정보를 저장하는 네트워크 프로토콜 |
예시 | HTTP, UDP, DNS 등 | TCP, FTP, Telnet 등 |
설계 | 세션정보관리를 클라이언트가 담당하므로, 경우에 따라 JWT같은 방식이 필요할 수 있으며, 비교적 간단한 설계가 가능 | 캐시서버가 별도로 필요할 수 있으며 서버에서 세션을 관리하기 때문에 난이도 있는 구현이 필요 |
관리 | 서버에서는 단순한 응답만을 처리하기에 추후 확장에 용이함 | 서버에서 세션을 직접 저장하고 있기 때문에 확장이 까다로움 |