-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
🛠️ fixRefactor codeRefactor code
Description
🗒️ 수정하는 목적이 무엇인가요?
- 현재 세션, 출석, 활동 이력을 관리하는 도메인 모델이 상황에 따라 다르게 선언되고 사용되어 로직이 흩어져 있음
- 동일하게 일정을 반환하는 API임에도 어떤 모델을 사용하는지에 따라 다르게 표현되거나 누락되는 문제가 발생
- 동일한 모델의 사용을 통해 일관성 있는 API 사용 경험 제공
- 로직을 작성하는 입장에서도 매번 새로운 로직 작성할 필요 없이 공통 처리된 로직을 사용
💡 어떤 걸 수정하나요?
우선 모델을 정리한 뒤, 기존에 흩어져 있던 로직들을 각 모델에서 처리하도록 변경
모델 정리
현재 데이터 구조
현재 데이터는 다음과 같이 구분 되어 있음
- 활동이력: activity_units
- 일정: schedules
- 출석: attendances
모델 정리
- 기본 모델
- Player(활동 주체, activity_units를 표현하는 모델)
- Schedule(일정)
- Session(세션, 일정 상속)
- 중간 모델
- Attendee(참가자, Player <-> Schedule)
- 파생 모델
- Attedance(출석, Attendee의 파생)
- SessionPoster(세션 참가자, 세션1 : 참가자N)
- AttendanceHistory(개인의 출석 이력, 참가자1 : 세션N)
- Score(개인의 출석 이력을 기반으로 한 점수판)
- AttendanceBook(출석부, 기수 전체의 출석 상태 관리)
플로우
Service <-> Find, Command Service <-> Repository
- Entity와 모델을 변환하는 책임은 Find, Command Service에서 수행
- Service에서의 로직은 모델로 처리
개선 순서
- 모델 선언 및 단위 테스트
- Find, CommandService 생성하여 기존 메서드와 동일한 저장, 조회 기능을 수행하는 로직 생성 및 테스트
- 서비스 로직 변경 및 단위 테스트
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
🛠️ fixRefactor codeRefactor code