검증 요구사항

학습 페이지

검증이 왜 필요할까? 다음과 같은 요구사항이 들어왔다고 해보자.

검증 로직을 추가해야 한다.

  1. 가격, 수량 등에 문자가 들어가면 오류가 내도록 검증 오류를 처리하고,
  2. 상품명은 필수로 입력, 공백이 없도록한다.
  3. 가격은 1000원 이상, 1백만원 이하로 한다.
  4. 수량은 최대 9999개로 한다.
  5. 가격 * 수량의 합은 10,000원 이상이 되도록 한다.

우리가 지금까지 만든 어플리케이션들은 예외가 터지면 바로 오류페이지로 리다이렉션 시켜버린다.

이는 고객 입장에서는 어이가 없을 것임… 회원가입할때 어떤 필드 하나 실수로 잘못입력했다고 지금까지 입력한 값이 다 날아가고, 알수없는 오류페이지까지 떠버리면 이런 상황이 이해가 안될 것이다.

웹 서비스는 기본적으로 폼 입력시 실수가 있다면 해당 부분에 실수가 있다고 친절하게 알려줘야 한다. 서비스니까!

💡 검증은 클라이언트 검증과 서버 검증으로 나눌 수 있다. 클라이언트 검증은 JS로 하는 검증, 서버 검증은 컨트롤러 단에서 이뤄진다.

클라이언트 검증의 단점은 조작이 쉽다는 것이다. 보안에 취약하다..

서버검증의 단점은 즉각적인 고객 사용성이 부족하다. 피드백이 느려진다… 서버를 한번 거쳐서 검증이 이뤄져야 하기 때문임.

둘을 적절히 섞어서 사용하되, 최종적으로는 서버 검증이 필수이다.

만약 API 방식을 사용한다면, API스펙을 잘 정의해서 검증 오류를 API응답결과에 잘 남겨주는 방식으로 개발한다.

프로젝트 설정