반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

SpringBootApplication 본문

반응형

요약 및 결론

리팩토링을 통한 코드 정리스프링 부트의 동작 원리를 다루고, 기존 코드를 리팩토링해 SpringApplication.run()과 비슷한 코드를 작성하며 스프링 부트의 작동 방식을 알아보았습니다.

핵심 내용

  1. 리팩토링과 코드 추출:

    • run() 메소드로 추출: 메인 메소드에서 반복되는 코드를 추출하여 run 메소드로 분리하고, 클래스 타입과 명령어 라인 인수를 파라미터로 받는 메소드를 작성.
    • 이 과정을 통해 재사용 가능한 메소드를 만들어 코드의 유연성과 유지보수성을 높임.
  2. SpringApplication.run()과 유사한 동작:

    • MySpringApplication.run() 메소드를 만들어 다양한 클래스에서 사용할 수 있도록 코드를 정리. 이는 스프링 부트의 SpringApplication.run() 방식과 유사함.
    • 이를 통해 스프링 부트가 어떻게 기본적인 애플리케이션 실행 및 설정 작업을 자동으로 처리하는지에 대한 동작 원리를 확인.
  3. 팩토리 메소드와 스프링 부트의 동작 원리:

    • ServletWebServerFactoryDispatcherServlet 같은 서블릿 관련 객체들이 팩토리 메소드를 통해 빈으로 등록되는 과정 설명.
    • Spring Boot와의 차이점: 스프링 부트는 @SpringBootApplication 애노테이션 하나로 많은 설정을 자동화하지만, 직접 작성한 코드에서는 이러한 설정을 명시적으로 해줘야 함.
  4. Spring Boot와의 차이점:

    • 스프링 부트와 동일한 원리로 동작하지만, 자동화 수준이 낮음. 스프링 부트에서는 빈 팩토리 메소드를 추가하지 않고도 서블릿 컨테이너가 잘 동작하지만, 수동 설정에서는 명시적으로 빈 등록이 필요.
    • 빈 팩토리 메소드가 없으면 애플리케이션 실행 중 ServletWebServerFactory를 찾을 수 없다는 에러 발생.
  5. 스프링 부트의 자동화:

    • 스프링 부트는 내부적으로 다양한 기본 설정을 제공하며, 우리가 수동으로 설정해야 할 많은 작업을 자동화하여 처리함.
    • 수동으로 작성된 코드에서는 필요한 설정을 명시적으로 작성해야 하지만, 스프링 부트는 자동으로 적절한 빈과 설정을 제공하여 개발자가 이를 신경 쓰지 않도록 해줌.

결론:

이 과정을 통해 스프링 부트의 내부 동작 원리를 이해할 수 있으며, 수동 설정을 통해 이를 직접 구현함으로써 스프링 부트의 편리함자동화된 설정의 중요성을 배울 수 있습니다.

반응형
Comments