PR에서 Spring Modulith 구조를 확인할 수 있게 한다#73
Draft
NaMinhyeok wants to merge 4 commits into
Draft
Conversation
Spring Modulith 구조 보고서CI가 생성한 현재 모듈 구조와 관찰된 의존성입니다. 모듈 그래프flowchart LR
room["Room"]
template["Template"]
room -->|"uses"| template
모듈 의존성
모듈 세부사항
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Spring Modulith 구조도
이 섹션은 CI가 자동으로 갱신합니다.
flowchart LR room["Room"] template["Template"] room -->|"uses"| template모듈 의존성
Room->Template(uses)모듈 세부사항
RoomBase package
com.naminhyeok.fantazzk.roomSpring components
Controllers
c.n.f.r.RoomApiControllerServices
c.n.f.r.ClearDraftPositionc.n.f.r.CreateRoomc.n.f.r.CreateRoomAttemptc.n.f.r.FindJoinableRoomsc.n.f.r.GetRoomc.n.f.r.JoinRoomc.n.f.r.PickDraftc.n.f.r.PlaceBidc.n.f.r.SelectDraftPositionc.n.f.r.SettleAuctionc.n.f.r.SettleAuctionAttemptc.n.f.r.StartRoomRepositories
c.n.f.r.AuctionScheduleJpaRepositoryc.n.f.r.JoinableRoomJpaRepositoryc.n.f.r.AuctionScheduleReader(viac.n.f.r.JpaAuctionScheduleReader)c.n.f.r.JoinableRoomReader(viac.n.f.r.JpaJoinableRoomReader)c.n.f.r.RoomsEvent listeners
c.n.f.r.RoomAuctionDeadlineSchedulerOthers
c.n.f.r.RoomActionAuthorizerc.n.f.r.RoomCodeGenerator(viac.n.f.r.UuidRoomCodeGenerator)c.n.f.r.TeamLeaderIdentityIssuer(viac.n.f.r.UuidTeamLeaderIdentityIssuer)Bean references
c.n.f.t.TemplateCatalog(in Template)Aggregate roots
c.n.f.r.RoomValue types
c.n.f.r.BidSequencec.n.f.r.RoomBidc.n.f.r.RoomTeamMemberEvents listened to
org.springframework.boot.context.event.ApplicationReadyEventTemplateBase package
com.naminhyeok.fantazzk.templateSpring components
Controllers
c.n.f.t.TemplateApiControllerServices
c.n.f.t.CreateTemplatec.n.f.t.FindTemplatesc.n.f.t.TemplateCatalog(viac.n.f.t.ProvideTemplateCatalog)Repositories
c.n.f.t.TemplateListReader(viac.n.f.t.JpaTemplateListReader)c.n.f.t.TemplateListJpaRepositoryc.n.f.t.TemplatesAggregate roots
c.n.f.t.TemplateValue types
c.n.f.t.TemplateConfigurationc.n.f.t.TemplatePlayer무엇을 변경했는가
build/spring-modulith산출물을 읽어 PR 본문용 Mermaid 섹션과 PR 코멘트용 상세 Markdown을 생성하는 스크립트를 확장했습니다.continue-on-error를 적용했습니다.왜 변경했는가
지금 저장소는 Spring Modulith 문서 산출물을 이미 만들 수 있지만, 그 결과를 로컬이나 artifact에서만 찾아봐야 해서 PR 리뷰 맥락에서는 잘 드러나지 않았습니다. 모듈 경계와 의존성을 PR 첫 화면에서 바로 보이게 하고, 더 자세한 내부 구성은 대화 탭에서 펼쳐보게 하면 구조 리뷰가 훨씬 빨라집니다.
어떻게 동작하는가
./gradlew check가 기존처럼 Modulith 문서 산출물을 생성합니다.scripts/render_modulith_pr_comment.py가components.puml,module-*.adoc를 읽어 두 가지 산출물을 만듭니다.리뷰 관점에서 기대하는 효과
Room -> Template같은 모듈 간 의존성을 artifact 다운로드 없이 확인할 수 있습니다.검증
python3 -m unittest scripts.tests.test_render_modulith_pr_commentpython3 scripts/render_modulith_pr_comment.py --target bodyruby -e "require 'yaml'; YAML.load_file('.github/workflows/ci.yml'); puts 'ci.yml ok'"./gradlew check integrationTest --parallel --no-daemon참고