5. 검증 2 - Bean Validation
·
Spring/MVC 2
1. 복습이전 Chapter에서 컨트롤러와 검증 로직을 분리하고WebDataBinder에 Validator를 등록하고 @Validate 어노테이션을 사용해, 별도의 검증 로직 호출 없이 동작하는 모습을 보였다.private final ItemValidator itemValidator;@InitBinderpublic void init(WebDataBinder dataBinder) { dataBinder.addValidators(itemValidator);} // @Validated: 자동으로 검증기가 실행이 되어, 에러는 BindingResult에 담겨진다.@PostMapping("/add")public String addItemV6(@Validated @ModelAttribute Item item,..
4. 검증 1 - Validation
·
Spring/MVC 2
1. 과거 프로젝트 build.gradle 오류1) jdk 17 버전 수정https://www.inflearn.com/questions/1232895/no-matching-variant-%EC%98%A4%EB%A5%98  2) gradle 버전 수정[gradle-wrapper.properties]distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zipzipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/dists   2. 검증 요구사항[상품등록]1) 타입 검증      → 가격..
3. 메시지, 국제화
·
Spring/MVC 2
CSR의 경우, '메시지'와 '국제화' 같은 기능들은 클라이언트 개발자가 구현한다.추후에 SSR 프로젝트에서 관련 기능이 필요할 때 자세히 정리하려 한다.😴 +. '메시지'는 검증 단계에서 에러를 바인딩 할 때, 각 단계마다 세부적인 메시지를 주고 싶을 때 사용할 수 있다.
2. 타임리프 - 스프링 통합과 폼
·
Spring/MVC 2
추후에 Thymeleaf가 필요할 때 자세히 공부하고 정리하려 한다.😴
1. 타임리프 - 기본 기능
·
Spring/MVC 2
1. 타임리프 특징 1) 서버 사이드 HTML 렌더링(SSR): 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다. 2) 네츄럴 템플릿: 웹 브라우저에서 파일을 열어도, 순수 HTML을 최대한 유지하는 특징이 있다.물론 위 경우에는 동적으로 결과가 렌더링 되지는 않는다. 3) 스프링 통합 지원: 스프링에서 공식으로 추천하고 있는 템플릿 엔진으로, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다.   2. escape'cf. HTML 엔티티 : '  escape가 필요한 이유: 웹 애플리케이션에서 사용자의 입력을 그대로 HTML 페이지에 반영할 경우,악의적인 스크립트를 삽입하는 XSS(Cross Site Scripting) 공격을 받을 수 있다.따라서 이러한 공격을 방지하기 위해 사용자 입..