[1] 강의 수강 이유 : React + Spring Security + JWT 연동을 위해 검색 중 발견 [2] 강의 수강 소감 a. Security + JWT 가 어떻게 돌아가는 지 큰 그림을 그릴 수 있게 되었음 b. 사운드, 발성이 좋아서 집중이 잘 됨 c. 정말 딱 필요한 뼈대가 되는 내용만을 알려주심. 구글 검색 좀 해본 사람이면 알겠지만, 스프링 시큐리티, 토큰 관련 인터페이스는 구현해서 사용하기 나름임. 회사마다, 상황마다, 서버마다, DB 마다, 엔티티 설계마다 구현하는 방식은 저마다 완전히 다를것임. 아무것도 모른채로 무작정 구글검색부터 했을 때 멘붕은 인터페이스 구현부가 저마다 다 다른 점에 있었음. 이 강의를 통해서 쓸데없는 수식어 다 제외하고 정말 core 가 되는 개념을 잡을 수 있음. d. 강의 마지막 부분에 리턴값 전역변수로 쓸 수 있는 것 개꿀팁 [3] 며칠 삽질 후 느낀 나같은 핵초보가 헤깔릴만한 부분 a. 사용자의 로그인 -> Authentication 객체에 저장 -> 이 친구는 SecurityContextHolder 안에 SecurityContext 안에 존재한다. (정보의 은닉화 때문일까?) b. token 에 대한 정보를 JWT 객체로 전달할지, 토큰 값만 String 으로 전달할지에 따라 코드가 조금 바뀜 c. 수명이 긴 JWT 특성 상 탈취의 위험이 있어 보안 상 access token / refresh token 두개가 필요한데 강의에는 없으니 검색필수. d. SecurityConfig 작성 시 WebSecurityConfigurerAdapter 이거 deprecated 되었기 때문에 SecurityFilterChain 을 직접구현해야함. 근데 사실상 코드는 동일함. e. signature 를 가진 JWT 를 JWS 라고 한다. 이 외에도 여러가지 종류가 있음. parseClaimsJws 를 자동완성 덕문에 parseClaimsJwt 로 해서 오류가 나는걸 찾느라 한시간 넘게 걸림 ㅅㅂ f. SecurityContext 는 해당 스레드에 저장된다. 멀티스레드 환경에서는 AsyncConfigurerSupport 등을 상속받아서 SecurityContext 를 propagate 시켜야 한다. (방법은 여러가지) g. JWT 를 구성하는 방법도, 불러오는 방법도 여러가지임. 고로 JWT, Authentication 클래스 구조를 정확하게 알아야 다른 사람들이 써놓은 다른 코드들이 결국엔 같은 말이구나 를 이해할 수 있음 h. access token / refresh token 부분 구현 방식도 제각각이라 정답이 없음 i. 그래서 token 값 저장은 어디다가 하는게 좋을까? 검색해보니 Redis 에 많이들 저장한다고 하고 나는 그냥 간단한 개인 프로젝트기 때문에 MySql 에 저장함 검색하면 정말 수십 수백가지의 자료가 있지만 처음부터 끝까지 가장 중요한 기초를 짚어주는 건 없었는데 큰 도움 받고 갑니다~~