SPRING 74

[SpringMVC] ArgumentResolver 활용하기

[SpringMVC] HTTP 메시지 컨버터 동작원리 JSON 데이터를 JAVA 환경에서 사용하는 방법이다. HTTP Body 영역의 데이터를 InputStream 객체로 이진데이터를 가지고 온 후, 인코딩하고 문자열로 변환하면 JAVA 환경에서 사용가능한 데이터 타입이 된 lordofkangs.tistory.com 지난 포스팅에서 ArgumentResolver의 개념을 다루어보았다. Controller는 비즈니스 로직을 처리하는 클래스로, 필요한 데이터를 파라미터로 요구한다. Controller(Handler)를 실행하는 주체는 HandlerAdapter인데, HandlerAdapter는 파라미터에 맞는 데이터를 넘겨야 한다. 그러므로 다양한 파라미터에 대응할 수 있는 모듈이 필요한데, 그것이 Argu..

SPRING/Spring MVC 2023.08.31

[SpringMVC] 스프링 인터셉터(Interceptor)란?

[SpringMVC] 서블릿 필터(Filter)란? [SpringMVC] 서블릿 세션(Servlet Session) 이용하기 [SpringMVC] Session( 세션 )이란? [SpringMVC] Cookie ( 쿠키 ) 클라이언트가 웹페이지에 접근하려고 한다. 웹페이지는 회원만 접근 가능하므로 서버는 클라이언 lordofkangs.tistory.com 지난 포스팅에서 공통 관심사 로직을 처리를 위한 필터(Filter)에 대해서 다루어 보았다. 스프링도 필터와 같은 기능을 하는 모듈을 제공하는데, 그것이 인터셉터(Interceptor)이다. 인터셉터(Interceptor) HTTP 요청이 들어오면 위 그림과 같은 순서로 처리된다. 인터셉터는 서블릿과 컨트롤러 사이에 위치하여 공통관심사를 처리한다. 관심..

SPRING/Spring MVC 2023.08.31

[SpringMVC] 서블릿 필터(Filter)란?

[SpringMVC] 서블릿 세션(Servlet Session) 이용하기 [SpringMVC] Session( 세션 )이란? [SpringMVC] Cookie ( 쿠키 ) 클라이언트가 웹페이지에 접근하려고 한다. 웹페이지는 회원만 접근 가능하므로 서버는 클라이언트 요청에 로그인 페이지로 응답한다. 클라 lordofkangs.tistory.com 지난 포스팅에서 세션을 다루며 로그인에 대해서 알아보았다. 클라이언트가 서버에 ID/Password를 전송하면, 서버는 회원여부를 검사하고, 회원이 맞으면 세션을 생성하고 클라언트에게 세션ID가 담긴 쿠키를 전달한다. 쿠키는 인증수단으로 ID/Password를 대신한다. 그러므로 서버는 쿠키를 검증하는 로직이 있어야 한다. 쿠키에 담긴 세션ID가 유효한 세션인지 ..

SPRING/Spring MVC 2023.08.31

[SpringMVC] 서블릿 세션(Servlet Session) 이용하기

