TIL

if 조건문 최소화 하기

everyday-spring 2024. 9. 6. 14:53

데이터 검증에 대해 사용한 if 조건문을 

validate 메소드를 사용해서 정리했다

 

기존코드

UserService.java

// user가 존재하는지 확인
User user = userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found"));

// 탈퇴한 유저가 아닌지 확인
if (user.isDeleted()) {
    throw new IllegalArgumentException("User is deleted");
}

 

수정된 코드

Preconditions.java

public class Preconditions {

    public static void validate(boolean expression, ErrorCode errorCode) {
        if (!expression) {
            throw new IllegalArgumentException(errorCode.getMessage());
        }
    }
}

 

UserRepository.java

default User findByIdOrElseThrow(Long id) {
    return findById(id)
            .orElseThrow(
                    () -> new NoSuchElementException(ErrorCode.USER_NOT_FOUND.getMessage()));
}

 

UserService.java

User user = userRepository.findByIdOrElseThrow(id);

Preconditions.validate(!user.isDeleted(), ErrorCode.DELETED_USER);