Spring 68

Json Web Token (JWT)

1. Cookie vs Session vs JWT Http의 가장 큰 특징은 비연결성, 무상태성이다. 즉, 한번 요청과 응답을 통하면 똑같은 일을 하기 위해서라도 동일한 정보를 전송하고 받아야 한다는 말이다. 이를 보완하기 위해 나온 기술이 Cookie와 Session이다. 이 장에서는 아주 핵심만 간략하게 설명하겠다. Cookie 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일. key - value형태. 장점 : client측에서 데이터를 저장 => server부담 없음 단점 : client에서 마음데로 조작이 가능. 용량이 작음 Session 일정시간동안 같은 사용자(정확하게 브라우저를 말한다)로 부터 들어오는일련의 요구를 하나의 상태로 보고 그 상태를 일정하..

Filter vs HandlerInterceptor - 간단 logging 기능 구현

저번에 Filter 와 HandlerInterceptor의 차이점에 대해서 공부를 해보았다. https://tech-monster.tistory.com/119 Filters vs HandlerInterceptors - 개념 오늘은 filter와 interceptor에 대해서 정리하려고 한다. 둘 다 기능은 비슷한데 어떤 차이가 있는지 잘 모르겠다! 그래서 이번 기회에 정리하려고 한다. 1. Filter J2EE의 표준 스펙 기능.(Springframework의 tech-monster.tistory.com 이번에는 이것들을 직접 구현해서 적용해볼 것이다. 1. Filter 적용해보기 filter를 먼저 적용해보려고 한다. 들어오는 모든 요청과 응답을 로그로 남겨볼 것이다. controller, LogFil..

Filters vs HandlerInterceptors - 개념

오늘은 filter와 interceptor에 대해서 정리하려고 한다. 둘 다 기능은 비슷한데 어떤 차이가 있는지 잘 모르겠다! 그래서 이번 기회에 정리하려고 한다. 1. Filter J2EE의 표준 스펙 기능.(Springframework의 기능이 아님). filter는 인터페이스로 선언되어있다. Oracle에서는 다음과 같이 설명한다. A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both. Filters perform filtering in the doFilter me..

Glory of Rest 란 뭘까? + HATEOS 적용기

최근에 필자가 HATEOS 의 기능에 대해 어쩌다가 알게 되었는데 이와 관련된 설명들을 찾아보았다. HATEOS는 무엇이며 HATEOS는 왜 쓰는 것일까? 그전에 알아야 하는 정보에 대해서 설명하고자 한다. https://martinfowler.com/articles/richardsonMaturityModel.html 한국어로 내가 훔쳐(?)서 적는 것보다 영어로 직접 읽기를 바라는 분들은 위의 출처 사이트를 참조하면 된다. 1. Glory of Rest 우선 Glory of Rest 가 무엇인지 알아야 할 것 같다. REST를 위한 영광의 단계라는데... REST를 잘 활용하기 위한 단계라고 보면 될 것 같다. REST 는 우선 많은 사람들이 알고 있겟지만 Representational State Tr..

Spring Web Socket 적용하기

웹 소켓이 무엇인가? docs.spring.io에서 Spring web socket을 어떻게 사용하는지 찾고 있는데 이에 대한 설명도 함께 수록되어 있었다. 출처 : https://docs.spring.io/spring-framework/docs/5.0.4.RELEASE/spring-framework-reference/web.html#websocket 소개에는 WebSocket의 응답 및 요청 protocol에 대해서 설명해준다. 간략하게 요청 형식을 보자면 다음과 같다. A WebSocket interaction begins with an HTTP request that uses the HTTP "Upgrade" header to upgrade, or in this case to switch, to t..

Spring VS Spring boot

필자는 inflearn의 강의에 중독될 만큼 많은 강의를 사서 수강하고 있다. (나는야 욕심쟁이... 올 ㅋ) 근데 문득 든 궁금증인데 왜 다들 Spring boot 를 이용해서만 강의를 할 까 하는 생각이 들었다. 확실히 Spring boot 가 프로젝트를 생성하고 사용하는데 기본적인 설정을 많이 해줘서 편하기 때문에 하는 것 같은 생각이 들긴 했다. 이것이 맞는 이유인지도 궁금하고 진짜 차이점이 무엇인지 알아보기로 했다. 구글에 한번 검색을 해봤다. ... Spring ... vs Spring ... boot ... 가장 상단에 노출된 사이트에 한번 들어가보니 정리가 잘 되있다. 내용 발췌 Spring란? What is Spring? Spring is a lightweight application f..

@Json~~~ 관련 annotation 정리

우리가 클래스를 하나 만들었다고 가정하자. ... @Data @AllArgsConstructor @NoArgsConstructor @Entity public class Users { @Id @GeneratedValue private Integer id; @Size(min = 2, message="Name은 2글자 이상 입력해 주세요.") private String name; @Past private Date joinDate; private String password; private String ssn; } 위의 정보를 바탕으로 사용자 정보를 조회하고 싶은데 조회할 때 마다 아니... password가 같이 넘어오게 된다. 이러한 경우 조회시 필드에서 제외하고 싶은 성분을 @JsonIgnore 어노테이션..

Bean이란?

Bean이란 무엇인가? 콩인가? (노잼...) Spring으로 개발을 하다보면 Bean이라는 말을 굉장히 많이 사용할 것이다. (그렇다고 해줘!) 필자는 어떤 것을 이해했다는 기준을 한줄로 정리할 수 있느냐로 보고있다. Bean은 Spring Framework의 핵심 개념이라고 하는데 과연 정확히 한줄로 어떻게 설명할 수 있을까? 그럴 수 있었으면 내가 이것을 작성하지 않았을 것이다. (머쓱...) 그래서 이번 블로그 정리를 통해 Bean이란 무엇이고 이를 어떻게 관리하고 등록해서 사용할 수 있는지 정리하려고 한다. (빵긋 ^^) 1. The Definition of Spring Bean 이에 대한 정보를 baeldung 사이트에서 확인할 수 있었다. 참고 : https://www.baeldung.com..

MVC 어노테이션 정리

필자는 최근에 spring 강의를 뒤져가며 공부를 다시 하고 있다. 그전에는 그냥 사용하기에 급급했기에 비슷한 어노테이션이 나오게 되면 차이점을 잘 몰랐다. 그렇기에 이렇게 정리를 하고자 한다. 1. @Controller vs @RestController @Controller 는 Spring MVC (Model - View - Controller)패턴에서 View(화면)을 반환할 때 사용하는 어노테이션이다 . 반환시에 논리적인 view 를 해당 위치에 있는 view template을 찾아 화면을 구성해준다. @RestController 는 Spring MVC 패턴에서 화면이 아닌 데이터를 반환하고 싶을 때 사용한다. 사실 RestController도 결국 열어보면 @Controller + @Respons..

스프링부트 & jpa1 / 2 - 요구사항 분석

개발을 하기 전에 무엇을 개발할지 알아야 한다 개발 예정인 화면이다! 회원, 주문, 상품의 관계 - 회원은 여러 상품을 주문할 수 있다. 그리고 한 번 주문할 때 여러 상품을 선택할 수 있으므로 주문과 상품은 다대다 관계다. 하지만 이런 다대다 관계는 관계형 데이터베이스는 물론이고 엔티티에서도 거의 사용하지 않는다. 따라서 그림처럼 주문상품이라는 엔티티를 추가해서 다대다 관계를 일대다, 다대일 관계로 풀어냈다. 근데 다대다 관계는 쓰면 안돼니 일대다, 다대일로 풀어낼 것임

Spring 2021.07.26