김데이의 개발공부

[ Weekly Paper 08 ] 세션 기반 인증 / 토큰 기반 인증 본문

코드잇 Node.js(BE) 부트 캠프/위클리 페이퍼 📃🖌️

[ Weekly Paper 08 ] 세션 기반 인증 / 토큰 기반 인증

theday365 2025. 12. 13. 18:07
반응형

 

 

위클리 페이퍼 주제 (2025.12.8 ~ 12.13)

✅ 세션 기반 인증에 대해 설명해 주세요.

✅ 토큰 기반 인증에 대해 설명해 주세요.

 


Q1 - Final . 세션 기반 인증에 대해 설명해 주세요.

  • 정의 : 세션은 '기간, 시간'이라는 의미에서 파생되어,
             컴퓨터나 인터넷 환경에서 사용자와 서버간의 연결 상태상호작용이 가능한 특정 시간(구간)을 뜻하게 됨.

  • 세션 기반 인증의 특징
    • 서버가 사용자의 세션을 서버 메모리 / Redis / DB 등에 저장하고 있음
    • 일정 시간동안 사용자의 활동이 없으면 세션을 종료 시킴 (세션 만료)
    • 문제가 생기는 경우(탈취,에러 등) 세션 삭제를 통해 즉시 무효화(로그아웃) 가능
  • 인증 방식 
    1. 사용자가 사이트를 방문하여 로그인 진행
    2. 서버는 고유 세션을 생성한 뒤, "세션 아이디"를 쿠키에 담아 클라이언트에 로그인 성공 응답과 함께 전달
    3. 사용자의 행위로 클라이언트가 요청 작업을 서버로 보낼 때, "세션 아이디"를 함께 전송
    4. 서버는 "세션 아이디"를 가지고 인증 된 사용자 인지 확인 한 뒤 요청 작업을 수행

 

서버 구조 다이어그램
서버 구조 다이어그램

 


Q2 - Final . 토큰 기반 인증에 대해 설명해 주세요.

  • 정의 : 토큰은 '징표, 표시'이라는 의미의 영단어로 문맥에 따라 특정 권한을 나타냄,
             컴퓨터나 인터넷 환경에서 특정 권한이나 제어 정보를 담은 비트열 뜻하며,
             실무에서는 서버가 상태를 저장하지 않는(stateless) 인증 수단을 말함

  • 토큰 기반 인증의 특징
    • 서버는 토큰을 저장하지 않고 (간혹 리프레시 토큰은 저장 하기도 함) , 주고 받은 토큰이 자신이 만든 토큰인지 확인함
    • DB에 저장하지 않아 서버 자원을 덜 쓰고, 암호키만 있으면 생성 가능하여 확장성이 좋음 
    • 토큰의 암호키가 탈취 당할 경우, 후속 조치가 어려움 
    • 2가지 토큰을 사용하여 탈취 위험을 방지
      - 엑세스 토큰 : 사용자가 서비스를 사용하는데 필요한 "사용자 식별 정보, 권한"을 담음, 짧은 시간만 사용 가능 
      - 리프레시 토큰 : 엑세스 토큰 자동 재발급용(사용자의 편의성 높임), 장시간 사용 가능하게 셋팅 
  • 인증 방식 
    1. 사용자가 사이트를 방문하여 로그인 진행
    2. 서버는 사용자의 인증 상태를 토큰에 담고, 엑세스 토큰 / 리프레시 토큰 2가지를 모두 발급
      만든 토큰은 쿠키에 담아
       클라이언트에 로그인 성공 응답과 함께 전달
    3. 사용자의 행위로 클라이언트가 요청 작업을 서버로 보낼 때, 엑세스 토큰을 함께 전송
    4. 서버는 전달 받은 토큰을 검증하여, 인증 된 사용자 인지 확인 한 뒤 요청 작업을 수행
    5. 엑세스 토큰이 만료 되었을 때 사용자의 특정 요청이 들어오면,
      리프레시 토큰이 먼저 서버로 전달 되 토큰 검증을 거치고 새로운 [ 엑세스 토큰 / 리프레시 토큰 ] 발급. 
      새로 발급 받은 토큰 중 엑세스 토큰을 가지고 클라이언트가 요청 작업 진행

토큰 구조 다이어그램


 

다음 주에 또 만나요 🖐️

반응형