https://www.cosmicpython.com/book/appendix_validation.html

검증은 검증하는 내용에 따라 문법(메시지의 구조), 의미론(메시지의 뜻), 화용론(메시지에 대한 응답을 관리하는 비즈니스 로직)으로 구분된다.

엔티티(도메인 모델)과 멀고 사용자 입출력에서 가까운 "가장자리"에서 검증하는 게 깔끔한 코드에 유리하다.

검증 처리 위치 추천과 예시