..

Spring Framework 핵심 구동 프로세스

1. 서블릿 컨테이너 및 스프링 부팅 순서

전통적인 자바 웹 환경에서 스프링 프레임워크가 구동되는 표준 절차입니다.

  1. web.xml 로딩: WAS(Tomcat 등)가 시작되면서 설정 파일을 읽어 들입니다.
  2. ContextLoaderListener 생성: 루트 컨텍스트(Root WebApplicationContext)를 생성하여 빈(Bean)들을 메모리에 올립니다.
  3. DispatcherServlet 설정: 클라이언트의 요청을 가장 먼저 받는 프론트 컨트롤러가 준비됩니다.

2. 권장하는 개발 패턴: @RequiredArgsConstructor

전통적인 생성자 주입 방식은 코드가 길어지고 가독성이 떨어집니다. 롬복(Lombok)의 @RequiredArgsConstructor를 활용하면 훨씬 깔끔하게 의존성 주입을 처리할 수 있습니다.

AS-IS (전통적인 생성자 주입)

@Controller
public class UserController {
    private UserService userService;
    
    public UserController(UserService userService){
       this.userService = userService; 
    }
}

TO-BE (Modern Spring Style)

@Controller
@RequiredArgsConstructor
public class UserController {
    // final 키워드를 붙이면 롬복이 생성자를 자동으로 만들어줍니다.
    private final UserService userService;
}

생성자 주입은 빈 생성 시점에 의존성을 확정하므로 불변성을 확보할 수 있고, 테스트 코드 작성 시에도 mock 객체를 주입하기 매우 유리하여 스프링 진영에서 가장 권장하는 방식입니다.