Skip to content

[Refactor] 강의/수강/영상학습/커뮤니티/공지 도메인 프론트 연동 정리 및 버그 수정 #296

Description

@jongjunn

리팩토링 이슈

관련 이슈

  • Closes #

개선 대상

  • 프론트 연동 과정에서 발견된 도메인 버그 및 미연동 지점
  • 커뮤니티 게시글 수정/삭제·이미지, 강의 통계, 수강 완료 판정, 영상 완료 정책

개선 내용

  • 커뮤니티: 게시글 수정이 INSERT로 새 글을 만들던 버그 수정(PostRepositoryAdapter ID 있으면 UPDATE), 수정 시 기존 이미지 유지(keepFileUrls), 삭제 시 댓글/view_logs FK 정리, 썸네일 업로드 타입(COURSE_THUMBNAIL) 분리
  • 강의: 평점/리뷰수/수강생수 + 강사 통계(전체 수강생/강의수/평점) 실제 집계 추가(Stats Port/Adapter 신규), 인기/별점 정렬 보완
  • 수강/완료: 수강중 목록에서 COMPLETED 제외, enrollment status=COMPLETED도 완료로 인정
  • 영상 학습: 완료 기준을 max(시청시간, 재생위치) ≥ 90%로 변경 (2배속 시청 대응)
  • 회원: 탈퇴 시 phone_number NOT NULL 익명화 처리
  • 보안/설정: GET /uploads/**,/community/**,/identity/**,/api/subjects,/api/notices,/api/notices/* permitAll, WebConfig 정적경로 application.yml 주입화

영향 범위

  • domain/community, domain/cource, domain/enrollment_management, domain/learning_activity, domain/identity
  • global/config/SecurityConfig, global/config/WebConfig
  • 신규: cource/application/port/*StatsPort, cource/infrastructure/stats/*StatsAdapter
  • 브랜치: integ/backend

⚠️ application.yml 은 gitignore라 커밋에 미포함 → 별도 공지문 참고(필수 설정값)
⚠️ 영상 완료 기준을 "시청시간 90% → max(시청시간,재생위치) 90%"로 변경. 정책 협의 필요.


작업 체크리스트

  • 기존 동작을 유지했습니다
  • 중복 코드 또는 불필요한 로직을 정리했습니다
  • 네이밍과 책임을 명확히 했습니다
  • 테스트 또는 동작 확인을 완료했습니다

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions