[Spring Security JWT] 클래식 허브_2

okonys·2025년 9월 23일

클래식 허브

목록 보기
5/8

[회원가입 로직]

유튜버 개발자 유미님의 강의 영상을 참고 했습니다.

!유튜브 링크

1) 외부에서 POST 요청으로 폼 데이터가 들어온다.
2) Controller 에서 DTO 타입으로 받고 Service의 회원가입 프로세스를 호출한다.
3) 프로세스에서 문제가 없으면 Service에서 User Entity를 저장한다.

[코드]

User.java

@Entity
@Data
public class User {
	
	@Id														// PK
	@GeneratedValue(strategy = GenerationType.IDENTITY)		// auto_increment
	private int id;
	
	private String email;
	private String password;
	private String name;
	private String role;
	
}

UserController.java

@PostMapping("/join")
	public String join(JoinDto joinDto) {
		
		userService.join(joinDto);
		
		return "ok";
	}

UserController에서 회원가입 프로세스를 post 요청으로 폼 데이터를 받는다.
JoinDto는 회원가입에만 필요한 User Entity의 속성을 갖는 클래스다.

UserService.java

/** 회원가입 프로세스 **/
	public boolean join(JoinDto joinDto) {
		
		String email = joinDto.getEmail();
		String password = joinDto.getPassword();
		String name = joinDto.getName();
		
		boolean isExist = userRepository.existsByEmail(email);		// 이메일로 회원가입 되어있는지 확인
		
		if(isExist) {	// 사용중
			return false;
		}
		
		User user = new User();
		user.setEmail(email);
		user.setPassword(bCryptPasswordEncoder.encode(password));	// 패스워드는 꼭 암호화
		user.setName(name);
		user.setRole("ROLE_ADMIN");									// 임시 역할
		
		userRepository.save(user);									// 실제 DB 저장
		
		return true;
	}

UserRepository.java

public interface UserRepository extends JpaRepository<User, Integer>{	// 사용할 entity, pk 데이터 타입

	Boolean existsByEmail(String email);								// 해당 이메일로 가입한 USER가 있는지 확인
}

Jpa 방식에서 existsBy로 시작하면 뒤에 오는 컬럼명으로 데이터 존재 유무를 반환할 수 있다.

[결과]

아직 프론트가 없으니까 postman으로 api 서버에 요청을 보내봤다.


비밀번호가 암호화 되어 들어갔다.

이렇게 회원가입 요청은 끝

0개의 댓글