[sql] SQL 데이터베이스에서 로그인 상태 유지하는 방법

로그인 상태를 유지하는 것은 웹 애플리케이션이나 모바일 앱에서 사용자의 편의성과 보안을 높이기 위해 중요한 요소입니다. SQL 데이터베이스를 사용하여 로그인 상태를 유지하는 방법에 대해 알아보겠습니다.

1. 세션 관리 테이블 생성하기

로그인 상태를 유지하기 위해 사용자의 세션 정보를 저장할 테이블을 생성해야 합니다. 이 테이블은 사용자의 고유 식별자인 세션 ID와 로그인 상태를 나타내는 필드로 구성됩니다.

CREATE TABLE session (
    session_id VARCHAR(40) PRIMARY KEY,
    user_id INT,
    login_status BOOLEAN,
    created_at DATETIME
);

2. 로그인 시 세션 생성하기

사용자가 로그인할 때마다 세션 ID를 생성하고, 세션 테이블에 해당 정보를 추가합니다. 이 세션 ID는 사용자의 로그인 상태를 식별하는 용도로 사용됩니다.

INSERT INTO session (session_id, user_id, login_status, created_at)
VALUES ('random_session_id', 1, true, NOW());

3. 로그인 상태 확인하기

사용자가 다른 페이지로 전환하거나 애플리케이션을 다시 열었을 때, 세션 ID를 사용하여 로그인 상태를 확인합니다. 이를 위해 세션 테이블에서 해당 세션 정보를 조회하고, 로그인 상태를 확인할 수 있습니다.

SELECT login_status FROM session WHERE session_id = 'random_session_id';

4. 로그아웃 시 세션 제거하기

사용자가 로그아웃할 경우, 세션 테이블에서 해당 세션 정보를 제거하여 로그인 상태를 해제합니다.

DELETE FROM session WHERE session_id = 'random_session_id';

5. 로그인 상태 유지 기간 설정하기

세션 테이블에 로그인 상태를 유지할 기간을 설정하는 것도 중요합니다. 대부분의 경우, 세션 정보는 사용자가 일정 기간 동안 비활동 상태일 때 삭제되도록 설정됩니다. 이를 위해 자동으로 세션 정보를 삭제하는 작업 스케줄링을 구현할 수 있습니다.

참고 자료