본문 바로가기
반응형

{ Backend, Server }/Spring MVC15

[Spring MVC] 스프링 타입 컨버터 1. 타입 컨버터의 사용 타입 컨버터는 org.springframework.core.convert.converter.Converter 인터페이스를 구현하면 된다. package org.springframework.core.convert.converter; public interface Converter { T convert(S source); } 예시) Integer타입을 String타입으로 변환해주는 컨버터 @Slf4j public class IntegerToStringConverter implements Converter { @Override public String convert(Integer source) { log.info("convert source={}", source); return Str.. 2022. 5. 23.
[Spring MVC] API 예외 처리 HTML 페이지의 경우 4xx, 5xx와 같은 오류 페이지만 있으면 대부분의 문제를 해결할 수 있다. 그런데 API의 경우에는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 한다. 가장 태초의 방식(서블릿 오류페이지 방식) @Slf4j @RestController public class ApiExceptionController { @GetMapping("/api/members/{id}") public MemberDto getMember(@PathVariable("id") String id) { if (id.equals("ex")) { throw new RuntimeException("잘못된 사용자"); } return new MemberDto(id, "hello " + .. 2022. 5. 1.
[Spring MVC] 예외 처리와 오류 페이지 스프링이 아닌 순수 서블릿 컨테이너의 예외 처리 방법 - 서블릿은 2가지 방식의 예외 처리를 지원 1. Exception(예외) 2. response.sendError(HTTP 상태코드, 오류 메시지) - 예외의 전달 과정 1. Exception WAS(여기까지 전파) 2022. 4. 29.
[Spring MVC] 필터, 인터셉터 필터 필터란? 필터를 적용하면 서블릿 호출 전에 호출된다. 필터의 흐름은 다음과 같다. HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 필터를 통해 웹과 관련된 공통의 관심사를 처리할 수 있다. 필터 제한 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 //로그인 사용자 HTTP 요청 -> WAS -> 필터(적절하지 않은 요청이라 판단, 서블릿 호출X) //비 로그인 사용자 필터 체인 HTTP 요청 -> WAS -> 필터1 -> 필터2 -> 필터3 -> 서블릿 -> 컨트롤러 필터는 체인으로 구성되는데, 중간에 필터를 자유롭게 추가할 수 있다. 예를 들어서 로그를 남기는 필터를 먼저 적용하고, 그 다음에 로그인 여부를 체크하는 필터를 만들 수 있다 필터 생성 필터를 사용하려.. 2022. 2. 4.
[Spring MVC] 쿠키와 세션 쿠키의 기본 개념은 생략하고, 쿠키에는 영속 쿠키와 세션 쿠키가 있다. 영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지 세션 쿠키 : 만료 날짜 생략하면 브라우저 종료 시까지만 유지 쿠키 생성 - 다음과 같이 생성하면 된다. 생성한 쿠키는 HttpServletResponse에 담으면 된다. - 생성자는 (쿠키 이름, 값) 형태다. Cookie idCookie = new Cookie("memberId", String.valueOf(loginMember.getId())); response.addCookie(idCookie); 쿠키 조회 - @CookieValue로 조회 가능하다. - 로그인하지 않은 사용자도 해당 url에 접근할 수 있게 하려면 required 설정을 꼭 false로 설정해야 한다. .. 2022. 2. 4.
[Spring MVC] 검증 Validation - (2) 앞서 배운 검증에서는 검증 과정을 직접 코드로 작성했다. 하지만 대부분 빈 값 여부, 크기 제한, 범위 제한 등 지극히 일반적인 로직이다. 이러한 로직은 이미 스프링이 편하게 사용할 수 있도록 준비를 다 해놨다. 그것이 Bean Validation이다. Bean Validation 시작하기 - build.gradle에 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' 그리고 Item 클래스에 다음과 같이 어노테이션을 붙여주기만 하면, 다양한 검증 로직을 쉽게 등록할 수 있다. @Data public class Item { private Long id; @NotBlank private String itemName; @No.. 2022. 2. 1.
반응형