Backend 개발자/아키텍처

Boilerplate 재사용 가능한 멀티모듈 프로젝트 구성하기 Java Springboot Gradle

by 앵과장 2024. 1. 29. 07:34
반응형

프로젝트 진행하다 보면 Gradle 구성을 처음부터 진행하게 되는 횟수가 많지는 않은 것 같은데
보통은 기존에 구성된 프로젝트를 컨트롤 C 컨트롤 V 해서 기본틀글 구성하고 Application을 구동해서 정상동작 성공 Ok 반은 되었어 이러며 시작하게 되는데

2024년 의도치 않게 Gradle Multi Module Web Application 구성을 할 일이 있어서 정리하게 됩니다

들어가기 전에

프로젝트 들어가기 전에 맨날 복사 붙여 넣기 하다 보니 물론 잘 돌아가고 구성 잘하면 문제가 없기는 한데
최근 어떻게 만들어야 되는지 찾아보질 않아서
Gradle, spring.start.io 2개의 공식 사이트를 뒤 적여본 뒤에 복사 붙여 넣기 예정이라는 점 참고하세요

Spring io

https://spring.io/

Spring | Home

Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform.

spring.io

https://start.spring.io

Java Spring 개발자라면 Gradle 공식사이트는 자주 안 가볼 수 있지만 이 사이트는 그래도 자주 접한 곳이 아니었을까 하는 생각을 하게 됩니다

Start spring io에서 기본사용 프로젝트를 선택하고 생성을 누르거나 미리 보기로 Application Run 가능한 프로젝트를 생성 후 진행하게 됩니다



Gradle Build Tool

https://gradle.org/

Gradle Build Tool

Accelerate developer productivity. Gradle helps teams build, automate and deliver better software, faster.

gradle.org


Gradle Project를 구성하면서 생각해 보면 제대로 공식문서를 찾아서 분석하며 어떤 설명이 있었는지 제대로 찾아보질 않아서..
멀티모듈 프로젝트 구성이 예전방법과 어떤 부분이 변경되었는지 검색해 보니 역시나 많이 바뀌었네요


Gradle 설치를 하는 것도 방법이고 개발가능한 Tool에서 진행하는 것도 방법입니다
되도록 이면 Local에 설치 후 진행해 보는 것이 직관적으로 인지 된다는 점 참고하세요

https://gradle.org/guides/#getting-started

Gradle | Gradle Guides

Learn Gradle through topical guides.

gradle.org

2번째 Getting-Started 선택 시 다양한 Gradle Project 생성 방법을 확인할 수 있는데 여기서는 멀티모듈 프로젝트를 진행해 볼 생각입니다

Gradle 설치 이후 진행할 프로젝트 폴더 생성 후
폴더 위치에서 터미널로 접근 후 위에서 알려준 명령어로 실행 후 선택하게 되면 Gradle Multi Module Project 구조가 생성됩니다

저처럼 안 해보신 분들은 뭔가 구성이 이해가 아리송하고
해보신 분들은 모르는 저를 안타까워해 주시면 됩니다
ㅜㅡㅜ

선택한 Build 구성 언어에 따라서 패키지 구조 확인 가능합니다

이렇게 친절하게 용도에 대해서도 설명이 있으니 공식문서 꼭 참고해 보세요

제가 설명을 이렇게 간단하게 하기는 했지만 결국 본인이 직접 구성하고 삽질을 해봐야 이해가 된다는 점 참고하세요

이번에 해보면서 배우게 된 구성요소는
BuildSrc 구성, Gradle 추상화요소, Toml 확장자 용도, Kotlin build gradle 4가지가 가장 기억에 남는 것 같네요

https://github.com/lswteen/boilerplate

GitHub - lswteen/boilerplate: boilerplate with springboot

boilerplate with springboot. Contribute to lswteen/boilerplate development by creating an account on GitHub.

github.com


위에서 언급한 2개의 공식문서를 기반으로 멀티모듈 프로젝트를 구성하였고 프로젝트 이름은 Boilerplate라고 명칭 하였는데

예전에는 그냥 스켈레톤이라는 뼈대라는 용어를 많이 사용하였는데 클린코드나 자바 이펙티브에서 종종 보던 보일러플레이트라는 명칭으로 구성하였습니다

보일러플레이트라는 용어를 중복을 제거하고 재사용 가능하게 하는 것이라고 정의하였는데

큰 범위로 프로젝트 전체에 대해서도 재사용이 가능한 프로젝트 구성이라는 목적으로 사용되기도 하는 것 같습니다

#보일러플레이트
#멀티모듈프로젝트
#Springboot
#toml