MVC with 김영한12 Bean Validation 이전 검증과정에서 적용했던 여러 복잡한 로직들을 모든 프로젝트에 공통적으로 적용되게 표준화 한 것이 바로 Bean Validation 이다. - Bean Validation Bean Validation은 특정한 구현체가 아닌 표준 기술이다. (검증 어노태에션과 인터페이스의 모음) ex) JPA(표준기술) → Hibernate(구현체) - 검증 애노테이션 @NotBlank : 빈값 + 공백만 있는 경우를 허용하지 않는다. @NotNull : null 을 허용하지 않는다. @Range(min = 1000, max = 1000000) : 범위 안의 값이어야 한다. @Max(9999) : 최대 9999까지만 허용한다. - Bean Validation 사용방법 @PostMapping("/add") public S.. 2021. 12. 14. Validation 어떠한 사이트를 만들었을 때, 관리 시스템에 검증 로직은 반드시 필요하다! 클라이언트 검증, 서버 검증 클라이언트 검증(JS)은 사용자가 조작의 가능성이 있으므로 보안에 취약하다. 서버 검증은 서버로 데이터를 전달받고 검증 결과를 리턴하기 때문에 즉각적인 고객 사용성이 부족하다! 둘을 적절히 잘 섞어서 사용하되, 최종적으로 서버 검증은 필수이다. 검증 처리 과정 상품 등록과정을 예로들어, 1. 상품 등록 폼에 등록하기 위한 폼을(GET/ add)을 컨트롤러에 전달하여 상품 등록 폼(addForm.html)을 가져온다. 2. 상품을 등록할(POST/ add) 을 컨트롤러에 전달한 뒤, Model을 검증한다. 3. 검증이 실패하였다면 검증 오류 결과가 포함된 상품 등록 폼(addForm.html)을 다시 반.. 2021. 12. 6. 타임리프(thymeleaf) [ 타임리프의 특징 ] 서브 사이트 HTML 렌더링(SSR) 백엔드 서버에서 HTML 동적으로 렌더링하는 용도이다. 내츄럴 템플릿 타임리프는 순수 HTML을 최대한 유지하는 특징이 있다! 따라서 타임리프로 작성한 파일은 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 걸치면 동적으로 변경된 결과를 확인할 수 있다. 이렇게 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수 있는 특징을 네츄럴 템플릿이라고 한다. 스프링 통합지원 타임리프는 스프링과 자연스럽게 통합되어 편리한 기능들을 제공한다. [ 타임리프의 기본 기능 ] 타임리프 사용 선언: 텍스트 출력 타임리프는 기본적으로 HTML태그의 속성에 기능을 정의하여 동작한다. HTML의 콘텐츠의 데이터를 출력할 때는.. 2021. 11. 15. 요청 매핑 핸들러 어뎁터 스프링 MVC의 구조에 따르면... 클라이언트의(HTTP) 요청에 따라 핸들러 어뎁터 매핑을 통해 핸들러 어뎁터를 매핑하고 컨트롤러(핸들러)를 호출한다. 핸들러 어뎁터의 컨트롤러(핸들러) 호출 과정에서 전달되는 파라미터를 가공하여 처리해주는 메서드가 있는데 바로 'ArgumentReslover'이다. - ArgumentResolver 애노테이션 기반의 컨트롤러들이 여러 파라미터들을 유연하게 처리할 수 있게 해 준다. 애노테이션 기반의 컨트롤러를 처리하는 'RequestMapping HandlerAdapter'는 'ArgumentReslover'를 호출하여 컨트롤러(핸들러)가 필요로하는 파라미터들에 대한 객체를 생성한 후 값을 넘겨준다. (세부 동작방식) ArgumentResolver의 supportPar.. 2021. 10. 22. 이전 1 2 3 다음