IT/개발자 면접

Token과 Session

Collin 2023. 12. 10. 10:00
반응형

 

 

 

1. Token:

  • 특징:
    • 상태 정보를 저장하지 않음: Token은 클라이언트 측에서 상태 정보를 저장하지 않습니다. 각 요청은 자체적으로 모든 필요한 정보를 가지고 있어야 합니다.
    • 자체 포함성: Token은 클라이언트에 대한 모든 정보를 자체적으로 포함하며, 서버에서 상태 정보를 저장할 필요가 없습니다.
    • JWT 등 활용: 주로 JWT(JSON Web Token)와 같은 토큰 기반 인증 시스템에서 사용됩니다.
  • 장점:
    • 확장성: 서버의 상태를 유지하지 않기 때문에 서버 확장이 용이합니다.
    • 클라이언트와 서버의 독립성: 서버와 클라이언트 간의 독립성이 유지되어 서로에게 영향을 덜 주고 확장이 가능합니다.
  • 단점:
    • 상태 관리 어려움: 클라이언트에서 상태 정보를 모두 관리하므로, 클라이언트의 상태를 관리하는 부담이 있을 수 있습니다.
    • 보안 이슈: 클라이언트에서 관리되므로 클라이언트의 보안이 강화되어야 합니다.

 

 

 

2. Session:

  • 특징:
    • 상태 정보를 저장함: Session은 서버 측에 상태 정보를 저장하고 클라이언트에는 세션 ID만을 전달합니다. 클라이언트는 세션 ID를 이용하여 서버의 상태 정보에 접근합니다.
    • 서버 메모리 사용: 서버 측에서 상태 정보를 유지하므로 서버 메모리를 사용합니다.
    • 쿠키 등을 통한 세션 ID 전달: 주로 쿠키를 사용하여 세션 ID를 클라이언트에 전달합니다.
  • 장점:
    • 상태 관리 용이: 클라이언트가 아닌 서버에서 상태 정보를 관리하므로 클라이언트에서 상태를 따로 관리하지 않아도 됩니다.
    • 보안성: 상태 정보가 서버에 저장되므로 클라이언트에 노출되는 정보가 적습니다.
  • 단점:
    • 서버 확장 어려움: 서버 측에서 상태를 유지하므로 서버 확장이 어려울 수 있습니다.
    • 클라이언트와 서버의 종속성: 서버와 클라이언트 간의 종속성이 있어 서로에게 영향을 주며, 확장이 어려울 수 있습니다.

 

 

비교 및 선택:

  • Token 선택 시:
    • 클라이언트와 서버 간의 독립성이 중요한 경우.
    • 서버 확장이 필요한 경우.
    • 상태 정보를 클라이언트에서 관리할 수 있는 경우.
  • Session 선택 시:
    • 서버 측에서 상태 정보를 안전하게 관리하고 싶은 경우.
    • 서버와 클라이언트 간의 종속성이 허용되는 경우.
    • 서버 확장이 상대적으로 적은 규모의 서비스인 경우.

 

반응형