1 분 소요

 인프런 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술편을 학습하고 정리한 내용 입니다.

검증 요구사항

상품 관리 시스템에 새로운 요구 사항이 추가 되었다.

요구 사항 : 검증 로직 추가

  • 타입 검증
    • 가격, 수량에 문자가 들어가면 검증 오류 처리
  • 필드 검증
    • 상품명 : 필수, 공백X
    • 가격 : 1000원 이상, 1백만원 이하
    • 수량 : 최대 9999
  • 특정 필드의 범위를 넘어서는 검증
    • 가격 * 수량의 합 10,000원 이상

지금까지 만든 웹 애플리케이션은 검증 오류가 발생하면 오류 화면으로 바로 이동한다.

이렇게 되면 사용자는 처음부터 해당 폼으로 다시 이동해서 입력해야 한다.

아마도 이런 서비스라면 사용자는 금방 떠날 것이다.

웹 서비스는 폼 입력 시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려줘야 한다.

컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 그리고 정상 로직보다 이런 검증 로직을 개발하는 것이 어쩌면 더 어려울 수 있다.

참고 : 클라이언트 검증, 서버 검증

  • 클라이언트 검증은 조작할 수 있으므로 보안에 취약하다.
  • 서버만 검증하면, 즉각적인 고객 사용성이 부족해진다.
  • 둘을 적절히 섞어서 사용하되, 최종적으로 서버 검증은 필수
  • API 방식을 사용하면 API 스펙을 잘 정의해서 검증 오류를 API 응답 결과에 잘 남겨줘야 함.

프로젝트 설정 V1

전체 코드에 프로젝트 validation을 만들었다.

이전 프로젝트 처럼 파일로 제공해 줬기 때문에 나에게 맞게 세팅한 후 다시 커밋했다.

  • java 21
  • spring boot 3.2.5

검증 직접 처리 소개

사용자가 상품 등록 폼에서 정상 범위의 데이터를 입력하면, 서버에서는 검증 로직이 통과하고, 상품을 저장하고, 상품 상세 화면을 redirect한다.

그런데 실패하면??

고객이 상품 등록 폼에서 상품명을 입력하지 않거나, 가격, 수량 등이 너무 작거나 커서 검증 범위를 넘어서면, 서버 검증 로직이 실패해야 한다.

이렇게 검증에 실패한 경우 고객에게 다시 상품 등록 폼을 보여주고, 어떤 값을 잘못 입력했는지 친절하게 알려주어야 한다.

댓글남기기