
admin1으로 게시글 요청을 계속 했는데 등록되어있지 않은 유저이므로 등록이 안되는 건 당연한데 boardId는 계속 올라가고 있었다… 왜지??
userNick 유효성 검사를 해서 적합하지 않으면 아예 boardDao에 갈 수 없게 처리함
Service
// DB 처리 전 유효한 userNick인지 체크
if (!isValidUserNick(board.getUserNick())) {
throw new IllegalArgumentException("Invalid userNick: " + board.getUserNick());
}
private boolean isValidUserNick(String userNick) {
// DB에서 userNick 존재 여부를 확인
return boardDao.isUserNickExist(userNick);
}
dao
// 게시글 작성 전 유효한 userNick인지 확인
public boolean isUserNickExist(String userNick);
mapper
<!-- userNick이 존재하는지 확인-->
<select id="isUserNickExist" parameterType="string" resultType="boolean">
SELECT COUNT(*) > 0
FROM user
WHERE user_nick = #{userNick}
</select>
controller : 오류명이 똑같아서 메세지에 따라 분기처리
catch (IllegalArgumentException e) {
String errorMessage = e.getMessage();
if (errorMessage.contains("Invalid userNick")) {
// userNick 유효성 검사 실패
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("400 Bad Request: 유효하지 않은 userNick입니다.");
} else if (errorMessage.contains("허용되지 않은 파일 확장자")) {
// 파일 확장자 오류
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("400 Bad Request: 허용되지 않은 파일 확장자");
} else {
// 기타 IllegalArgumentException
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("500 Internal Server Error: " + errorMessage);
}
}