Springboot service란

sun·6일 전

2026

목록 보기
1/6
private final UserRepository userRepository;

public UserService(UserRepository userRepository) {
    this.userRepository = userRepository;
}

"UserService는 UserRepository가 반드시 필요하고, 그걸 Spring이 대신 만들어서 넣어준다"

의존성 주입(Dependency Injection, DI)
spring은 앱 시작할 때 :
1. UserRepository를 먼저 생성한다.
2. UserService 생성하려고 보니까.
---> "어? 생성자에USerRepository가 필요하네?
3. 이미 만들어둔 UserRepository를 자동으로 넣어준다.

이 과정이 바로 생성자 주입.

왜 private final 인가?

private : 외부에서 멋대로 바꾸지 못하도록.
final : 한 번 주입되면 절대 바뀌지 않게하고, Service는 "의존 대상이 고정" 되어야 한다.

실생활 비유

  • UserService = 카페 직원
  • UserRepository = POS 기계

    본사(Spring)가 POS를 준비해서 직원에게 지급.

빠른 이해 :

Service는 Repository를 직접 만들지 않는다.
Spring이 만들어준 걸 "생성자로 받아서 쓴다"

0개의 댓글