Skip to content

[ENHANCEMENT] Revision 서비스 강사/디자이너 역할 분리 및 QueryService 도입#93

Merged
Jong0128 merged 1 commit into
devfrom
refactor/#91-revision-query-service
Jul 5, 2026
Merged

[ENHANCEMENT] Revision 서비스 강사/디자이너 역할 분리 및 QueryService 도입#93
Jong0128 merged 1 commit into
devfrom
refactor/#91-revision-query-service

Conversation

@Jong0128

@Jong0128 Jong0128 commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

🚀 Related issue

Closes #91

#️⃣ Summary

  • Revision 서비스의 순수 조회 로직을 RevisionQueryService로 분리하고, 쓰기 로직을 강사/디자이너 역할별 서비스로 분리

🔧 Changes

  • RevisionQueryService: 순수 조회 로직 분리
  • InstructorRevisionService: 강사 측 로직 이동 (createRevisionRequest, getDesignerCommentAndCheck)
  • DesignerRevisionService: 디자이너 측 로직 이동 (getRevisionRequestAndCheck)
  • 기존 RevisionService 삭제 및 DesignerRevisionFacade/InstructorRevisionFacade 호출부 전환

📸 Test Evidence

💬 Reviewer Notes

  • getRevisionRequestAndCheck, getDesignerCommentAndCheck는 이름은 조회지만 check()로 상태를 변경하는 효과가 있어 QueryService가 아닌 역할별 서비스에 두었습니다.

Summary by CodeRabbit

  • Bug Fixes
    • 수정 요청 상세 조회와 작성 흐름이 분리되어, 수정 차수 계산과 요청 존재 여부 확인이 더 안정적으로 처리됩니다.
    • 디자이너 코멘트 및 수정 요청 처리 로직이 정리되어, 수정 관련 화면 응답이 일관되게 동작합니다.
  • Refactor
    • 수정 조회와 처리 책임을 분리해 전체 흐름을 더 명확하게 개선했습니다.

@Jong0128 Jong0128 self-assigned this Jul 4, 2026
@Jong0128 Jong0128 requested a review from fervovita as a code owner July 4, 2026 08:11
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: 6fe465ff-32b4-44b7-9f61-091161b3dec6

📥 Commits

Reviewing files that changed from the base of the PR and between ba81caf and 0b28424.

📒 Files selected for processing (5)
  • src/main/java/ditda/backend/domain/commission/revision/facade/DesignerRevisionFacade.java
  • src/main/java/ditda/backend/domain/commission/revision/facade/InstructorRevisionFacade.java
  • src/main/java/ditda/backend/domain/commission/revision/service/DesignerRevisionService.java
  • src/main/java/ditda/backend/domain/commission/revision/service/InstructorRevisionService.java
  • src/main/java/ditda/backend/domain/commission/revision/service/RevisionQueryService.java

📝 Walkthrough

Walkthrough

기존 RevisionService 하나에 몰려 있던 조회/검증/쓰기 로직을 DesignerRevisionService, InstructorRevisionService, RevisionQueryService 세 개로 분리했다. 두 Facade(DesignerRevisionFacade, InstructorRevisionFacade)는 새 서비스들을 주입받아 기존 호출을 대체하도록 변경되었다.

Changes

Revision 서비스 분리

Layer / File(s) Summary
RevisionQueryService 신규 도입
src/main/java/ditda/backend/domain/commission/revision/service/RevisionQueryService.java
수정 상세 목록 조회, 현재 수정 차수 계산, draft의 수정요청 존재 여부 확인을 담당하는 readOnly 조회 서비스를 신설했다.
DesignerRevisionService 신규 도입
src/main/java/ditda/backend/domain/commission/revision/service/DesignerRevisionService.java
getRevisionRequestAndCheck(draftId)를 제공하여 수정요청을 조회하고 없으면 예외를 던지며 검증을 수행하는 서비스를 신설했다.
InstructorRevisionService 리네임 및 책임 축소
src/main/java/ditda/backend/domain/commission/revision/service/InstructorRevisionService.java
기존 RevisionService를 개명하고 조회 관련 공개 메서드들을 제거했으며, getDesignerCommentAndCheckcreateRevisionRequest만 유지·제공한다.
DesignerRevisionFacade 배선 변경
src/main/java/ditda/backend/domain/commission/revision/facade/DesignerRevisionFacade.java
RevisionService 의존을 제거하고 DesignerRevisionService, RevisionQueryService를 주입받아 getRevisionDetail의 호출을 대체했다.
InstructorRevisionFacade 배선 변경
src/main/java/ditda/backend/domain/commission/revision/facade/InstructorRevisionFacade.java
RevisionService 의존을 제거하고 RevisionQueryService, InstructorRevisionService를 주입받아 getRevisionDetail, createRevision의 호출을 대체했다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested labels: ✨ Feature

Suggested reviewers: fervovita

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목이 Revision 서비스의 역할 분리와 QueryService 도입이라는 핵심 변경을 정확히 요약합니다.
Linked Issues check ✅ Passed #91의 조회 로직 분리와 RevisionService의 쓰기·도메인 중심 재구성이 반영되었습니다.
Out of Scope Changes check ✅ Passed 요약된 변경은 모두 Revision 서비스 리팩토링 범위에 맞고, 별도 범위의 수정은 보이지 않습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/#91-revision-query-service

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@fervovita fervovita left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

좋습니다!! 수고하셨습니당👍

@Jong0128 Jong0128 merged commit 6ad52d4 into dev Jul 5, 2026
2 checks passed
@Jong0128 Jong0128 deleted the refactor/#91-revision-query-service branch July 5, 2026 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ENHANCEMENT] Revision 서비스 강사/디자이너 역할 분리 및 QueryService 도입

2 participants