본문 바로가기

개발 공부/설계

[Spring boot][Gradle] Multiple Module 전환기 - 2. Multiple Module 초기 설정!

프로젝트 생성하기


먼저, 우리의 여정을 시작하기 위해 JDK 17을 선택했어요! 🌟 JDK 8이 인기 많지만, 여기에 잘 설명된 다양한 이유들로 JDK 17을 선택했습니다. 그 다음, 빌드 도구로는 Gradle을 선택했어요. Gradle과 Maven을 비교한 자세한 정보는 여기에서 확인할 수 있습니다.

그 다음 단계에서는 Spring Boot 버전을 2.7.3으로 설정합니다. Root Project의 build.gradle은 곧 삭제할 거니까, Dependencies는 신경 쓰지 않아도 돼요!

이제, Root Project(florry) 아래에 florry-client-user-apiflorry-domain 같은 모듈로 사용할 디렉토리들을 만들어볼까요? 🛠️

rootProject.name = 'florry'

include 'florry-client-user-api'
include 'florry-domain'

위 코드처럼, settings.gradle에서 프로젝트와 모듈의 구조를 정의해줍니다.

Root Project의 build.gradle 파일을 각 모듈로 복사한 다음에는, Root Project의 build.gradle 파일을 삭제해요. 이 접근 방식은 Gradle 문서를  참조했습니다. Gradle 버전 별로, 프로젝트 별로 다양한 방법이 있지만, 이 방법이 가장 쉽고 접근하긴 좋더라구요!

이제 각 모듈에 필요한 디렉토리를 추가할 시간이에요. build.gradleplugins - id ‘java’를 IntelliJ가 읽어서 자동으로 Gradle Source Sets를 추천해줍니다. 추천된 모든 설정을 선택하고 추가하면 돼요.

마지막으로, 각 모듈의 main - java 아래에 패키지를 만들고, API 모듈에는 아래와 같이 Main 클래스를 작성합니다.

@SpringBootApplication
public class UserApiApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApiApplication.class, args);
    }
}

API를 구현할 모듈에는 서로 공통된 패키지 명(com.florry) 바로 아래에 Main 클래스를 위치시킵니다. 이 위치에 클래스를 두지 않으면, Spring Context에 Bean이 제대로 등록되지 않을 수 있어요. 이런

실수로 인해 한참을 헤매던 경험이 있으니 주의하세요! 😉


이렇게 멀티 모듈 프로젝트의 기본 구조를 설정했어요! 이제 비즈니스 로직 구현을 위한 준비가 완료되었습니다. 이 구조를 기반으로 멋진 코드를 작성해보아요! 💻🌟