[Spring] DTO는 왜 써야 하나?
·
Study/Spring
DTO (Data Transfer Object) DTO란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans) DTO는 왜 필요할까? 1. Entity 2. Service 3. Dto 4.Controller 위 예제 코드의 테스트 코드는 Posts라는 엔티티를 생성하는 코드이다. 이를 위해 맨 처음에 PostsSaveRequestDto라는 Dto 객체를 빌더 패턴으로 생성하고 Dto를 컨트롤러에게 던져준다. 컨트롤러는 해당 Dto를 다시 Service에게 넘겨주고, Service 단에서 JPA를 이용하여 생성된 객체를 저장한다. 그런데 DTO와 Entity는 거의 똑같은 것 같은데, 왜 변환을 해서 사용해야 하며, 그렇다면 언제 DTO가 필요할까? Entity클래스와 거의 유사한 형태임에도 DT..
[WEB] JWT 토큰 인증 이란?
·
Study/WEB
Cookie 인증 쿠키는 Key-Value 형식의 문자열 덩어리이다. 클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다. 각 사용자마다 브라우저에 정보를 저장하니 고유 정보 식별이 가능한 것이다. Cookie 인증 방식 브라우저(클라이언트)가 서버에 요청(접속)을 보낸다. 서버는 클라이언트의 요청에 대한 응답을 작성할 때, 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의 Set-Cookie에 담는다. 이후 해당 클라이언트는 요청을 보낼 때마다, 매번 저장된 쿠키를 요청 헤더의 Cookie에 담아 보낸다. 서버는 쿠키에 담긴 정보를 바탕으로 해당 요청의 클라이언트가 누군지 식별하거나 정보를 바탕으로 추천 광고를 띄..
[Spring] Spring Security + JWT 로그인
·
Study/Spring
JWT = Json Web Tokens = Json 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 Web Token JWT 구성 Header : Signature를 해싱하기 위한 알고리즘 정보들이 담겨있다. Payload : 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용들이 담겨있다. Signature : 토큰의 유효성 검증을 위한 문자열이 담겨있다. 장/단점 장점 중앙의 인증서버, 데이터 스토어에 대한 의존성이 없다. -> 시스템 수평 확장에 유리 Base64 URL Safe Encoding을 이용하기 때문에 URL, Cookie, Header를 모두 사용 가능한 범용성을 가지고 있다. 단점 Payload의 정보가 많아지면 네트워크 사용량이 증가한다. 이를 고려해서 데이..