MSA강의를 수강하면서 따라하는 중
포트번호만 달리한 뒤
프로젝트를 세개, 네개씩 한번에 띄우는 일이 빈번했다.
이를 위해 매번 인텔리제이 창을 여러개 띄우는것도 번거롭고
각 서비스만 분리되어 빌드,배포가 가능하고
애플리케이션의 소스코드는 한곳에서 관리하는것이 올바르다고 생각해서
멀티모듈 프로젝트를 도입했다.
그리고 무엇보다 간지가 안난다.
가장 최근 사이드프로젝트로 진행한 프로젝트다.
나름대로 성능적인 측면이나, 코드도 신경많이썼지만,
프리뷰를 보았을 때
프론트엔드 모듈도 존재하지 않고,
src 하위에 모든 소스코드가 전부 다 들어가있다.
멋있지가 않다!
다른사람이 보면
'이사람은 모놀로직아키텍쳐밖에 못다뤄봤구나.
SPA 환경에서 개발은 해봤을까?
허접한 개발자인가?' 싶은 느낌이 들 수도 있다는 생각이 들었다.
이번에 마침 좋은 기회를 발견하여
애플리케이션 소스파일을 한곳에서 관리하는 과정을 공유하려고 한다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.5'
id 'io.spring.dependency-management' version '1.1.3'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
여기선 서버를 구동시키기 위해
SpringStartWeb만 추가하였다.
같은방법으로 프로젝트르 예제에선 4개까지 생성한다.
* 로컬에서 진행하는만큼 application.properties 혹은 application.yml 파일의 서버포트를 각각 다르게 설정해주자
* 껍데기 프로젝트의 src 폴더는 사용하지 않기에 삭제하였다.
물론 이상태에서 일일히 실행해도 된다!
그러나, 매번 모듈의 main메서드를 찾아가는 방법은 다소 귀찮다!
이를 좀 더 편리하게 하기위해 인텔리제이 좌측 하단의 Services 탭을 클릭한 후 + 버튼을 누른다.
RunConfigurationType을 들어가서 SpringBoot를 선택해준다.
실행시킬 애플리케이션들을 선택한 후 Run 버튼을 클릭하면
성공적으로 애플리케이션들이 실행된다!