본문 바로가기

Spring/Spring Web8

[Spring Web] Bean Validation Spring Web - Bean Validation Bean Validation이란? Bean validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준이다. 쉽게 이야기해서 검증 애노테이션과 여러 인터페이스의 모음이다. 마치 JPA가 표준 기술이고 그 구현체로 하이버네이트가 있는 것과 같다. 일반적으로 하이버네이트 Validator 구현체를 사용한다. 참고: 하이버네이트 Validator 관련 링크 공식 사이트: http://hibernate.org/validator/ 도큐먼트에서 검증 어노테이션을 찾아서 사용하면 된다. 왠만한 검증 로직은 다 이미 구현되어있다. 특정 필드에 대한 검증 로직들을 잘 살펴보면 매우 일반적인 로직이 대부분이다. 빈 값인.. 2022. 10. 12.
[Spring Web] 검증(Validation) Spring Web - Validation 서론 웹 앱에서 사용자가 HTML Form 등에 정보를 입력해서 서버에 전송을 하는 경우, 사용자가 입력한 정보에 문제가 있는지 서버에서 검증 절차를 거쳐야 한다. 그런데 만약 검증 결과 사용자가 입력한 정보에 문제가 있다고 해서 바로 오류 화면을 띄운다거나 하면, 사용자는 입력한 정보를 처음부터 다시 작성해야 한다. 좋은 웹 앱은 사용자 입력 시 오류가 발생하면, 사용자가 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한다. 컨트롤러의 중요한 역할중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 참고: 클라이언트 검증 & 서버 검증 클라이언트 검증은 조작이 가능하므로 보안에 취약하다 (JS를 활용한 클라이언트 검증은 Postman.. 2022. 10. 12.
[Spring Web] 메시지 & 국제화 Spring Web - 메시지 & 국제화 서론 스프링에는 웹 앱 화면에 보이는 문구, 단어 등을 한 곳에서 통합해서 관리할 수 있는 메시지 기능이 있다. 예를 들어 100개의 html 파일 중 상품 정보 관련 HTML Form 안에 있는 label 의 "이름" 이라는 단어만 "상품명" 으로 고치고 싶다면 어떻게 해야 할까? Replace 기능으로 "이름" 이라는 단어를 "상품명" 으로 고치려고 하니 다른 원하지 않는 파일에 있는 단어나, "회원 이름" 같은 단어도 영향을 받아서 문제가 생길 것이다. 하지만 스프링이 제공하는 메시지 기능을 이용해서 상품 정보 관련 HTML Form 의 label 에 있는 "이름" 이라는 단어만 따로 관리하고 있었다면, 그 단어를 "상품명" 으로만 고치면 모든 문제가 해결 .. 2022. 10. 12.