Spring/Spring Boot

[springBoot] spring boot 실행 시 로그

읽히는 블로그 2024. 8. 2. 17:43

▤ 목차

     

     

     

    메인 메서드를 실행하면 spring이 내장하고 있는 톰켓을 실행하면서 로그가 찍힌다.

     

    ✔ 로그 읽기

    실무에서 개발하고 관리할때 발생할 수 있는 다양한 이슈룰 파악하고 해결하기 위해 로그를 읽는 것이 익숙해야한다.

    스프링 프레임워크를 통해 웹 애플리케이션을 개발할 때

    발생하는 초기화, 설정, 서버 시작 등 중요한 정보를 포함하고 있다.

     

    ⌨ 파일 형식

    프레임워크를 사용해 돌린 프로젝트는 pack 패키지이며 프로젝트이름은 test1이다.

     

    💻 Starting Test1Application using Java 17.0.10 with PID 37972 (C:\ ... 

    애플리케이션 시장 정보. 로그의 시작을 나타내는 로그이다.

    애플리케이션의 시작 시간, 로그 레벨(INFO), 스레드 정보, 메인 클래스(Test1Application) 등이 적혀져있다.

     

     

    💻  No active profile set, falling back to 1 default profile: "default"

    프로파일 설정이 없어서 기본 프로파일("default")을 사용한다는 메시지이다.

    스프링은 프로파일에 따라 설정을 다르게 할 수 있다.

     

     

    💻 Tomcat initialized with port 8080 (http)

    Tomcat 서버가 8080 포트를 초기화 되었다는 뜻으로 해당포트번호를 사용한다.

     

     

    Starting service [Tomcat] 

    Starting Servlet engine: [Apache Tomcat/10.1.25] 

     

    tomcat 서비스가 시작되고 서블릿 엔진이 초기화 되었음을 보여준다.

     

    구동 후 localhost:포트번호를 사용했을때

     

     

    💻 Root WebApplicationContext: initialization completed in 602 ms

    루트 웹 애플리케이션 컨텍스트가 초기화되는데 걸리는 시간을 알려준다.

    위의 명령어를 확인해보면 root 컨텍스트가 초기화되는데 602ms 가 걸린것을 알 수 잇따.

     

     


    💻 Tomcat started on port 8080 (http) with context path '/'

    어플리케이션 실행 정보를 알 수 있다.

    tomcat 서버가 8080 포트에서 실행되고 루트 경로('/')로 설정되었다는 의미이다..

     

     

     


     

     

     

    ✔ 로그를 알아야 하는 이유

    📌 문제 해결

    로그를 이해하고 있으면 애플리케이션의 초기화 과정에서 발생하는 문제를 보다 빠르게 해결할 수 있다.

    서버 포트 충돌, 프로파일 설정 오류, 초기화 시간이 길어지는 원인 등을 빠르게 식별할 수 있다. 

     

     

    📌 성능 최적화

    초기화 시간을 줄이기 위한 최적화 바법을 고려할 수 있다.

    예를 들어, 스프링 컨텍스트 초기화 시간을 단축시키는 방법이 있다.

     

    📌 스프링 설정

    스프링 설정 클래스( @configuration )나 빈 등록(@bean)에 대해 이해를 돕는다.

    이 로그는 스프링 빈의 초기화 순서나 프로파일 관리에 대한 힌트를 제공할 수 있다.

     

     

    스프링 컨텍스트(Spring Context)?

    스프링 프레임워크에서 가장 핵심적인 개념 중 하나이다.
    스프링이 제공하는 IoC(Inversion of Control) 컨테이너로, 애플리케이션에서 객체들의 생명주기를 관리하고 의존성을 주입하는 역할을 한다.

     주요 역할
    1) 빈 관리
     :  스프링 컨텍스트는 개발자가 작성한 클래스들을 빈(Bean)으로 등록하고 관리한다.
      빈은 일반적으로 애플리케이션에서 재사용 가능한 객체를 말한다.

    2) 의존성 주입
     : 스프링 컨텍스트는 객체 간의 의존성을 자동으로 주입해준다.
    @Autowired 어노테이션을 등을 사용하여 필요한 객체를 필드, 생성자, 메서드를 통해 주입할 수 있다.

    3) 라이프사이클 관리
     : 스프링 컨텍스트는빈의 생명주기를 관리한다.
     빈이 생성되고 초기화되며, 애플리케이션 실행 중에 피료에 따라 소멸된다.

    4) AOP
    : 스프링 컨텍스트는 관정 지향 프로그래밍을 지원한다. 횡단 관신사(concern)을 분리하여 코드의 재사용성과 유지보수성을 높일 수 있다.

    5) 트랜잭션 관리
    : 스프링 컨텍스트는 트랜잭션 관리를 지원한다.
    @Transactional 어노테이션을 사용하여 메서드나 클래스에 트랜잭션 속성을 설정할 수 있다.