| 구분 | 설명 | 장점 | 단점 |
|---|---|---|---|
| 쿠키 (Cookie) | - 클라이언트(브라우저)에 저장되는 작은 데이터 조각. |
서버가 클라이언트에게 데이터를 저장하도록 지시하며, 이후 요청 시 해당 데이터를 다시 서버로 전송함. | - 서버 부담이 적음 (데이터가 클라이언트에 저장됨).
만료 시간 설정 가능 (자동 삭제). | - 보안 취약성(클라이언트에서 조작 가능). <br> - 쿠키 크기 제한(약 4KB). | | 세션 (Session) | - 서버에 저장되는 사용자 상태 정보. <br> - 클라이언트는 세션 ID만 가지고 있으며, 서버에서 해당 ID를 통해 상태 정보를 관리. | - 클라이언트에서 데이터를 저장하지 않아 보안이 더 우수. <br> - 복잡한 상태 관리 가능. | - 서버 메모리나 저장소에 부하 발생.
서버 간 세션 동기화 문제(로드 밸런싱). | | JWT (JSON Web Token) | - JSON 포맷을 사용하여 정보를 안전하게 전송하기 위한 토큰.
클라이언트가 서버로부터 받은 토큰을 저장하고 요청 시마다 전송하여 인증을 받음. | - 자가 포함된 정보로 서버 부하 적음.
다양한 플랫폼 간 사용 가능. | - 토큰 자체가 길어 네트워크 트래픽 증가.
서버에서 토큰 무효화가 어려움. |
쿠키 (Cookie): 웹 사이트에 대한 사용자 설정 및 인증 정보 등을 저장하는데 주로 사용됩니다. 보통 HTTP 응답 헤더에 Set-Cookie로 설정되며, 클라이언트는 이후 요청 시 해당 쿠키를 자동으로 포함시킵니다.
세션 (Session): 주로 사용자 로그인 상태를 유지하는데 사용됩니다. 세션은 서버에 저장되고 클라이언트는 세션 ID만 가지고 있어, 중요한 정보가 노출되지 않습니다.
JWT (JSON Web Token): 주로 RESTful API의 인증 방식으로 사용되며, 서명된 토큰을 통해 정보의 무결성과 인증을 보장합니다. 토큰은 주로 클라이언트 측에서 로컬 저장소 또는 쿠키에 저장됩니다.