📄 어떤 코드를 개선하고 싶나요?
ClubController 클래스에서
@Operation(summary = "카테고리별 동아리 목록 조회", description = "특정 카테고리에 속한 동아리 목록을 조회합니다.")
@ApiResponse(responseCode = "200", description = "조회 성공")
@GetMapping(params = "category")
public ResponseEntity<ClubListResponseDto> listClubsByCategory(
@Parameter(description = "조회할 동아리 카테고리", required = true, example = "SPORTS") @RequestParam String category
) {
ClubListResponseDto response = clubService.getClubByCategory(category);
return ResponseEntity.ok(response);
}
해당 API의 파라미터 값인 category 값이 ENUM 타입의 값과 일치하지 않을 때
ClubServiceImpl 클래스의
@Override
public ClubListResponseDto getClubByCategory(String category) {
if (category.equals("ALL")) {
return mapToResponse(clubRepository.findAllProjectedBy());
}
return mapToResponse(clubRepository.findSummariesByCategory(Category.valueOf(category)));
}
메서드에서 Category.valueOf(category) 부분에서 에러가 발생하고 이 값이 핸들링 되지 않아서 500 에러를 반환하고 있습니다. 400 에러나 404 에러로 반환하도록 에러 핸들링이 필요해보입니다.
💡 왜 개선이 필요한가요?
에러 핸들링이 없어서 500에러를 반환하는데 이러면 어떤 부분에서 문제가 발생했는지 추적하기가 어려울 것 같습니다.
✅ 개선 아이디어
ENUM 타입이 valueOf로 매칭이 안될 때 IllegalArgumentException 가 발생되는데 이거 자체를 글로벌 에러 핸들러에서 처리할지 해당 API 만 핸들링하도록 하는 핸들러를 추가할지 생각해봐야할 것 같습니다.
🙋🏻 참고 자료

📄 어떤 코드를 개선하고 싶나요?
ClubController 클래스에서
해당 API의 파라미터 값인
category값이 ENUM 타입의 값과 일치하지 않을 때ClubServiceImpl 클래스의
메서드에서
Category.valueOf(category)부분에서 에러가 발생하고 이 값이 핸들링 되지 않아서 500 에러를 반환하고 있습니다. 400 에러나 404 에러로 반환하도록 에러 핸들링이 필요해보입니다.💡 왜 개선이 필요한가요?
에러 핸들링이 없어서 500에러를 반환하는데 이러면 어떤 부분에서 문제가 발생했는지 추적하기가 어려울 것 같습니다.
✅ 개선 아이디어
ENUM 타입이 valueOf로 매칭이 안될 때
IllegalArgumentException가 발생되는데 이거 자체를 글로벌 에러 핸들러에서 처리할지 해당 API 만 핸들링하도록 하는 핸들러를 추가할지 생각해봐야할 것 같습니다.🙋🏻 참고 자료