이번에는 SpringBoot의 실행 과정을 소스 코드로 직접 살펴보려고 합니다. 지난번 애플리케이션 컨텍스트에 이어서 오늘은 @SpringBootApplication 어노테이션을 자세히 살펴보도록 하겠습니다. 아래의 내용은 SpringBoot 2.6.3를 기준으로 작성되었습니다. 1. @SpringBootApplication 어노테이션의 속성과 구성요소 [ @SpringBootApplication 어노테이션의 속성 ] SpringBoot 프로젝트를 생성하면 다음과 같은 메인 클래스와 함수가 자동으로 생성된다. 우리가 가장 먼저 주목해서 살펴볼 부분은 @SpringBootApplication 어노테이션이다. @SpringBootApplication public class TestingApplication ..
이번에는 SpringBoot의 실행 과정을 소스 코드로 직접 살펴보려고 합니다. 해당 내용을 이해하려면 먼저 애플리케이션 컨텍스트(Application Context)에 대해 알아야 합니다. 그래서 이번에는 애플리케이션 컨텍스트(Application Context)를 살펴보고자 합니다. 아래의 내용은 SpringBoot 2.6.3를 기준으로 작성되었습니다. 1. 애플리케이션 컨텍스트(Application Context) [ 다양한 종류의 애플리케이션 컨텍스트(Application Context) ] 애플리케이션 컨텍스트는 빈들의 생성과 의존성 주입 등의 역할을 하는 일종의 DI 컨테이너이다. 우리가 직접 애플리케이션 컨텍스트를 생성할 수도 있지만 SpringBoot를 이용한다면 애플리케이션 종류에 따라 ..
이번에는 SpringBoot의 실행 과정을 소스 코드로 직접 살펴보려고 합니다. Spring Boot의 소스 코드를 자세히 들여다보기 전에 먼저 Spring Boot는 어떠한 장점과 특징들을 갖는지 살펴보도록 하겠습니다. 아래의 내용은 SpringBoot 2.6.3를 기준으로 작성되었습니다. 1. SpringBoot의 장점과 특징 [ SpringBoot의 장점과 특징 ] 과거의 Spring 프레임워크는 XML로 설정을 해야 했고(물론 Spring3.1 부터는 Java로만 설정이 가능하다), 외장 톰캣에 war 파일을 만들어 배포해야 했으며, 설정이 필요한 부분들을 직접 구성하는 등의 번거로움이 상당히 많았다. 하지만 SpringBoot는 이러한 스프링의 문제점을 완벽히 해결해서 손쉽게 웹 애플리케이션을 ..
현재 SpringBoot의 동작 과정을 분석하는 포스팅을 작성하고 있습니다. 해당 소스코드를 분석하다보니 매우 작지만 컨트리뷰트를 할만한 코드를 찾게 되었습니다. 그래서 이번에는 어떻게 하면 오픈 소스에 컨트리뷰트 할 수 있는지 알아보고, 실제로 컨트리뷰트를 해보고자 합니다. 1. 컨트리뷰트할 내용 찾기 [ 컨트리뷰트할 내용 찾기 ] 오픈 소스에 컨트리뷰트하기 위해서는 수정할 코드 및 문서 등을 찾아야합니다. 특정 프로젝트의 Issues에 가서 원하는 이슈를 찾아도 되는데, 저는 이번에 SpringBoot 코드를 읽으면서 발견한 내용으로 컨트리뷰트를 하였습니다. 제가 컨트리뷰트한 코드는 다음과 같습니다. private void configureIgnoreBeanInfo(ConfigurableEnviron..
이번에는 Docker-Compose로 ELK(Elastic, Logstash, Kibana) 스택을 기반으로 하는 모니터링 서버를 구축한 후에 Kibana를 활용해 ElasticSearch의 Index Lifecycle Policy를 설정해주는 방법에 대해 알아보도록 하자. 개인적으로 참고하려고 정리한 내용이므로 간단히 절차만 정리하도록 하겠습니다. 1. 엘라스틱서치 Index Lifecycle Policy 설정 [ Index LifeCycle Policy 생성 ] 데이터가 계속 쌓이는데, 주기적으로 지워주지 않는다면 검색 속도가 느려지는 등의 문제가 발생한다. 그러므로 쌓인 인덱스(데이터)를 일정 간격으로 제거해주는 Index Lifecycle 정책을 올바르게 설정해주어야한다. Index LifeCyc..