• 가이드 원본 사이트

  • validation 과정을 지원하는 웹 애플리케이션 형식을 만드는 과정에 대해 알아볼거다. 그러니까 해당 input이 유효한지, 안 유효한지를 알려주는 웹 애플리케이션 형식을 어떻게 만드는지 알아볼 것이다.

@NotNull, @Size, @Min

  • 이 셋은 전부 Validation이라는 package와 관련이 되어 있다. Spring Boot의 경우 Validation starter을 통해 이 annotation들 사용이 가능.

  • annotation이 매우 직관적인데, @NotNullNull을 허용하지 않는 annotation이다. 공백이나 empty string은 지원한다는 점 유의. 이와 연관된 annotation이 @NotEmpty@NotBlank가 있는데 링크 참고

  • @Size는 최소/최대 크기를 동시에 지정할 때 사용되며 @Min은 최소 크기만을 지정할 때 사용. @Max는 최대 크기만을 지정할 때 사용.

  • 이걸로 특정 값이 만족해야하는 조건을 설정하면, 조건에 맞는지 안 맞는지는 어떻게 확인을할까?

BindingResult

  • 여기서 BindingResult라는 class가 등장하게 된다. validation에 오류가 있을 경우, 해당 class에 관련 오류를 저장해놓는다. 생각보다 많은걸 할 수 있는데 자세한건 이 글 참고.

  • 이 튜토리얼의 경우 해당 class를 어떻게 활용했냐면 코드에서는 단순히 에러가 있는지 없는지를 확인을 했으며, html 파일에서 오류가 있을 경우 무슨 오류가 있었는지를 출력하는데도 활용이 되고 있다. 후자의 경우 thymeleaf가 꽤 큰 역할을 하고 있다. (th:errors 부분이 error message를 출력하는 것과 관련이 되어 있음)

WebMvcConfigurer, addViewControllers

  • 이번 튜토리얼에서 controller을 만드는 방식은 기존과 약간 다르다. 원래는 controller class를 딱히 무엇을 implement하거나 extend하는 것 없이 @Controller annotation이 달린 애로 만들었다.

  • 그러나 이번에는 @Controller로 controller 역할 하는 class가 뭔지 지정은 했으나, WebMvcConfigurer을 implement하는 형태로 구현을 했다. 이게 뭐냐면 spring의 MVC controller 관련 configuration을 조절하는 것이다.

  • WebMvcConfigurer은 사실 Spring MVC model에 대한 configuration을 수정하는데 사용된다. 이 때문에 보통은 @Configuration annotation이 implement한 class에 달려 있다. 하지만 여기는 그렇지 않고, @Controller이라는 annotation이 달려있다. 이유는... 그냥 이 class가 controller을 나타내기 때문이다. 그러면 WebMvcConfigurer은 왜 implement하는가? 그 이유는 spring MVC controller configuration을 좀 수정하고, 그걸 기반으로 동작하는 controller이라 그럴 뿐이다.

결과물

profile
안 흔하고 싶은 개발자. 관심 분야 : 임베디드/컴퓨터 시스템 및 아키텍처/웹/AI

0개의 댓글

Powered by GraphCDN, the GraphQL CDN