springboot 멀티모듈 구성하기
이런 구조를 보신적이 있으신가요?
이런 구조를 멀티모듈 구조라고 합니다.
지금부터 왜 이 멀티모듈 구조가 필요한지 알아보도록 합시다.
저는 멀티모듈구조를 갖기전
1. 관리자 프로젝트
2. 크롤링 프로젝트
3. 앱서버 프로젝트
이렇게 3가지의 프로젝트를 분리해서 개발을 해왔습니다.
이렇게 프로젝트를 분리해서 개발을 하니,
관리자 프로젝트가 가지는 Entity에서 하나가 추가되면
크롤링 프로젝트에서도 Entity를 같이 추가를 해줘야하고,
앱서버 프로젝트에서도 Entity를 같이 추가를 해줘야하고,
이러한 번거로움이 있었습니다.
복사를 하면 되지 뭐가 번거롭냐?? 생각하시는 분들도 있겠지만,
지금부터 제가 알려드리는 멀티모듈을 이용한다면 훨씬 더 편하다고 느끼실 겁니다.
위의 그림처럼 Entity를 재사용하는 모듈을 따로 빼줘서 각자 추가 안해도되게 할겁니다.
module-database가 되겠네요.
쉽게 따라오시면 됩니다.
1. 제일 상단의 루트 프로젝트를 만든다.
2. 각자 모듈을 만들어줍니다.
이렇게 분리된 모듈 구조형태로 생깁니다.
3. setting.gradle 을 확인하시면 이렇게 include가 자동으로 세팅 됩니다. (없다면 직접 해주셔야합니다.)
4. build.gradle 세팅
4-1 subprojects 세팅 (하위에 모든 프로젝트 공통으로 들어갈 것들입니다.)
4-2 각 project 주입(module-database를 각 프로젝트에 의존성주입해주는것을 보실수 있습니다.)
이렇게 세팅이 완료되었으면, 확인을 해봅시다.
각 모듈마다 project module-database를 가지고 있는것을 확인할수 있습니다.
# 코드로 확인해보기
module-database에 Member 객체를 생성 후 module-api에서 불러와지나 확인해보기.
Member 객체를 module-api에서 제대로 꺼내올 수 있는 것을 알수 있습니다.
끝.