자바스크립트를 이용한 웹 개발에서 쿠키와 세션은 사용자 정보를 유지하고 인증 및 상태 관리를 위해 중요한 요소입니다. 이번 글에서는 자바스크립트를 사용하여 쿠키와 세션을 어떻게 관리할 수 있는지 알아보겠습니다.
쿠키(Cookies)
쿠키는 일반적으로 웹 브라우저에 저장되는 작은 데이터 조각입니다. 쿠키를 사용하면 웹 사이트는 사용자의 인증 정보, 선호 설정 등을 저장하고, 그 정보를 추후에 사용자에게 제공할 수 있습니다.
자바스크립트를 사용하여 쿠키를 생성하고 접근하기 위해서는 document.cookie
프로퍼티를 사용해야 합니다. 예를 들어, 다음은 이름과 값이 “username”과 “John”인 쿠키를 생성하는 코드입니다.
document.cookie = "username=John";
쿠키는 문자열 형태로 저장되어 있으며 세미콜론을 사용하여 각각의 쿠키 속성을 구분합니다. 만약 여러 개의 쿠키를 저장하려면 세미콜론으로 구분된 문자열을 설정해야 합니다.
쿠키의 속성들은 다음과 같습니다.
- 이름(Name): 쿠키의 식별자로 사용됩니다.
- 값(Value): 쿠키에 저장될 데이터입니다.
- 도메인(Domain): 쿠키가 유효한 도메인을 지정합니다.
- 경로(Path): 쿠키가 유효한 경로를 지정합니다.
- 만료일(Expiration): 쿠키의 만료일을 지정합니다.
자바스크립트를 사용하여 쿠키의 값을 가져오거나 설정할 수 있으며, 쿠키를 만료시키기 위해서는 만료일을 설정해야 합니다.
// 쿠키 가져오기
const cookieValue = document.cookie;
// 쿠키 설정
document.cookie = "username=John; expires=Sun, 31 Dec 2023 23:59:59 UTC; path=/";
// 쿠키 삭제 (만료일을 과거로 설정)
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/";
세션(Session)
세션은 서버 측에서 사용자에 대한 정보를 저장하는 방법입니다. 세션은 쿠키를 기반으로 하지만 서버에 저장되므로 보안적인 이점이 있습니다. 세션은 사용자가 웹 사이트에 접속하고 있는동안에만 유지되며, 세션이 만료되면 사용자 정보는 삭제됩니다.
자바스크립트로 세션을 관리하기 위해서는 위에서 언급한 쿠키와 마찬가지로 document.cookie
를 사용할 수 있습니다. 세션을 생성하거나 확인하기 위해서는 서버와의 통신이 필요하므로 AJAX나 Fetch API를 사용하여 데이터를 주고받아야 합니다.
// 서버와 세션 생성 요청하기
fetch('/session', {
method: 'POST',
credentials: 'include' // 쿠키를 함께 전송하도록 설정
}).then(response => {
// 세션이 생성되었을 때 처리할 코드
});
// 서버와 세션 상태 확인 요청하기
fetch('/session', {
method: 'GET',
credentials: 'include'
}).then(response => {
// 세션이 유효한 경우 처리할 코드
});
위 예시는 Fetch API를 사용하여 서버에 세션 생성 및 상태 확인 요청을 보내는 코드입니다. credentials
옵션을 include
로 설정하여 쿠키를 요청에 포함시킵니다.
결론
자바스크립트를 사용하여 쿠키와 세션을 관리하는 것은 웹 개발에서 중요한 부분입니다. 이를 통해 사용자 정보를 유지하고 인증 및 상태 관리를 수행할 수 있습니다. 쿠키는 클라이언트 측에서 저장되는 작은 데이터 조각이며, 세션은 서버 측에서 사용자 정보를 저장합니다. 자바스크립트를 통해 이러한 쿠키와 세션을 생성, 접근, 삭제할 수 있으며, 서버와의 통신을 통해 세션의 상태를 확인할 수 있습니다.
참고 자료: