Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#1] 멀티 모듈 구조 작업 #2

Merged
merged 4 commits into from
Nov 18, 2024
Merged

[#1] 멀티 모듈 구조 작업 #2

merged 4 commits into from
Nov 18, 2024

Conversation

sssukho
Copy link
Collaborator

@sssukho sssukho commented Nov 12, 2024

멀티 모듈 구조 작업 중 아래와 같이 빌드가 되지 않는 이슈가 있습니다.

스크린샷 2024-11-12 오후 12 25 47

위 슬랙 내용중 빌드가 되지 않는 모듈은(a 모듈) bp-app-batch 입니다.

@sssukho sssukho added the bug Something isn't working label Nov 12, 2024
@sssukho sssukho self-assigned this Nov 12, 2024
Copy link
Collaborator

@f-lab-lyan f-lab-lyan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.gradle, .idea를 .gitignore에 추가해주시고, 이 PR에서도 삭제해주세요. :-)

@f-lab-lyan
Copy link
Collaborator

방금 확인했는데요. 모든 서브 모듈에 gradlew랑 settings.gradle이 존재하네요. 이 부분을 지우시면 될 것 같습니다. 그리고 이 부분이 어떤 역할을 하는지 고민해 보시면 좋을 것 같네요. :-)

@sssukho sssukho removed the bug Something isn't working label Nov 13, 2024
@sssukho sssukho linked an issue Nov 13, 2024 that may be closed by this pull request
@sssukho
Copy link
Collaborator Author

sssukho commented Nov 13, 2024

리뷰 감사합니다 😁

말씀해주신 내용 모두 반영하여 우아한 기술블로그 - 멀티모듈 설계 이야기 with Spring, Gradle 을 참고하여 아래와 같이 구성해보았습니다.

  1. 독립 모듈 계층: 시스템과 무관한 모듈로, 다른 모듈들을 의존(import)할 수 없다.

    • 없음
  2. 공통 모듈 계층: 모든 모듈에서 사용될 수 있는 모듈로, 다른 모듈들을 의존할 수 없다.

    • bp-dto : DTO를 가지는 역할을 한다.
    • bp-utils : Util 클래스만 가지는 역할을 한다.
  3. 도메인 모듈 계층: 도메인 모듈, 독립 모듈, 공통 모듈을 의존할 수 있으며, 최대 하나의 인프라(저장소)에 대한 책임만 갖고 도메인 비즈니스만 수행하는 역할을 갖는다.

    • bp-domain-rdb: rdb 설정 코드, repository, domain service, domain 등의 클래스를 갖는다.
  4. 내부 모듈 계층: 내부 모듈, 독립 모듈, 공통 모듈을 의존할 수 있다.

    • bp-kafka-event-publisher: kafka에 이벤트를 publish 하기 위한 모듈
    • bp-core-web: 웹 설정을 가지고 있는 모듈 (WebFilter 등등 을 가지고 있음)
  5. 애플리케이션 모듈 계층: 가장 상위 계층으로 하위 계층들을 조립하여 서비스 비즈니스를 완성한다.

    • bp-app-api: api 로직을 가지고 있는 모듈
    • bp-app-batch: 배치성 비즈니스 로직을 가지고 있는 모듈

@@ -0,0 +1,3 @@
rootProject.name = 'beautify-project'
include ':bp-app-api', ':bp-app-batch', ':bp-core-web', ':bp-dto', ':bp-dto',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
include ':bp-app-api', ':bp-app-batch', ':bp-core-web', ':bp-dto', ':bp-dto',
include 'bp-app-api', 'bp-app-batch', 'bp-core-web', ':bp-dto', ':bp-dto',

.gitignore Outdated
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필요없는 내용은 일단 빼면 좋을 것 같습니다.

@@ -0,0 +1,3 @@
rootProject.name = 'beautify-project'
include ':bp-app-api', ':bp-app-batch', ':bp-core-web', ':bp-dto', ':bp-dto',
':bp-kafka-event-publisher', ':bp-utils', ':bp-domain-rdb'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

build.gradle Outdated
@@ -0,0 +1,51 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.5'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
id 'org.springframework.boot' version '3.3.5'
id 'org.springframework.boot' version '3.3.5' apply false

@sssukho
Copy link
Collaborator Author

sssukho commented Nov 15, 2024

6주차 멘토링(2024-11-14)에서 말씀해주신 내용 모두 반영하였습니다! 😅

@f-lab-lyan
Copy link
Collaborator

고생하셨습니다. :-) 편하실 때, 머지 하시죠!

@sssukho sssukho merged commit 73eba8a into main Nov 18, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

멀티 모듈 구조 생성
2 participants