스프링 공부/이론 정리 3

[이론정리] DTO 공부하다가 나머지도 공부하게 되는 과정

DAO DAO(Data Access Object) 는 데이터베이스의 data에 접근하기 위한 객체이며, DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용한다. 현재까지 사용한 DAO는 Entity(데이터베이스에 저장되는 형태) 밖에 없는 것 같다. DTO DTO(Data Transfer Object) 는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체이다. 생성자와 getter정도만 쓰는 것 같다. DTO는 DAO가 그대로 외부에 나갈 때, 안전하지 않을 위험이 있기 때문에 사용한다고 이야기를 듣고 사용하다가, 이번에 어떤 용도인지 알게 되었다. 또한, 기능적 로직을 가지지 않게 해야겠다는 생각도 든다. VO VO(Value..

[이론정리] Json Web Token

진짜 어디든 있는 JWT, Json Web Token에 대해서 간단하게 정리를 해보려고 한다. 모든 내용은 JWT 공홈 설명에서 발췌했다. JWT란 무엇인가? Json Web Token, 이하 JWT란 일종의 전자 서명으로 사용자가 직접 가지고 있는 컴팩트한 토큰이다. 전자서명처럼 어떤 사용자인지 JWT를 통해 알 수 있다. HMAC알고리즘을 사용하며, RSA나 ECDSA같은 공개키와 개인키를 이용한 암호화가 이루어져 있다. JWT를 통해 그 속에 담긴 안에 있는 claim(주장, 혹은 내용)의 무결성을 검증할 수 있다. 비대칭키(공개키와 개인키가 서로 다르지만 이를 토대로 암호화, 복호화가 되는) 암호화를 통해 토큰이 만들어졌을 때, 해당 사용자만 토큰을 토대로 인증을 할 수 있게 한다. JWT를 언제..

[이론정리] 스프링 시큐리티의 체인 구조 및 동작 방식

필터 체인 부터 설명을 하자면, 스프링에는 많은 필터가 존재한다. 이를 하나씩 훑어보자. SecurityContextPersistenceFilter - 요청(request)전에, SecurityContextRepository에서 받아온 정보를 SecurityContextHolder에 주입한다. LogoutFilter - 유저의 로그아웃을 진행한다. UsernamePasswordAuthenticationFilter - 주어진 아이디와 비밀번호로 로그인 인증을 진행한다. DefaultLoginPageGeneratingFilter - 추가된 로그인 방식이 없다면, 스프링 기본으로 로그인을 처리한다. BasicAuthenticationFilter - HTTP 요청의 (BASIC)인증 헤더를 처리하여 결과를 Se..