현재 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..
Spring에서 프로퍼티에 있는 값을 불러오는 다양한 방법들이 있다. 이번에는 대표적인 방식인 @Value와 @ConfigurationProperties의 차이에 대해 알아보도록 하자. 1. @Value와 @ConfigurationProperties의 사용법 및 차이 스프링의 properties나 yaml에 있는 값들은 애플리케이션이 실행되면서 환경변수로 Environment에 등록이 된다. 그리고 해당 값들을 꺼내서 애플리케이션에서 활용하기 위한 방법으로는 @Value와 @ConfigurationProperties가 있다. [ @Value 어노테이션 ] @Value는 단일 값을 주입받기 위해서 사용된다. 앞선 포스팅에서 살펴보았듯 값을 가져오기 위해서는 PropertyPlaceHolderConfigur..
개발을 하다 보면 JSR에서 제공해주는 어노테이션으로는 처리가 부족하여 직접 우리가 원하는대로 예외를 처리해주어야 하는 경우가 있다. 이번에는 커스텀 애노테이션(Custom Annotation)을 만들어 개발자의 입맛에 맞게 직접 유효성 검사를 하는 Validation을 구현해보도록 하자. 1. 커스텀 애노테이션(Custom Annotation) 만들어 직접 유효성 검사하기 개발을 하다 보면 사용자의 정보를 받을 때 연락처를 받아야 하는 경우가 있다. 이번에는 사용자의 연락처를 검증하는 어노테이션과 검증기(Validator)를 구현해보도록 하자. [ 검증을 위한 커스텀 어노테이션 생성 ] 먼저 우리는 javax.validation에서 제공해주는 어노테이션들과 비슷한 어노테이션을 만들어주어야 한다. 우리는..
예외 처리는 robust한 애플리케이션을 만드는데 매우 중요한 부분을 차지한다. Spring 프레임워크는 매우 다양한 에러 처리 방법을 제공하는데, 앞선 포스팅에서 @RestControllerAdvice를 사용해야 하는 이유에 대해서 자세히 알아보았다. 이번 포스팅에서는 @RestControllerAdvice를 이용해 에러를 처리하는 방법에 대해서 구현하면서 살펴보도록 하자. 1. ControllerAdvice와 RestControllerAdvice [ ControllerAdvice와 RestControllerAdvice ] Spring은 전역적으로 예외를 처리할 수 있는 @ControllerAdvice와 @RestControllerAdvice 어노테이션을 각각 Spring3.2, Spring4.3부터 ..