웹 개발
배포 전에 세션 설정을 빠뜨렸을 때 하는 실수들
API 인증이 필요한 앱을 배포할 때는 쿠키 설정, 세션 저장소, HTTPS 설정을 반드시 점검해야 로그인이 안 되는 상황을 피할 수 있다.
세션 관련 설정을 빠뜨리고 배포했다가 사용자가 로그인을 못 하는 상황을 겪었다. 배포 후 발견하기 쉬운 세션 관련 실수들을 정리했다.
쿠키 설정 확인
Next.js에서 쿠키를 쓸 때 secure, httpOnly, sameSite 옵션을 설정했는지 확인한다. 로컬(http)에서는 secure: false로 테스트하는데, 배포(https)에서는 secure: true로 해야 한다.
# 배포 환경에서 Set-Cookie 헤더 확인
curl -i 'https://example.com/api/login' -X POST -d '{...}' | grep -i "set-cookie"
세션 저장소
메모리에만 세션을 저장하는 설정으로 배포하면 안 된다. 서버가 재시작되거나 여러 인스턴스로 스케일링될 때 세션이 날아간다. Redis나 데이터베이스를 써야 한다.
배포 환경에서 세션 저장소 연결이 제대로 됐는지 로그로 확인한다.
HTTPS 리다이렉트
http로 접근한 요청을 https로 리다이렉트하는 설정이 있는지 본다. 없으면 보안 쿠키가 전송되지 않아 로그인이 안 된다.
간단한 로그라도 "세션 저장소: Redis 연결 성공", "쿠키 설정: secure=true" 같은 기록을 배포 시에 남겨두면, 나중에 세션 문제가 생겼을 때 환경 설정부터 의심할 수 있다.