[Java] 회원가입 기능 코드 + Postman 테스트

TNFUDS·2025년 11월 15일

FinTrack 프로젝트

목록 보기
6/14
post-thumbnail

컨트롤러

@RestController
@RequestMapping("/api/user")
@RequiredArgsConstructor
public class UserController {

    private final UserService userService;

    // 이메일 중복 확인
    @GetMapping("/check-email-duplicate")
    public ResponseEntity<ApiResponse<Boolean>> checkEmail(@RequestParam String email){
        boolean exists = userService.checkEmailDuplicate(email);
        return ResponseEntity.ok(ApiResponse.success("이메일 중복 확인 완료", exists));
    }

    // 회원가입
    @PostMapping("/register")
    public ResponseEntity<ApiResponse<Void>> register(@Valid @RequestBody UserRegisterRequest request){
        userService.register(request);
        return ResponseEntity.status(201).body(ApiResponse.success("회원가입이 완료되었습니다.", null));
    }
}

서비스

@Service
@RequiredArgsConstructor
public class UserService {
    private final UserRepository userRepository;
    private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

    public void register(UserRegisterRequest request){
        if (userRepository.existsByEmail(request.getEmail())){
            throw new IllegalArgumentException("이미 사용 중인 이메일입니다.");
        }

        if (!request.getPassword().equals(request.getConfirmPassword())){
            throw new IllegalArgumentException("비밀번호가 일치하지 않습니다.");
        }

        User user = User.builder()
                .name(request.getName())
                .email(request.getEmail())
                .password(passwordEncoder.encode(request.getPassword()))
                .build();

        userRepository.save(user);
    }


    public boolean checkEmailDuplicate(String email){
        return userRepository.existsByEmail(email);
    }
}

테스트 결과

1. 비밀번호 조건 미충족

결과


2. 비밀번호 확인 오류

결과


3. 성공하기

결과

4. 이메일 중복

3번의 요청을 다시 보내면

결과

예상대로 에러를 잘 뱉어낸다.


데이터베이스를 확인해보면

회원가입된 사용자가 데이터베이스에 잘 들어간 것을 확인할 수 있다.

profile
내 세상을 넓혀가는 중

0개의 댓글