You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
문제 설명 : 마이페이지 수강중 목록의 진도율이 미리보기 레슨을 분모에 포함해 실제보다 낮게 표시됨. 학습화면(CourseProgressQueryAdapter)은 미리보기를 분모에서 제외하지만 마이페이지(MyEnrolledCourseQueryAdapter)는 미적용 상태. 미리보기 레슨은 완료 처리가 불가하므로 해당 강의는 영원히 100%에 도달할 수 없음.
🔄 재현 방법 (Steps to Reproduce)
미리보기 레슨이 포함된 강의 수강 신청
미리보기를 제외한 나머지 레슨 전부 완료
마이페이지 수강중 탭 진도율 확인 → 100% 미만으로 표시
🕵️♂️ 원인 분석 및 수정 내역
Model / Policy :
UseCase / Command :
Service :
Port / Adapter : MyEnrolledCourseQueryAdapter.java — lessons.size()가 미리보기 레슨을 포함한 전체 레슨 수를 분모로 사용. CourseProgressQueryAdapter:48의 PreviewLessonPolicy.isPreview 필터가 이 어댑터에는 미적용.
Repository :
Controller :
Response / Request :
🚨 검증 및 회귀 방지 (TestCode)
버그를 재현하는 실패 테스트 케이스 작성 (수정 전 빨간불 확인)
로직 수정 후 정상 통과 확인
예외(Exception) 처리 로직 보완 및 assertThrows 검증 완료
📸 로그 및 참고 자료
정상 동작 참고: CourseProgressQueryAdapter.java:48 — .filter(lesson -> !PreviewLessonPolicy.isPreview(section, lesson))
수정 대상: MyEnrolledCourseQueryAdapter.java — lessons.size() 및 완료 수 계산부
📊 버그 심각도 및 우선순위
P0: 서비스 핵심 동작 장애 (긴급 핫픽스 필요)P1: 주요 기능 오작동 및 예외 처리 누락P2: 마이너한 버그 및 시스템 영향이 적은 오류🐛 문제 상황 (현상)
연관 이슈 번호: #연관 도메인: enrollment_management문제 설명: 마이페이지 수강중 목록의 진도율이 미리보기 레슨을 분모에 포함해 실제보다 낮게 표시됨. 학습화면(CourseProgressQueryAdapter)은 미리보기를 분모에서 제외하지만 마이페이지(MyEnrolledCourseQueryAdapter)는 미적용 상태. 미리보기 레슨은 완료 처리가 불가하므로 해당 강의는 영원히 100%에 도달할 수 없음.🔄 재현 방법 (Steps to Reproduce)
🕵️♂️ 원인 분석 및 수정 내역
Model/Policy:UseCase/Command:Service:Port/Adapter:MyEnrolledCourseQueryAdapter.java—lessons.size()가 미리보기 레슨을 포함한 전체 레슨 수를 분모로 사용.CourseProgressQueryAdapter:48의PreviewLessonPolicy.isPreview필터가 이 어댑터에는 미적용.Repository:Controller:Response/Request:🚨 검증 및 회귀 방지 (TestCode)
assertThrows검증 완료📸 로그 및 참고 자료
CourseProgressQueryAdapter.java:48—.filter(lesson -> !PreviewLessonPolicy.isPreview(section, lesson))MyEnrolledCourseQueryAdapter.java—lessons.size()및 완료 수 계산부