• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    미해결

세션은 Stateless 에 반하는 방법인데 어떻게 생각하시나요

24.03.05 20:02 작성 조회수 126

0

HTTP 특성에 Stateless 에 의미를 살펴보면 세션은 적절하지 않은 방법이라고 생각이 들었는데 그러면 모든 인증 방법을 토큰기반인증방법으로 하는게 좋은 것 일까요?

선생님의 의견이 궁금해서 질문해봅니다

 

답변 1

답변을 작성해보세요.

0

안녕하세요 opix님ㅎㅎ

그러면 모든 인증 방법을 토큰기반인증방법으로 하는게 좋은 것 일까요?

>> 아닙니다. 참고로 네이버공식 홈페이지는 토큰기반이 아니라 세션기반으로 로그인을 관리합니다.

image

물론 네이버 내의 하부서비스에서는 토큰 기반도 이용하지만요.

이처럼 많은 곳에서 세션기반으로 인증하는 곳도 많습니다. 기술적으로 틀리지 않는 방법입니다. 두가지의 방법이 있다고 보시면 됩니다.

 

HTTP 특성에 Stateless 에 의미를 살펴보면 세션은 적절하지 않은 방법

>> 그것보다는 그저 HTTP 특성 자체가 stateless하다라는 것만으로 받아들이시면 될 것 같습니다. 어떤 기술에는 어떤 특징이 있다. 이렇게요.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


opix0306님의 프로필

opix0306

질문자

2024.03.06

네 답변감사합니다.
그럼 프로젝트에 세션인증방식, 토큰인증방식을 선택하는 기준은 보통 보안적인 측면을 생각하거나, 서버 확장성을 생각해서 세션,토큰인증방식을 선택하나요??
인증방식에 선택기준이 궁금합니다

답변을 늦게 드려 죄송합니다.

답글 - 답글 자체는 QA 리스트에 안뜨기 때문에 확인을 매번 해야해서 간혹 놓치는 경우가 있습니다 ㅠ

 

세션인증방식, 토큰인증방식을 선택하는 기준

>> 네 보안, 확장성 모두 생각합니다. 다만 결과적으로 둘 다 비슷하고 개발팀내부에서 회의를 통해 전에 토큰을 해봤는데 쉽더라 또는 좋더라 하는 경험을 기반으로 선택하곤 합니다.

다만 차이를 말하라고 할 때는 다음부분을 얘기하시면 됩니다.

  • 보안: 민감한 정보를 다루는 경우, 서버 측에서만 인증 상태를 관리하는 세션 방식이 더 안전할 수 있습니다. 하지만, 토큰 방식도 올바르게 구현되면 충분히 안전하게 사용할 수 있습니다.

  • 확장성: 대규모 분산 시스템이나 마이크로서비스 아키텍처를 도입할 계획이 있는 경우, 양한 도메인, SPA, 앱 등에서 사용할 경우 토큰 인증 방식이 더 유리합니다. 클라이언트는 요청할 때마다 토큰을 포함하여 보냄으로써 자신을 인증합니다. 서버는 토큰을 검증하여 요청에 응답합니다. 이 과정에서 토큰서버는 세션처럼 사용자의 인증 상태를 별도로 저장하거나 관리할 필요가 없습니다. 따라서 확장함에 따라 별도로 세션을 똑같이 공유해야한다거나 하는 등의 추가적인 코스트가 없기 때문에 이부분이 세션보다 더 좋습니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.