서버에 정보를 잠시 저장할 수 있는 공간
쿠키는 클라이언트에 정보를 잠시 저장할 수 있는 특별한 저장공간
-> 브라우저가 서버로 요청을 할때 쿠키를 요청서에 포함시킴. 클라이언트를 구분하기 위해 쿠키를 활용.(서버가 클라이언트를 어떤 방법으로 추적할 것인지를 정의한 세션 트래킹 모드 중에서 대부분 서버에서 쿠키 사용 모드를 기본 값으로 사용 및 권장.)
세션은 서버에 정보를 잠시 저장할 수 있는 특별한 저장공간
출처: https://thecodinglog.github.io/web/2020/08/11/what-is-session.html
-> 🤓흐름
1. 세션 정보를 저장하고 있는 서버가 클라이언트 구분을 위해 세션ID를 발급
2. 클라이언트는 발급받은 ID를 쿠키에 저장
3. 클라이언트의 요청이 오면 쿠키에 담긴 ID를 같이 보내줘어서 서버가 각 클라이언트를 구분
여러대의 서버를 동시에 운용할 경우 클라이언트의 요청이 다른 서버로 전달되면 세션 정보를 찾을 수 없어 새로운 세션ID가 발행되는 문제가 발생.
-> 여러대의 서버를 동시에 운영하기 위해 세션을 동기화시킬 수 있는 방안을 마련해야함
데이터를 디스크에 저장, 관리하는 데이터 베이스.
e.g. Oracle, MySQL, MS-SQL등
-> 지속성 및 안정성 보장
-> 가격이 저렴하여 쉽게 확장 가능 = 대용량 데이터 저리 용이
-> 속도의 한계
(메모리에 임시 저장소인 버퍼를 마련하여 데이터를 관리. 버퍼를 경유하여 필요한 데이터만 메모리로 로딩.디스크에서 데이터 찾는 대기시간, 디스크에서 버퍼로의 데이터 전송시간 등 병목 현상 발생.)
데이터를 디스크가 아닌 메모리에 저장하고 관리
e.g. Redis, H2, memcached 등
->데이터 접근 속도가 빠름
(모든 작업을 메모리에서 수행하여 디스크I/O 발생하지 않음. 불필요한 임시 데이터 발생하지 않음.)
-> 디스크에 비해 상대적으로 높은 가격
-> 주 저장소인 메모리가 휘발성
(서버 장애 발생 시 데이터 소실 위험 존재)