쿠키를 사용하여 로그인 상태 유지하기

게시일 3. 9월 2024 작성자 Jan Bunk

동의 설정을 거쳐 구성된 웹사이트와 앱으로 전달되는 쿠키 카테고리.

사용자는 앱을 다운로드하면 방해 요소가 거의 없고 쉽게 사용할 수 있기를 기대해요. 특히 앱을 자주 이용한다면 계정에 로그인된 상태를 유지하는 것이 이러한 사용자 경험의 중요한 부분이에요. 웹사이트를 앱으로 전환하면 앱은 대부분 브라우저처럼 작동해요. 따라서 사용자의 로그인 상태를 유지하려면 웹사이트에서 세션 관리를 세심하게 처리해야 해요. 이 글에서는 웹사이트의 세션 쿠키를 올바르게 구성하여 사용자가 앱에서 로그인 상태를 유지하도록 하는 방법을 알아봐요.

사용자의 로그인 상태 유지가 중요한 이유

사용 경험이 원활할수록 사용자가 앱을 계속 이용할 가능성이 높아져요. 사용자가 계정에 다시 로그인해야 할 때마다 불편 요소가 생겨요. 이런 일이 너무 자주 발생하면 사용자가 불편함을 느껴 참여도가 낮아지고 이탈률이 높아질 수 있어요. 해결책은 무엇일까요? 보안을 유지하면서도 사용자가 최대한 오래 로그인 상태를 유지하도록 세션 관리를 올바르게 설정하는 것이에요.

올바른 쿠키 설정의 주요 요소

만료 시간

영구 세션을 사용하면 사용자가 앱이나 웹사이트를 닫은 후에도 로그인 상태가 유지돼요. 이를 위해서는 세션 쿠키, 즉 사용자의 로그인 상태를 유지하는 쿠키를 올바르게 구성해야 해요. 원하는 기간 동안 사용자의 로그인 상태를 유지하려면 세션 쿠키의 expiresmax-age 속성을 설정해야 해요. 이 속성은 앱이나 브라우저에서 쿠키를 자동으로 삭제하기 전까지 쿠키가 유지되는 기간을 정의해요.

  • expires: 이 속성은 쿠키가 만료되는 절대 날짜와 시간을 설정해요.

  • max-age: 이 속성은 쿠키가 설정된 시점부터 유지되는 기간을 초 단위로 정의해요. 특정 날짜와 시간을 계산할 필요가 없기 때문에 expires보다 사용하기 쉬운 경우가 많아요.

이 속성들을 설정하지 않으면 사용자가 브라우저나 앱을 닫는 즉시 쿠키가 만료되어 세션이 종료되고 사용자가 로그아웃돼요. 만료 시간이 없는 이러한 쿠키를 흔히 "세션 쿠키"라고도 해요. 이 경우 "세션"은 사용자가 브라우저나 앱을 열어 둔 시간을 의미해요. 반면 이 글에서는 중간에 앱이나 브라우저를 닫았더라도 사용자의 로그인 상태를 유지하려는 전체 기간을 하나의 세션이라고 불러요.

어떤 만료 시간을 사용할지는 사용자의 계정이 해킹되었을 때 결과가 얼마나 심각한지에 따라 달라져요. 은행 계좌라면 피해가 매우 클 수 있으므로 짧은 만료 시간을 사용해야 해요. 하지만 Netflix 계정의 접근 권한을 잃는 것은 상대적으로 심각하지 않을 수 있으므로 한 달 이상의 만료 시간을 사용해도 괜찮아요. 이런 경우 보안을 조금 더 강화하려고 계속 다시 로그인하게 만드는 것은 지나치게 불편해요.

그 밖의 중요한 쿠키 속성

이 속성들은 사용자의 로그인 상태를 유지하는 데 꼭 필요하지는 않지만, 공격자가 세션 쿠키를 훔치기 어렵게 해 주므로 설정하는 것이 좋아요. 공격자가 세션 쿠키를 훔치면 사용자 이름과 비밀번호를 몰라도 해당 사용자의 계정에 로그인할 수 있어요.

  • Secure: 이 플래그는 쿠키가 HTTPS를 통해서만 전송되도록 해요. 특히 앱에서 민감한 정보를 처리하는 경우 보안에 매우 중요해요. 항상 활성화되어 있는지 확인하세요.

  • HttpOnly: 이 플래그는 JavaScript가 쿠키에 접근하지 못하게 하여 크로스 사이트 스크립팅(XSS) 공격을 방지하는 데 도움이 돼요. 모든 세션 쿠키에 이 플래그를 설정하는 것이 좋아요.

세션 만료를 원활하게 처리해요

세션 유지 기간을 길게 설정해도 구성한 만료 시간은 결국 도래해요. 이 만료를 처리하는 방식에 따라 사용자 경험이 크게 달라질 수 있어요.

테스트

웹사이트에서 로그인 상태 유지 기능이 제대로 작동하는지 테스트하는 것이 중요해요. 컴퓨터와 스마트폰에서 모두 테스트해 주세요. 브라우저에서는 작동하지만 앱에서는 작동하지 않는다면 저희가 확인할 수 있도록 알려 주세요.

결론

사용자의 로그인 상태를 유지하는 것은 앱에서 원활하고 만족스러운 사용자 경험을 제공하는 데 매우 중요해요. 세션 쿠키를 올바르게 구성하면 사용자가 최대한 오래 로그인 상태를 유지하도록 할 수 있어요. 사용자에게 문제가 발생하기 전에 발견하려면 철저한 테스트가 필수예요.

이러한 전략을 구현하여 사용 중단을 최소화하고, 사용자 만족도를 높이며, 앱 사용자가 계속 활발하고 즐겁게 이용하도록 해 보세요.

관련 도움말


화면 방향 고정 옵션과 함께 세로 및 가로 방향으로 회전하는 모바일 앱.

앱을 가로 또는 세로 모드로 제한해야 하는 경우

웹사이트를 앱으로 전환할 때 앱의 화면 방향을 특정 방향으로 고정할 수 있도록 지원해요. 하지만 그렇게 하지 않는 것을 권장하는 이유를 알아보세요.

새 버전의 웹사이트가 앱에서 새로고침되는 과정에서 만료된 캐시 파일 세트가 교체되는 모습.

앱의 캐싱 문제를 해결하는 방법

웹사이트의 변경 사항이 앱에 즉시 표시되도록 하려면 웹사이트에 캐싱을 올바르게 설정하는 것이 중요해요.

오래된 개발자 프로필이 인증된 이름과 주소로 교체되는 모습.

Google 개발자 계정의 주소 또는 이름을 업데이트하는 방법

회사 이름이나 주소가 변경되면 DUNS 번호에 연결된 정보에도 반영돼요. 그런 다음 Google에서도 새 정보를 인증해야 해요.


작성자 Jan Bunk
작성자
Jan Bunk

컴퓨터 과학을 전공한 Jan은 2019년에 app-control-panel.com을 설립하고 웹사이트를 앱으로 변환하는 기반 소프트웨어를 개발했어요. 수백 개의 앱을 출시하며 쌓은 경험과 피드백을 바탕으로 앱 제작, 게시, 유지 관리에 관한 모든 과정을 쉽게 따라 할 수 있는 가이드로 안내하기 위해 노력하고 있어요.