Spring

[Spring] RestAssured로 API 테스트 진행하기 0. 들어가기 전에 API를 테스트하기 위해 RestAssured를 사용하게 되었는데, ''응답 값을 어떻게 테스트할까?' 하는 생각으로 사용 방법을 찾아봤습니다. 테스트 방식으로 REST-assured에서 나온 것처럼 then()절 뒤에 body()를 사용해서 테스트하는 방식과 JsonPath를 사용하는 방식이 있습니다. body()를 사용하는 방식은 한 메서드의 길이가 길어지고 주로 사용하는 given / when / then 패턴을 사용하기 어렵습니다.. 그래서 이 글에서는 JsonPath를 사용하여 테스트를 진행하는 방식을 소개하겠습니다. 1. RestAssured란? REST 기반 서비스를 간단히 테스트하기 위한 Java DSL(Do..
[Spring] Spring ArgumentResolver란? 1. ArgumentResolver란? Controller로 들어온 파라미터를 가공하거나 수정 기능을 제공하는 객체 주로 컨트롤러 단에서 중복 코드를 제거하려는 목적으로 사용 HandlerMethodArgumentResolver를 구현한 ArgumentResolver를 WebMvcConfig를 구현한 설정 파일에 등록하여 사용 2. 동작 과정 인터셉터 이후에 동작을 함. 인터셉터는 컨트롤러를 부를수 있는지 유무를 검사하는 반면에 ArgumentResolver는 컨트롤러가 원하는 객체를 생성해서 반환해준다.동작 과정 3. 인터페이스 public interface HandlerMethodArgumentResolver { boolean suppor..
[Spring] 스프링 필터(Filter) vs 인터셉터(Interceptor) NextStep 강의를 들으면서 필터와 인터셉터를 접할 일이 생겼다. 필터와 인터셉터는 기본적으로 비슷한 역할을 한다는 점을 알고있었다. 하지만 주어진 코드를 접해봤는데, 역할별로 필터와 인터셉터를 구별하여 사용한 것이 보였다. 어떤 기준을 가지고 구별을 했는지 알아보기 위해, 둘의 특성과 차이점을 정리하고자 한다. 1. 필터(Filter)란? J2EE 표준 스펙 기능 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너로 관리 서블릿에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있게 하는 기능(ex) 로그인 유무 확인) request, response 객체를 다른 객체로 바꿀 수 있다. ..
[Spring] Jar vs War spring의 초기 설정에 도움을 주는 start.spring.io에서 Jar와 War를 볼 수 있고, 보통은 Jar를 선택해서 개발을 진행한다. 그렇다면 Jar는 무엇이고 또 War는 무엇일까? 1. Jar? War? Java를 사용하여 만든 소프트웨어를 배포하기전에 하는 패기징 방식 두 개의 packaging 방식 모두 Java의 jar툴을 이용하여 생성된 아카이브(압축) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성파일 등)들을 패키징해주는 것이 주 역할이다. 1.1 Jar(Java Archive) Class와 같은 설정 파일들을 압축해서 만들어진 하나의 어플리케이션 혹은 라이브러리 내장 톰캣(WAS)을 가지고 있음 1.2 Wa..
[Spring] Spring 검증 기능2 (Bean Validation) 1. Bean Validation 어노테이션을 사용하여 간단한 필드 검증 로직을 할 수 있게 하는 것 자바 기술 표준 중 하나 검증 어노테이션과 여러 인터페이스의 모음 일반적으로 hibernate-validator 구현체 사용 → ORM과 관련X spring-boot-starter-validation 라이브러리를 의존관계에 추가하여 사용 2. 검증 어노테이션 @NotNull : null을 허용하지 않음 @NotBlank : 빈값 혹은 공백만 있는 경우를 허용하지 않음 @Range(min = 10, max = 100) : 범위 안의 값이어야 함 @Max(100) : 최대 100까지 허용 @Min(100) : 최소 100까지 허용 이외..
[Spring] Spring 검증 기능1 (BindingResult, Validator) 1. BindingResult 스프링이 제공하는 검증 오류를 보관하는 객체 Errors 인터페이스를 상속받는 인터페이스 Errors : 단순한 오류 저장과 조회 기능 BindingResult : Errors + 추가 기능(ex) addError()) 오류가 발생하면 사용자가 입력한 값을 담아주는 역할도 가능 오류를 확인할 파라미터 뒤에 써주면 자동적으로 아래와 같은 일들을 해줌 특정 필드에 오류가 발생하면 FieldError 객체를 생성해서 BindingResult에 자동으로 담아 줌 특정 필드를 넘어서는 오류가 발생하면 ObjectError 객체를 생성해서 BindingResult에 자동으로 담아 줌 @ModelA..
[Spring] HttpMessageConverter 1. HttpMessageConverter란? 스프링 프레임워크에서 제공하는 인터페이스 package org.springframework.http.converter; public interface HttpMessageConverter { //canXXX는 해당 class 타입과, 미디어타입을 체크한다. boolean canRead(Class clazz, @Nullable MediaType mediaType); boolean canWrite(Class clazz, @Nullable MediaType mediaType); List getSupportedMediaTypes(); T read(Class
[Spring] Spring MVC 구조 1. MVC 패턴이란? Business logic과 Presentation logic을 분리하기 위해서 고안된 구조 모델(Model) - 뷰(View) - 컨트롤러(Controller)로 이루어져 있음 모델(Model) 데이터 베이스와 연동하여 데이터를 다룸 비즈니스 로직을 다룸 ex) DAO, Service 클래스 뷰(View) 모델이 처리한 결과를 바탕으로 화면을 출력 ex) HTML, JSP 컨트롤러(Controller) 데이터와 비즈니스 로직 사이으이 상호 동작을 관리 2. Spring MVC 구조 기본적으로 Front Controller 패턴이다 Front Controller(여기선 Dispatcher Servlet)가 요청을 받고 적절한 handler들..
쿠엔크
'Spring' 태그의 글 목록 (2 Page)