[SpringMVC] Session( 세션 )이란? [SpringMVC] Cookie ( 쿠키 ) 클라이언트가 웹페이지에 접근하려고 한다. 웹페이지는 회원만 접근 가능하므로 서버는 클라이언트 요청에 로그인 페이지로 응답한다. 클라이언트는 ID와 비밀번호를 입 lordofkangs.tistory.com 지난 포스팅에서 세션에 대해서 알아보았다. JAVA는 서블릿 패키지에서 세션을 사용할 수 있도록 제공하고 있다. LoginController @PostMapping("/login") public String login(@Valid @ModelAttribute LoginForm form, HttpServletRequest request){ // DB에서 회원정보 조회 [ 비즈니스 로직 ] Member logi..

SPRING/Spring MVC 2023.08.30

[SpringMVC] Session( 세션 )이란?

[SpringMVC] Cookie ( 쿠키 ) 클라이언트가 웹페이지에 접근하려고 한다. 웹페이지는 회원만 접근 가능하므로 서버는 클라이언트 요청에 로그인 페이지로 응답한다. 클라이언트는 ID와 비밀번호를 입력하고 서버로 전송한 lordofkangs.tistory.com 지난 포스팅에서 쿠키(Cookie)를 다루어 보았다. 쿠키는 보안상의 문제가 많다. 언제든 탈취가 가능하기 때문이다. 보안의 문제가 많지만 쿠키는 상태 유지를 위해 필요한 요소이다. 안전한 쿠키 사용을 위해 서버에 세션(Session)이 도입되었다. 세션(Session) 세션의 존재 이유는 안전한 쿠키 사용에 있다. 안전하게 쿠키를 사용하려면 쿠키데이터는 아무도 예측할 수 없는 랜덤한 데이터여야 하고 탈취된 쿠키가 사용될 수 없도록 만료시..

SPRING/Spring MVC 2023.08.30

[SpringMVC] Cookie ( 쿠키 )

클라이언트가 웹페이지에 접근하려고 한다. 웹페이지는 회원만 접근 가능하므로 서버는 클라이언트 요청에 로그인 페이지로 응답한다. 클라이언트는 ID와 비밀번호를 입력하고 서버로 전송한다. 서버는 ID와 비밀번호를 토대로 회원여부를 검사하고 회원이 맞다면 웹페이지 접근을 허용한다. 이것이 '로그인(Log-In)'이다. 그런데 한 가지 문제가 있다. 클라이언트와 서버는 HTTP 프로토콜로 통신한다. HTTP는 상태 비저장(Stateless) 프로토콜이다. 전화 연결처럼 한번 연결되면 상태가 유지되는 것이 아니다. 그저 클라이언트에서 서버로 데이터만 전송되고 모든 연결상태는 사라진다. 그러므로 로그인으로 특정 페이지에 접근해도 다른 페이지로 이동하려면 또 다시 로그인을 해야한다. 그래서 HTTP의 Stateles..

SPRING/Spring MVC 2023.08.30

[SpringMVC] 검증(Validation)(8) - Bean Validation ( 폼객체 )

[SpringMVC] 검증(Validation)(7) - Bean Validation ( groups ) [SpringMVC] 검증(Validation)(5) - Bean Validation [SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - Bindi lordofkangs.tistory.com 지난 포스팅에서 하나의 객체에 서로 다른 유효성 검사가 필요한 경우를 다루어 보았다. Bean Validation은 groups 설정을 제공하여, 하나의 클래스에 서로 ..

SPRING/Spring MVC 2023.08.30

[SpringMVC] 검증(Validation)(7) - Bean Validation ( groups )

[SpringMVC] 검증(Validation)(5) - Bean Validation [SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validati lordofkangs.tistory.com 지난 포스팅에서 Bean Validation에 대해서 다루어보았다. Bean Validation은 객체에 주입된 데이터를 검증하는 어노테이션 기반 검증 방식이다. 그런데 여기에는 한 가지 문제가 있다. It..

SPRING/Spring MVC 2023.08.30

[SpringMVC] 검증(Validation)(6) - Bean Validation ( 에러 코드 )

[SpringMVC] 검증(Validation)(5) - Bean Validation [SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validati lordofkangs.tistory.com 지난 포스팅에서 Bean Validation을 다루었다. Bean Validation은 어노테이션 기반으로 유효성 검사를 진행하는 검증 방식이다. 검증 과정에서 발견한 에러는 BindingResult에 담긴..

SPRING/Spring MVC 2023.08.29

[SpringMVC] 검증(Validation)(5) - Bean Validation

[SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validation)하기(1) 클라이언트로부터 요청(Request)이 들어 lordofkangs.tistory.com 지난 포스팅에서는 @Validated 어노테이션으로 검증을 구현해보았다. 유효성 검사를 위해, Validator 인터페이스 구현체를 만들고 검증 로직도 작성하였다. 그러나 대부분의 검증 로직은 비슷한 경우가 많다. 빈값인가? Null..

SPRING/Spring MVC 2023.08.29