TIL)23.07.27(복습과제)

주민·2023년 7월 27일
0

TIL

목록 보기
48/84

※ 회원가입

문제

7/25 복습과제로 있던 회원가입 부분에서 여러 조건에 맞지 않으면 회원가입 불가! 로 만들어라는 부분이 있어 처음에는 Exception으로 작업하였으나 각 상황에 맞춰 response 문구가 있으면 좋을거 같아 수정 해보려고 한다.

문제해결

service에서 ResponseEntity body을 사용하거나 따로 변수를 만들어 상황에 따라 저장하고 가져오는 방법을 생각했었으나 둘 다 잘 되지 않아.. 튜터님께 질문을 드렸다.

제일 좋은 방법은 exception을 커스텀해서 사용하는 것!
이지만 이 부분은 강의를 다시 봐야할 거 같아서 나중에 내용을 추가해야할 거 같다.

지금은 Service와 Controller에서 수정할 수 있는 부분을 여쭤봤다.
추천하는 방법은 아니며 이런 방식으로 할 수 도 있다고만 알아두면 좋을 거 같다.

  • Service에서 3개의 가입불가 사유를 if문으로 만들었다.

UserService

* return 값을 string으로 주고 가입불가 사유에 맞춰 문자열로 반환

if (user.getPassword().matches(user.getNickName())) {
    return "PASSWORD_DUPLICATION";
	}

if (!user.getPassword().equals(user.getCheckPassword())) {
    return "PASSWORD_CHECK";
    }
    
if (userRepository.findBynickName(user.getNickName()).isPresent()) {
    return "NICKNAME_CHECK";
    }

UserController

* return으로 받아온 값(문자열)로 비교하여 원하는 문구를 response

String signup = userService.signup(signupRequestDto);

if("PASSWORD_DUPLICATION".equals(signup)){
    return ResponseEntity.badRequest().body(new MsgResponseDto("비밀번호를 닉네임과 다르게 입력해주세요."));
} else if ("PASSWORD_CHECK".equals(signup)) {
    return ResponseEntity.badRequest().body(new MsgResponseDto("확인용 비밀번호와 비밀번호가 다릅니다."));
} else if("NICKNAME_CHECK".equals(signup)){
    return ResponseEntity.badRequest().body(new MsgResponseDto("중복된 닉네임입니다."));
}

0개의 댓글

관련 채용 정보