image.png

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);
			}
		}