service, repository를 interface로 두고 application과 db 모듈에서 가져다 사용할 수 있게 구성
db(persistence)
DB config관련 및 repository의 구현체내용
ex. mysql db 접근, mongo db 접근 등 관리
test 우선 스킵(이후 issue를 통해 개발 예정)
📌 고려사항
🏷️ multi module에서 resources 내부 설정파일 관리
각 모듈에서 resources/application.yml 같이 동일한 이름으로 지정하면 overriding 됨
account-api > common > domain 에서 account-api 실행시 해당 모듈의 application.yml 파일을 사용
app:service-api 모듈에서 db 모듈 가져올 때 runtimeOnly로 설정시 application.yml 설정을 가져오지 못하는 이슈 있음
🏷️ test에서의 application.yml 관리
testImplementation 한 것이 아니기에 common이나 domain의 resouces 내용 가져오지 못함
다른 방법 필요해보임
ex. service-api 에서 @SpringBootTest 수행
service-api/src/test/resources/application.yml 이 있으면 이걸 최우선으로 적용
1이 없으면 implementation한 domain에서 domain/src/main/resources/application.yml 을 참고
2가 없으면 service-api/src/main/resources/config/application.yml 참고
즉, domain 모듈을 implementation 해도 해당 모듈의 src/test/resources/application.yml 내용은 참고 X
🏷️ test 하위 implementing한 모듈 포함 테스트
app:service-api 모듈 테스트 수행시, app:common, domain 모듈도 테스트가 수행되어야 할 필요가 있음
(CI 과정에서 test 수행하는데 최종 application 실행하기 위한 executable jar로 build되는 app:account-api, app:service-api로 test 수행할 예정)
📌 multi-module 구성도
application
domain
db
(persistence
)📌 고려사항
🏷️ multi module에서 resources 내부 설정파일 관리
resources/application.yml
같이 동일한 이름으로 지정하면 overriding 됨account-api
>common
>domain
에서 account-api 실행시 해당 모듈의application.yml
파일을 사용app:service-api
모듈에서db
모듈 가져올 때runtimeOnly
로 설정시application.yml
설정을 가져오지 못하는 이슈 있음🏷️ test에서의 application.yml 관리
ex. service-api 에서 @SpringBootTest 수행
service-api/src/test/resources/application.yml
이 있으면 이걸 최우선으로 적용domain/src/main/resources/application.yml
을 참고service-api/src/main/resources/config/application.yml
참고즉, domain 모듈을 implementation 해도 해당 모듈의
src/test/resources/application.yml
내용은 참고 X🏷️ test 하위 implementing한 모듈 포함 테스트
app:service-api
모듈 테스트 수행시,app:common
,domain
모듈도 테스트가 수행되어야 할 필요가 있음(CI 과정에서 test 수행하는데 최종 application 실행하기 위한 executable jar로 build되는
app:account-api
,app:service-api
로 test 수행할 예정)afterEvaluate
를 통해 root build.gradle.kts에 설정된 Test task 설정에 대해서 특정 속성 overriding을 할 수 있다.🏷️ mapstruct with kotlin
unmapped target property: "copy".
📌 프로젝트 수정 사항