Predicate의 boolean과 상세 Result는 전달하는 정보량이 다르다

사용자 입력에서 false 하나만 반환하면 어느 필드가 왜 거부됐는지 설명할 수 없습니다.

Predicate<T>

true/false · filter·분기

ValidationResult

오류 코드·경로·메시지

exception

정상 거부까지 사용하면 제어 흐름 불명확

핵심: 분기만 필요하면 Predicate, 진단과 복구가 필요하면 결과 타입을 사용합니다.