Repository vs service (spring boot)

Lu·2024년 11월 4일

spring boot

목록 보기
1/1

spring boot 3.x 로 로그인을 구현하는 중에 의문이 생겼습니다



어라 ? userRepository로 정보를 찾을 때 user의 id를 이용하여 정보를 찾는데

Optional<User> findByuserid(String userid);



userDeatilsService를 상속받는
PrincipalDetailsService에서도
loadUserByUsername 메서드를 사용하여 user의 id를 이용해 정보를 찾을 수 있네?

	@Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
		User user = userRepo.findByuserid(username)
				.orElseThrow(() -> new UsernameNotFoundException("User not found: " + username));
		return new PrincipalDetails(user);
	}	

그럼 userDeatilsService를 상속받는 클래스는 왜 필요한거지?




답은 ?!
UserRepository는 직접 DB에 접근해서 CRUD에 대한 로직들을 처리하고

PrincipalDetailsService는 DB에 접근하는 코드는

User user = userRepo.findByuserid(username) 

이 부분을 통해 repository에 위임해서 처리한다는 겁니다!


이렇게 service와 repository를 구분하면
비즈니스 로직에 대한 문제가 생겼을 때 service 패키지를 확인하고
DB에 대한 문제가 생기면 repository를 확인해 유지보수가 쉽게 가능하게 됩니다!

profile
열심히 공부하는 사람.

0개의 댓글