입력이 UI를 통해 사용자로부터 직접 온 것인지 아니면 시스템에서 온 것인지에 따라 다릅니다.
UI를 통한 입력
유효하지 않은 입력을 처리하는 방법은 사용자 경험 질문입니다. 특정 사례에 대해서는 잘 모르지만 일반적으로 몇 가지 옵션이 있습니다.
- 계속 진행하기 전에 사용자에게 오류를 알리고 수정하도록합니다 (가장 일반적)
- 유효한 범위로 자동 변환하지만 (가능한 경우) 변경 사항을 사용자에게 알리고 계속하기 전에 사용자가 확인할 수 있도록합니다.
- 올바른 범위로 자동 변환하고 진행하십시오.
선택은 사용자의 기대치와 데이터의 중요도에 따라 다릅니다. 예를 들어 Google은 검색어의 철자를 자동으로 수정하지만, 도움이되지 않는 변경은 문제가 아니며 수정하기 쉬우므로 위험이 적습니다 (결과 페이지에서도 쿼리가 변경되었음을 알 수 있습니다). 반면에, 핵 미사일의 좌표를 입력하는 경우보다 엄격한 입력 유효성 검사를 원하고 잘못된 데이터의 자동 수정을 원하지 않을 수 있습니다. 따라서 보편적 인 대답은 없습니다.
가장 중요한 것은 입력을 수정하는 것이 사용자에게 이익이되는지도 고려해야합니다. 사용자가 왜 유효하지 않은 데이터를 입력합니까? 누군가 철자 오류를 만드는 방법을 쉽게 알 수 있지만 왜 -185의 경도를 입력합니까? 사용자가 실제로 +175를 의미했다면 아마도 +175를 입력했을 것입니다. 나는 잘못된 경도가 단순히 입력 오류 일 가능성 이 높으며 사용자는 -85 또는 다른 것을 의미한다고 생각합니다. 이 경우 자동 변환은 나쁘고 도움이되지 않습니다 . 앱에 가장 사용자 친화적 인 접근 방식은 사용자에게 잘못된 값을 알리고 사용자가 직접 수정하도록하는 것입니다.
API를 통한 입력
다른 시스템이나 서브 시스템에서 입력 한 경우에는 의문의 여지가 없습니다. 예외를 던져야합니다. 다른 시스템의 잘못된 입력은 시스템의 다른 곳에서 오류를 숨길 수 있으므로 자동으로 변환하지 않아야합니다. 입력이 "수정"되면 시스템 내부가 아닌 UI 계층에서 발생합니다.