Inflearn Community Q&A
예외 validate하는 시점이 궁금합니다.
Written on
·
256
0
강의를 연습하려고 설문조사 사이트를 만드려고 합니다. 설문 엔티티에는 설문 시작 시간과 설문 종료 시간 필드가 있는데, Controller에서 Dto로 객체 정보를 받으면 다음과 같은 예외 처리를 하려 합니다.
public void validateChangeableDateTime(){
// 설문 시작 시점이 종료 시점보다 늦는지 검사
if(startDate.isAfter(endDate)){
throw new InvaildTimeToChangeError("End date can't be earlier than start date.");
}
// 이미 종료된 설문인지 검사
if(LocalDateTime.now().isAfter(endDate)){
throw new InvaildTimeToChangeError("Survey is closed.");
}
// 이미 진행 중인 설문인지 검사
if(LocalDateTime.now().isAfter(startDate)){
throw new InvaildTimeToChangeError("Survey is already in progress.");
}
}
그런데 해당 예외 처리 함수를 엔티티에 삽입하려니 테이블 매핑 시 불필요한 내용들이 추가될 거 같고, DTO에 추가하려니 너무 DTO 몸집이 커진다 해야하나.. 그래서 서비스 계층에서 구현을 해야하나 고민중입니다. 그러자니 또 도메인 모델 패턴을 위반하는 거 같고..
혹시 이 경우엔 어디서 해당 로직을 구현하는 게 맞을까요?
spring-boot웹앱JPAspringjava
Answer 1
1
yh
Instructor
안녕하세요^^
특정 비즈니스의 검증 로직이 너무 크다면, 별도의 클래스로 분리하시면 좋습니다. 예를 들어서 XxxValidator 같은 클래스를 별도로 만드는 것이지요.
그리고 이 클래스를 서비스 계층이나 엔티티에서 호출하시면 됩니다^^
감사합니다.





