Skip to content

Conversation

@seokbeom00
Copy link
Contributor

@seokbeom00 seokbeom00 commented Mar 2, 2025

💡 Issue

📄 Description

📌 도메인 설계 변경 사항

  • 세트 제출이라는 개념이 삭제됨과 함께 세트 제출 엔티티를 제거했습니다.
  • 기존에는 '세트 제출'과 동시에 문항과 새끼문항의 상태를 '미제출' 상태로 일괄처리 하려했지만, 사용자가 세트에 진입하고 이탈하는 시나리오를 고려했을 때 불필요한 데이터가 많아질것이라 판단했습니다.
  • 따라서 문항제출과 새끼문항제출을 독립적으로 관리하기로 결정했습니다.

문항제출 & 새끼문항제출

  • 발행을 식별할 수 있는 publishId 필드가 추가되었습니다.
  • 동일한 세트가 여러 날짜에도 발행될 수 있고, 동일한 문항이 여러 세트에 포함될 수 있습니다.
  • 때문에 문항/새끼문항 제출 시, 어떤 날짜에 발행된 문항/새끼문항인지를 식별할 수 있어야합니다.
  • 둘의 생성주기는 독립적이기 떄문에 별도의 연관관계를 설정하지 않았습니다.

사용자 통계

  • 기존 사용자 통계 엔티티를 제거했습니다.
  • 사용자별로 맞은 개념태그들과 틀린 개념태그들 정보만 있어도 개별 취약점 등의 정보를 제공할 수 있다고 판단했습니다.
  • 둘의 생성주기 또한 독립적이기 떄문에 별도의 연관관계를 설정하지 않았습니다.

📌 추후 고려 사항

  • 사용자 통계를 위해 이벤트를 도입해야합니다.
  • 이벤트가 도입됨에 따라 UseCase 레이어가 추가되어야 할 것 같습니다.
  • 사용자 통계쪽에 루트 애그리거트가 필요한 상황이 오면 고려해볼만 한 것 같습니다.

@seokbeom00 seokbeom00 added the Type: Feature [이슈 목적] 새로운 기능 추가 label Mar 2, 2025
@seokbeom00 seokbeom00 requested a review from sejoon00 March 2, 2025 11:45
@seokbeom00 seokbeom00 self-assigned this Mar 2, 2025
Copy link
Contributor

@sejoon00 sejoon00 left a comment

Choose a reason for hiding this comment

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

수고하셨습니다

private Long id;

@Column(name = "member_statistics_id", nullable = false)
private Long memberStatisticsId;
Copy link
Contributor

Choose a reason for hiding this comment

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

사용자 통계와 틀린 개념 통계, 맞은 개념 통계의 연관 관계에서 다대일보다는 일대다가 더 적합한 경우일 수 있다는 생각이 드네요.
각 개별 통계는 사용자 통계를 알 필요가 없지만, 사용자 통계는 루트 엔티티로서 통계를 취합하고 계산하는 책임을 가지고 있습니다.
그래서 각 통계를 List로 가지고 있다면, 사용자 통계에서 이들을 관리하고, 계산하는 데 훨씬 용이할 것 같다는 생각입니다.


@Column(name = "problem_set_id", nullable = false)
private Long problemSetId;

Copy link
Contributor

Choose a reason for hiding this comment

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

진척도가 추가되면 좋을 것 같습니다.
SetSubmit에서 하위 문제들을 몇 번까지 풀었는지 진척도를 계산할 수 있는 비즈니스로직도 추가되면 좋을 것 같아요

Copy link
Contributor Author

Choose a reason for hiding this comment

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

진척도는 추후, 조회 API 구현 시 Dto필드에 추가하겠습니다!

@seokbeom00 seokbeom00 changed the title [feat/#58] 사용자 제출 통계 도메인 구현 [feat/#58] 사용자 문항/새끼문항 제출, 통계 도메인 설계 및 구현 Mar 11, 2025
@seokbeom00 seokbeom00 merged commit 4f2ab0c into develop Mar 11, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: Feature [이슈 목적] 새로운 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ 사용자 통계 도메인 설계 및 구현

3 participants