Skip to content

Conversation

@jlkim909
Copy link
Member

PULL REQUEST

그룹(Group)일정(Schedule) 관련 도메인 모델, UI 구성, 네이밍 구조 전반에 걸친 리팩터링 작업입니다.
기존 중복된 속성 구조를 통합하고, 각 모델의 역할을 명확히 구분하며, 용어 및 코드 컨벤션을 일관되게 정리하였습니다.

Description

일정(Schedule) 모델 구조 개선

  • ScheduleBase 추상 클래스를 도입하여 중복되는 일정 공통 필드(id, title, location, scheduleTime, scheduleStatus)를 통합했습니다.
  • 다음 도메인 모델들이 ScheduleBase를 상속하도록 리팩터링:
    • GroupSchedule
    • JoinableGroupSchedule (이전: GroupScheduleSummary)
    • UpcomingSchedule (이전: Schedule)
  • 필드 네이밍 통일:
    • scheduleIdid
    • scheduleNametitle

그룹(Group) 모델 구조 개선

  • 그룹 공통 속성(id, name, memberSize)을 GroupBase 추상 클래스로 분리하여 중복 제거.
  • 다음 도메인 모델들이 GroupBase를 상속하도록 구조화:
    • JoinedGroup (이전: GroupSummary)
      • 사용자가 참여 중인 그룹 요약 정보
      • lastScheduleTime을 포함해 최근 활동 여부 확인 가능
    • GroupDetail
      • 상세 화면에서 사용되며, 멤버 리스트 기반으로 memberSize 자동 계산

네이밍 및 UI 구조 전반 정리

  • 모델 이름 변경에 맞춰 다음 요소들의 명명도 일괄 변경:
    • 함수, 변수, 파라미터
    • PreviewProvider
    • Composable 함수 이름 (GroupSummaryCardJoinedGroupCard, 등)
    • 문자열 리소스
    • 주석 및 문서화 텍스트
  • 예시:
    • getGroupSummaryPagingData()getJoinedGroupsPagingData()
    • GroupSummaryContentJoinedGroupsContent
    • GroupSummaryCardJoinedGroupCard
    • GroupSummaryListJoinedGroupListContent

기대 효과

  • 도메인 모델 간의 책임과 역할이 명확해져 유지보수성과 확장성이 향상됩니다.
  • 네이밍 일관성을 통해 신규 진입자 또는 리뷰어가 코드의 목적을 빠르게 파악할 수 있습니다.
  • 추후 새로운 일정/그룹 유형을 도입하거나 UI를 추가할 때 공통 베이스 클래스를 재사용할 수 있어 코드 재사용성이 높아집니다.

jlkim909 added 3 commits July 31, 2025 13:47
- 일정 관련 공통 속성(`id`, `title`, `location`, `scheduleTime`, `scheduleStatus`)을 `ScheduleBase` 추상 클래스로 분리하였습니다.
- 기존 `GroupScheduleSummary`는 `JoinableGroupSchedule`로 이름을 변경하여, 참여 가능한 일정이며 소유자 정보를 포함한다는 역할을 명확히 했습니다.
- `GroupSchedule`, `JoinableGroupSchedule`, `UpcomingSchedule` 등이 이를 상속하도록 구조를 통합했습니다.
- 네이밍 일관성을 위해 `scheduleName` → `title`로, `scheduleId` → `id`로 통일했습니다.
- 그룹 공통 속성(id, name, memberSize)을 GroupBase 추상 클래스로 분리하여 중복을 제거하였습니다.
- JoinedGroup은 사용자가 참여한 그룹 요약 정보를 나타내며, lastScheduleTime 속성을 포함합니다.
- GroupDetail은 상세 정보 화면에서 사용되며, members 리스트를 기반으로 memberSize를 자동 계산합니다.
…Schedule

- 홈 화면에서 사용하던 'GroupSummary' 용어를 'JoinedGroup'으로 전면 교체하여 명확한 의미 전달이 가능하도록 수정했습니다.
- 약속 관련 모델 및 UI에서 사용되던 'Schedule' 용어를 'UpcomingSchedule'로 변경하여 다가오는 일정임을 명시적으로 표현했습니다.
- 이에 따라 클래스명, 함수명, 변수명, 주석, 문자열 리소스 등을 일괄적으로 수정했습니다.
- PreviewProvider 이름도 새로운 네이밍 규칙에 맞춰 함께 변경했습니다.
@jlkim909 jlkim909 requested a review from hyunjung-choi July 31, 2025 05:24
@jlkim909 jlkim909 self-assigned this Jul 31, 2025
@jlkim909 jlkim909 added the refactor 코드 리팩토링 label Jul 31, 2025
@jlkim909 jlkim909 linked an issue Jul 31, 2025 that may be closed by this pull request
2 tasks
@jlkim909 jlkim909 merged commit 2c1f72b into develop Jul 31, 2025
1 check passed
@jlkim909 jlkim909 deleted the feature/refactor-domain-model-structure branch July 31, 2025 05:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor domain models with abstract base structures

1 participant