inflearn logo
강의

Course

Instructor

Spring Boot Security & JWT Lecture

Spring Boot Security Part 8 - Two Types an Authentication Object Can Have

세션 인증방식이 REST 원칙에 위배되는 건가요?

337

loca8690586

9 asked

0

세션 인증방식이 REST 원칙에 위배되는 건가요?

세션은 stateful합니다.

rest는 stateless를 지향하고요

그렇다면 세션 인증방식이 REST 원칙에 위배되는 건가요?

근데 네이버나 이런사이트들도 세션을 쓰는거 같은데

어떻게 개념을 정리해야 하는지 궁금합니다

spring spring-security jwt

Answer 1

1

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

네, 맞습니다. 세션을 기반으로 한 인증방식은 REST의 기본 원칙 중 하나인 무상태성(Statelessness)에 위배됩니다. REST 아키텍처는 클라이언트와 서버 간의 상호작용이 이전 상태에 의존하지 않아야 한다고 규정하고 있습니다. 즉, 각 요청은 필요한 모든 정보를 포함하고 독립적으로 처리될 수 있어야 합니다. 세션 인증은 서버에 클라이언트 상태 정보를 저장하여 이후 요청들이 이 상태 정보를 참조하는 방식이므로, 이는 REST의 무상태성 원칙과 상충됩니다.

그럼에도 불구하고, 네이버와 같은 많은 사이트들이 세션 기반 인증을 사용하는 이유는, 실제 웹 애플리케이션 개발 시에 사용자의 인증 상태를 관리할 필요가 있기 때문입니다. 이를 효율적으로 관리하기 위해 세션 인증을 사용하는 것이며, 이 경우 RESTful 서비스의 원칙을 완전히 준수하기 어렵습니다.

대안으로, REST 원칙을 더 잘 준수하는 인증 방식으로는 토큰 기반 인증 방식이 있습니다. 예를 들어 JWT(Json Web Token)와 같은 토큰 인증 방식은 서버가 사용자 상태를 저장할 필요 없이, 각 요청에 토큰을 포함시켜 인증 정보를 요청과 함께 전달합니다. 이렇게 하면 각 요청이 독립적으로 처리될 수 있어 REST 원칙에 보다 부합합니다.

개념을 정리하자면, 세션 인증방식은 편리하고 널리 사용되지만 REST 원칙에 완전히 부합하지는 않으며, 보다 RESTful한 애플리케이션을 개발하고자 할 때는 토큰 기반 인증 방식을 고려해 볼 수 있습니다.

JWT를 구현한 다음 이 API를 호출해서 사용하는 것은 프론트엔드 쪽에서 하는 역할인가요?

0

94

1

Jwt쓰면 스프링시큐리티는 필수적으로 사용해야하나요?

0

401

1

13:23 system.out 출력문이 다르게 나옵니다.

0

129

1

수료증 문의

0

226

2

9분대에 질문이 있습니다 !

0

114

1

password 비교를 하지 않았는데 어떻게 인증이 통과된 건가요?

0

320

1

이전 강의 참고하라는 말씀

0

253

1

강의 실습하다가 막히는 분들 참고(2024년8월 기준)

2

1116

2

구글 소셜 로그인 302

0

200

1

오류 문의 _ org.springframework.orm.jpa.JpaSystemException: could not deserialize

1

584

1

[자바] 시큐리티 Config 참고

13

953

1

이론강의

0

280

1

SpringSecurity JWT 로그인 URL 2개 설정하는 방법

0

486

1

2024.06기준) 최근 SecurityConfig 설정 문의

0

921

3

구글 로그인시 authentication이 null 값이라고 에러가 발생합니다.

0

677

2

특정 url필터 거는 방법 이슈

0

422

1

강사님께서 말씀하시는 시큐리티세션이 SecurityContext인가요?

0

277

1

25강 마지막 테스트에서 오류

1

1044

2

jwt를 저장하는 위치에 궁금한 점이 있습니다.

0

298

1

mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데

0

694

1

jwt와 실제데이터의 관계

1

241

1

jwt 와 세션ID의 관계

1

310

1

SecurityConfig에서 세션 설정, 인가 설정

0

415

1

섹션2 9강까지 듣고 질문이 있습니다. 스프링부트 버전을 다운그레이드해도 될까요?

0

393

1