더북(TheBook)

23.1.1.1 세션 기반 인증 시스템

세션을 기반으로 인증 시스템을 만든다는 것은 어떤 의미일까요? 한마디로 쉽게 설명하면, 서버가 사용자가 로그인 중임을 기억하고 있다는 뜻입니다.

▲ 그림 23-1 세션 기반 인증 시스템

 

세션 기반 인증 시스템에서 사용자가 로그인을 하면, 서버는 세션 저장소에 사용자의 정보를 조회하고 세션 id를 발급합니다. 발급된 id는 주로 브라우저의 쿠키에 저장합니다. 그다음에 사용자가 다른 요청을 보낼 때마다 서버는 세션 저장소에서 세션을 조회한 후 로그인 여부를 결정하여 작업을 처리하고 응답을 합니다. 세션 저장소는 주로 메모리, 디스크, 데이터베이스 등을 사용합니다.

세션 기반 인증의 단점은 서버를 확장하기가 번거로워질 수 있다는 점입니다. 만약 서버의 인스턴스가 여러 개가 된다면, 모든 서버끼리 같은 세션을 공유해야 하므로 세션 전용 데이터베이스를 만들어야 할 뿐 아니라 신경 써야 할 것도 많습니다.

그렇다고 해서 세션 기반 인증이 무조건 좋지 않은 것은 아닙니다. 잘 설계하면 충분히 좋은 시스템이 될 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.