Skip to content

Conversation

@jlkim909
Copy link
Member

PULL REQUEST

도메인 모델을 구체화 및 리펙토링 작업

Description

UserData 모델 확장

  • 사용자 식별 및 포인트 정보를 포함하도록 UserDataid, kakaoId, point 필드를 추가했습니다.

공통 ID 필드명 통일

  • GroupSchedule.scheduleIdid, GroupMember.memberIdid로 필드명을 통일하여 도메인 모델 간 일관성을 높였습니다.

GroupScheduleSummary 정의

  • 일정 요약 정보를 담는 GroupScheduleSummary 모델을 도입했습니다.
    • 포함 필드: id, name, location, scheduleTime, owner

GroupMember 도메인 모델 구조 변경

  • 도메인 모델을 상황별로 구체화하기 위해 GroupMemberBase 추상 클래스를 도입했습니다.
  • GroupMember, GroupMemberWithPoint, GroupMemberWithArrivalTimeDiff가 이를 상속하도록 구성하여 공통 필드를 재사용하고 의미 기반 확장을 가능하게 했습니다.

jlkim909 added 4 commits July 30, 2025 21:51
- `UserData` 데이터 클래스에 `id`, `kakaoId`, `point` 필드를 추가했습니다.
- `UserDataProto` 메시지 정의를 업데이트하여 해당 필드들을 포함하도록 수정했습니다.
- `UserDataMapper`에서 `UserDataProto` ↔ `UserData` 간 매핑 로직에 새 필드를 반영했습니다.
- `GroupSchedule.scheduleId` → `id`, `GroupMember.memberId` → `id`로 필드명을 통일했습니다.
- 변경된 이름에 맞춰 관련 네트워크 모델, 데이터 소스, 테스트 코드의 참조도 일괄 수정했습니다.
- 그룹 일정 요약 정보를 나타내는 `GroupScheduleSummary` 데이터 클래스를 새로 정의했습니다.
- 포함 필드:
  - `id`: 일정 식별자
  - `name`: 일정 이름
  - `location`: 장소 정보 (`Location`)
  - `scheduleTime`: 일정 시간 (`LocalDateTime`)
  - `owner`: 생성자 정보 (`GroupMember`)
- `GroupMemberBase` 추상 클래스를 도입하여 공통 프로퍼티(`id`, `nickname`, `memberProfileImage`)를 정의했습니다.
- 다양한 맥락별 멤버 모델(`GroupMember`, `GroupMemberWithPoint`, `GroupMemberWithArrivalTimeDiff`)이 이를 상속하도록 구성해, 중복된 필드 선언을 제거하고 타입 간 일관성과 다형성을 확보했습니다.
@jlkim909 jlkim909 requested a review from hyunjung-choi July 30, 2025 14:49
@jlkim909 jlkim909 self-assigned this Jul 30, 2025
@jlkim909 jlkim909 added feat 새로운 기능 refactor 코드 리팩토링 labels Jul 30, 2025
@jlkim909 jlkim909 merged commit cfa7a96 into develop Jul 30, 2025
1 check passed
@jlkim909 jlkim909 deleted the feature/domain-model branch July 30, 2025 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 새로운 기능 refactor 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant