📚 Spring Boot Starter 로 라이브러리를 만들어봐요!

Microservice 아키텍쳐로 서비스를 개발하다보면 공통적으로 쓰게 되는 비지니스 로직들이 있을텐데요, 이럴 경우 분산된 각 서비스마다 똑같은 코드를 개발하기보단 하나의 공통 라이브러리를 만들어서 의존성을 가지도록 하는게 여러모로 효율적일 때가 많습니다. 오늘은 이러한 라이브러리를 만드는 방법 중 Spring Boot Starter 를 통해 라이브러리를 만들어보는 방법을 공유드리고자 합니다. Spring Boot Starter 기반 라이브러리를 만드는 방법은 다음과 같습니다. 1️⃣ 라이브러리를 다중 모듈로 할지 단일 모듈로 할지 선택 Spring 공식문서(https://docs.spring.io/spring-boot/docs/2.6.7/reference/htmlsingle/#features.developing-auto-configuration.custom-starter) 내용을 참고하면 Spring Boot Starter 로 라이브러리를 만들 경우 라이브러리가 추가되었을 때 자동으로 서비스에 구성이 되도록 하는 모듈과 사용자가 옵션에 맞게 선택적으로 구성하도록 하는 모듈을 분리할 수 있습니다. 구현하려는 라이브러리의 기능이 복잡하지 않다면 단순하게 가는게 좋고 그렇지 않다면 각 상황에 맞춰 옵션을 제공하고 사용할 수 있게끔 모듈을 분리해야합니다. 2️⃣ 라이브러리 이름 선택 Spring 에서 제시하는 라이브러리 명명 규칙은 라이브러리 이름으로 이름을 시작하고 "-spring-boot-starter" 가 뒤에 오는 것입니다. 예를 들어 구현하고자 하는 라이브러리의 이름이 sample 이면, artifact ID 를 "sample-spring-boot-starter" 로 지정해야 합니다. 3️⃣ 종속성 추가 Maven 을 쓸 경우 <parent> tag 를 통해 'spring-boot-starter-parent' 에 대한 종속성이 추가되어야 합니다. 또한 Spring 의 AutoConfigure 기능을 사용하려면 'spring-boot-autoconfigure' 에 대한 의존성도 추가해주셔야 합니다. 4️⃣ 비지니스 로직 개발 필요한 기능을 수행할 수 있는 비지니스 로직을 개발합니다. 5️⃣ Auto-Configuration Class 작성 개발된 라이브러리가 자동으로 구성이 되도록 Auto-Configuration Class 를 작성해줍니다. Auto-Configuration Class 작성시 몇가지 팁이 있는데 그중 @ConditionalOnClass, @ConditionalOnMissingBean 를 사용해서 라이브러리에서 정의한 class 가 포함되었거나 Bean 으로 등록되지 않았을 경우 자동으로 구성이 되도록 하는 방법을 사용할 수 있습니다. 6️⃣ Auto-Configuration Class 가 동작하도록 spring.factories 에 정의 Auto-Configuration Class 를 작성했다고 해서 Spring 에서 구현한 모듈을 자동으로 구성해주지 않습니다. Spring Boot 는 Application 이 실행되었을 때 jar 파일 내의 META-INF 디렉토리에서 spring.factories 파일이 있는지 확인하고 여기에 정의된 내용대로 자동구성을 진행하게 됩니다. 공유드린 아티클에 Spring Boot Starter 기반 라이브러리 개발과 관련되서 좀더 상세한 내용과 샘플 코드 등이 있으니 관심있으신 분들께서는 한번 보시면 좋겠습니다.

Developing Custom Libraries With Spring Boot Starter

Medium

Developing Custom Libraries With Spring Boot Starter

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 12월 22일 오전 7:10

 • 

저장 34조회 2,687

댓글 0