SMALL
Refactoring Tips
- 변경되면 안되는 변수나 RequestBody 파라미터에 final 붙이기
- 중복되거나 길어지는 코드 private 지역 변수 선언하기
- Null이면 안되는 Parameter @Nonnull 키워드 붙이기
- get 메서드는 없으면 Throw 날리기, find 메서드는 애초에 Optional로 반환하는 것이 좋음
- Magic Number Validation 코드 줄이는 방법!
- final 변수로 상수 값 갖는 클래스 만들기 (DMakerConstant.class)
- Validation 할 항목의 Enum에 상수로 최소, 최대값 할당해주기
- Function<>() 이용해서 Enum 자체에 Validation 메서드 만들기 (진짜 개천재인 듯)
-
@AllArgsConstructor @Getter public enum DeveloperLevel { NEW("신입 개발자", years -> years == 0), JUNIOR("주니어 개발자", years -> years <= MAX_JUNIOR_EXPERIENCE_YEAR), JUNGNIOR("중니어 개발자", years -> years > MAX_JUNIOR_EXPERIENCE_YEAR && years < MIN_SENIOR_EXPERIENCE_YEAR), SENIOR("시니어 개발자", years -> years >= MIN_SENIOR_EXPERIENCE_YEAR); private final String description; private final Function<Integer, Boolean> validateFunction; public void validateExperienceYears(Integer years){ if(!validateFunction.apply(years)) throw new DMakerException(DMakerErrorCode.LEVEL_EXPERIENCE_YEARS_NOT_MATCHED); } }
LIST
'IT > Spring Boot' 카테고리의 다른 글
[Spring boot] 사용자의 데이터 사용 권한에 대해 (0) | 2025.04.10 |
---|---|
[Spring boot] Unit Test에 관해 (0) | 2025.04.10 |
[Spring Boot] 스프링 부트 SpEL(Spring Expression Language) (0) | 2024.09.27 |
[Spring Boot] 스프링부트 Spring Resource (0) | 2024.09.27 |
[Spring Boot] 스프링 부트 Validation (0) | 2024.09.27 |