일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 코딩테스트
- 백준
- 쿼리dsl
- 브루트 포스
- 네트워크
- 검증
- 자료구조
- 스프링
- 프로그래머스
- 반복문
- 정처기
- JPA
- 웹개발
- 운영체제
- ModelAttribute
- 코테
- 메서드
- 알고리즘
- 자바의 정석
- 스파르타코딩
- 스프링 MVC
- 자바
- OS
- Java
- programmers
- 스프링MVC
- db
- 면접
- 객체지향프로그래밍
- Bean Validation
- Today
- Total
목록Spring/Spring MVC (13)
개발일지

목차 스프링 인터셉터는 공통 관심 사항을 효과적으로 해결할 수 있는 기술이다⭐ 스프링 인터셉터 흐름 더보기 HTTP 요청 → WAS → 필터 → 서블릿 → 스프링 인터셉터 → 컨트롤러 스프링 인터셉터는 디스패처 서블릿과 컨트롤러 사이에서 컨트롤러 호출 직전에 호출된다. 스프링 인터셉터는 스프링 MVC가 제공하는 기능이기 때문에 결국 디스패치 서블릿 이후에 등장하게 된다. 스프링 MVC의 시작점이 디스패처 서블릿이라고 생각해보면 이해가 될 것이다. 스프링 인터셉터에도 URL패턴을 적용할 수 있는데, 서블릿 URL패턴과는 다르고, 매우 정밀하게 설정할 수 있다. 스프링 인터셉터 제한 더보기 HTTP 요청 → WAS → 필터 → 서블릿 → 스프링 인터셉터 → 컨트롤러 // 로그인 사용자 HTTP 요청 → WA..
목차 패키지 구조 설계 도메인 화면, UI, 기술 인프라 등등의 영역은 제외한 시스템이 구현해야 하는 핵심 비즈니스 업무 영역이다. 향후 web을 다른 기술로 바꾸어도 도메인은 그대로 유지할 수 있어야 한다. web은 domain을 알고있지만, domain은 web을 모르도록 설계해야 한다. → web은 도메인을 의존하지만, domain은 web을 의존하지 않는다. 로그인 처리하기 - 서블릿 HTTP 세션1 서블릿은 세션을 위해 HttpSession이라는 기능을 제공하는데, 서블릿을 통해 HttpSession을 생성하면 JSESSIONID라는 쿠키를 생성하며, 이 값은 추정 불가능한 랜덤값이다. @PostMapping("/login") public String loginV3(@Valid @ModelAtt..
목차 스프링 MVC의 Bean Validator 적용 스프링 부트에 spring-boot-starter-validation 라이브러리를 넣으면 자동으로 스프링이 Bean Validator를 인지하고 스프링에 통합한다. 스프링 부트는 자동으로 글로벌 Validator로 등록한다. LocalValidatorFactoryBean(애노테이션을 보고 검증해주는 검증기 )을 글로벌 Validator로 등록한다. 예를 들어, @Notnull같은 애노테이션을 보고 검증을 수행하고, 글로벌 Validator가 적용되어 있기 때문에 @Vaild(자바 표준 검증 애노테이션), @Validated(스프링 전용 검증 애노테이션)만 적용하면 된다. 검증 오류가 발생하면, FieldError, ObjectError를 생성해서 Bi..
목차 직접 검증 코드를 작성하는 것은 상당히 번거롭다. 특히, 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 다음 코드를 보자 public class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 1000000) private Integer price; @NotNull @Max(9999) private Integer quantity; //... } 이런 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화한 것이 바로 Bean Validation이다. Bean Validation을 잘 활용하면, 애노테이션 ..
목차 스프링이 제공하는 검증 오류 처리 방법을 알아볼텐데, 여기서 핵심은 ⭐BindingResult (BindingResult bindingResult 파라미터의 위치는 @ModelAttribute Item item 다음에 와야 함) 스프링이 제공하는 검증 오류 처리 방법 - BindingResult1 BindingResult 스프링이 제공하는 검증 오류를 보관하는 객체 (검증 오류가 발생하면 여기에 보관) BindingResult는 검증할 대상 바로 다음에 와야함 ex) @ModelAttribute Item item 바로 다음에 BindingResult가 오야함 BindingResult는 Model에 자동으로 포함됨 BindingResult에 검증 오류를 적용하는 방법 @ModelAttribute의 객..