[javascript] Angular와 자바스크립트에서의 세션 관리 방법 비교

웹 애플리케이션에서 사용자 세션을 관리하는 것은 중요한 주제입니다. Angular 및 일반 JavaScript에서 세션을 관리하는 방법을 비교해보겠습니다.

Angular에서의 세션 관리

Angular에서 사용자 세션을 관리하는 일반적인 방법 중 하나는 JWT(JSON Web Tokens)를 사용하는 것입니다. 사용자가 로그인하면 JWT를 생성하고, 클라이언트 측에 저장합니다. 그리고 각 HTTP 요청에 대해 헤더에 JWT를 포함하여 보냄으로써 사용자 세션을 유지합니다.

// 예시: JWT 생성 및 저장
login(username: string, password: string) {
    // 로그인 요청 후 JWT 획득
    const token = this.authService.authenticateUserAndGetToken(username, password);
    // JWT를 로컬 스토리지에 저장
    localStorage.setItem('token', token);
}

// 예시: HTTP 요청 시 JWT를 헤더에 포함하여 전송
getProfile() {
    // HTTP 요청 전에 JWT 헤더에 포함
    const headers = new HttpHeaders().set('Authorization', 'Bearer ' + localStorage.getItem('token'));
    return this.http.get('/api/profile', { headers });
}

JavaScript에서의 세션 관리

JavaScript에서의 세션 관리는 주로 쿠키(Cookies) 또는 로컬 스토리지(Local Storage)를 사용하여 구현됩니다. 이를 이용하면 사용자 세션을 유지하고, 필요할 때 세션을 제거할 수 있습니다.

// 예시: 쿠키를 사용한 세션 관리
// 세션 생성
document.cookie = "sessionID=ABCD1234; expires=Wed, 31 Dec 2025 12:00:00 UTC; path=/";

// 세션 제거
document.cookie = "sessionID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

// 예시: 로컬 스토리지를 사용한 세션 관리
// 세션 생성
localStorage.setItem('sessionID', 'ABCD1234');

// 세션 제거
localStorage.removeItem('sessionID');

이러한 방법은 사용자 세션을 관리하는 데 유용하지만, 보안상의 이슈에 주의해야 합니다. 사용자 세션과 관련된 데이터는 항상 안전하게 다루어져야 합니다.

결론

Angular와 JavaScript에서의 세션 관리는 각각의 특징에 맞게 다양한 방법으로 이루어집니다. 프로젝트의 요구 사항과 보안 고려 사항에 따라 적절한 방법을 선택해야 합니다.

참고 문헌: