들어가기 앞서.. JWT를 공부하기 전, 우선으로 Session 인증 방식과 Token 인증 방식에 대해 알아둘필요가 있다. [개념] Session 기반 인증 vs Token 기반 인증 [개념] Session 기반 인증 vs Token 기반 인증 인증 방식 종류 JWT에 대해 공부하기 전, 우선적으로 인증 방식 종류에 대해 알아보겠다. 크게 2가지 인증 방식이 있다. Session 기반 인증 Token 기반 인증 2가지 방식의 차이는 '인증 확인 증거를 어 soohykeee.tistory.com JWT란? JWT는 JSON Web Token으로, 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미한다. JWT 구성요소 JWT는 header, payload, signature로 나눠져 있다. * 헤더 ..
인증 방식 종류 JWT에 대해 공부하기 전, 우선적으로 인증 방식 종류에 대해 알아보겠다. 크게 2가지 인증 방식이 있다. Session 기반 인증 Token 기반 인증 2가지 방식의 차이는 '인증 확인 증거를 어디에 저장하느냐' 에 있다. Session 기반은 DB서버에, Token 기반은 Client측에 저장한다. 우리가 사용할 JWT는 Token 기반 인증 방법중 하나이다. Session 기반 인증 사용자의 정보를 서버측에 기억하고 있는 인증 방식으로, 이를 위해 Session과 Cookie가 사용된다. 사용자가 로그인을 하면, 해당 인증 정보를 서버의 세션 저장소에 저장하고, 사용자에게는 저장된 세션 정보의 식별자인 Sessin ID를 발급한다. 발급된 Session ID는 브라우저에 Cookie..
Spring Security 란 무엇인가? [개념] Spring Security 란 무엇인가? Spring Security란? Spring 기반의 애플리케이션의 보안(인증, 권한, 인가)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 인증(Authentication), 권한(Authorization)에 대한 부분을 Filter의 흐름에 따 soohykeee.tistory.com 웹 서비스에서 Spring Security는 MVC 패턴 이전에 'Filter' 로서 동작한다. Filter란 클라이언트 요청이 서블릿으로 가기 전에 먼저 처리할 수 있도록 Tomcat (WAS) 에서 지원해주는 기능이다. Servlet Container의 Filter Servlet 컨테이너의 Filter는..
Spring Security란? Spring 기반의 애플리케이션의 보안(인증, 권한, 인가)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 인증(Authentication), 권한(Authorization)에 대한 부분을 Filter의 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller 사이에 위치한다는 점에서 적용 시기의 차이가 있다. 또한, Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기에 개발자 입장에서는 일일이 보안 관련 로직을 작성해주지 않아도 된다는 장점이 있다. Spring Security ..
들어가기 앞서.. 프로젝트를 진행하던 중 @EntityGraph 어노테이션을 사용하는 것을 보고 해당 어노테이션을 사용하는 이유와 사용법이 궁금하여 찾아보았다. @EntityGraph 란? 연관관계가 있는 엔티티를 조회할 경우, 지연 로딩(LAZY) 으로 설정되어 있으면 연관관계에서 종속된 엔티티는 쿼리 실행시에 select 되지 않고, proxy 객체를 만들어 엔티티가 적용시킨다. 그 후, 해당 proxy 객체를 호출할 때 마다 그때 select 쿼리가 실행된다. 다시말해, 여러 테이블을 한번에 가져와야 하는 경우 불필요한 쿼리의 실행을 막기위해 LAZY 패치타입으로 설정하여 해결하는 경우가 있다. 하지만 일부 상황에서는 FetchJoin 해야하는 경우가 있다. 이를 하는 과정에서 JPQL이나 Quer..
JSON (JavaScript Obejct Notation) JSON은 JavaScript Object Notation 의 약자로, 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식을 말한다. 해당 문장을 직역하면 '자바 스크립트 객체 표기법' 으로, 데이터를 쉽게 교환하고 저장하기 위한 텍스트 기반의 데이터 교환 표준을 말한다. JSON은 텍스트 기반이기에 다양한 프로그래밍 언어에서 데이터를 읽고 사용할 수 있다. 또한 JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법과 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 방법이다. JSON 특징 서버와 클라이언트간의 교류에서 일반적으로 많이 사용. JavaScript 객체 표기법과 유사. JavaScript를 이용하여 JSON 형식의..