슬기로운슬기
Published 2023. 6. 26. 23:53
[TIL] 회원가입 구현 study/study_spring

강의보다 간단하게 과제를 내주셔서 다행이라고 생각한다...

그렇지만 아직 회원가입 구현하는 코드가 해석이 제대로 되지 않아 조금 더 자세하게 해석을 해볼려고 한다. 

 

 

 

    public void signup(SignupRequestDto requestDto) {
        String username = requestDto.getUsername();
        String password = passwordEncoder.encode(requestDto.getPassword()); // 비밀번호 암호화

        // 회원 중복 확인
        Optional<User> checkUsername = userRepository.findByUsername(username);
        if(checkUsername.isPresent()) {
            throw new IllegalArgumentException("중복된 사용자가 존재합니다.");
        }

        // 사용자 등록
        User user = new User(username, password);
        userRepository.save(user);
    }

[비밀번호 암호화]

  • requestDto.getPassword() 를 통해 비밀번호를 가져온다.
  • passwordEncoder.encod() 를 사용하여 비밀번호를 암호화 한다. 

 

[회원 중복 확인]

  • Optional타입은 null을 체크하기 위해서 만들어진 타입이다. 
  • entity에서 username을 고유한 값으로 받고 있기때문에 중복이 되면 안된다. 
  • userRepositoty.findByUsername(username) : userRepository에 만들어 놓은 쿼리 메서드를 사용
public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByUsername(String username);

}
  •  checkUsername.isPresent() : 사용자 이름이 이미 존재하는지 true,false값으로 확인하여 존재하는 경우에는 IllegalArgumentException을 던져서 중복 사용자 처리 

[사용자 등록]

  • 중복된 사용자가 없으면 User 객체를 생성(등록을 하려면 entity class 객체를 생성해야함)하여 사용자 이름과 암호화된 비밀번호는 설정
  • userRepository.save(user) : 사용자 저장 
반응형
profile

슬기로운슬기

@스를기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!