[Refactor/Bugfix] Expense, Member 구조 개선 및 UI 업데이트#59
Merged
Conversation
- TravelMemberDTO를 MemberDTO로 리네이밍 및 구조 변경 - MemberRole 초기화 로직 추가 및 FetchMemberResponseDTO 적용
- Expense 구조체에서 payerId/Name을 TravelMember 타입의 payer로 변경 - CreateExpenseInput을 ExpenseInput으로 통합 및 일반화 - 관련 Request/Response DTO 필드 업데이트
- ExpenseInput 및 Member 구조 변경에 따른 Repository 프로토콜 및 구현체 수정 - Create/Update ExpenseUseCase 및 Mock 객체 업데이트 - CalculateSettlementUseCase 정산 로직 타입 수정 반영
- ExpenseCardView 디자인 개선 - SaveExpense 화면 UI 정렬 및 로직 수정 - SettlementResult 화면 레이아웃 및 스타일 보정
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 관련 이슈
✨ 작업 내용
MemberDTO 리네이밍 및 구조 개선
TravelMemberDTO→MemberDTO로 이름을 바꾸고,role을 옵셔널로 처리MemberRole에 안전한 초기화(init(value:)) 로직 추가Expense Entity 리팩터링
payerId/payerName필드를TravelMember타입의payer로 교체CreateExpenseInput을 폐기하고, 새로운ExpenseInput을 도입해 입력값을 통합UI·UX 스타일 업데이트
ExpenseCardView디자인 리뉴얼 (간격·색상·아이콘 교체)SaveExpenseFeature화면 레이아웃 정비 및 로직 정리SettlementResultFeature레이아웃·버튼 스타일 보정📸 Showcase
📝 참고 사항
Expense모델을 사용하는 모든 로직이 새 구조에 맞게 수정되었습니다.MemberDTO와Expense변환 로직이며, 현재 프로젝트 내 모든 호출을 업데이트했으니 빌드 오류는 발생하지 않습니다.UnitTest/SnapshotTest) 모두 통과했으며, CI 파이프라인에서도 성공을 확인했습니다.Motivation 🥳
payer정보를 별도TravelMember객체로 관리해 데이터 무결성을 보장하고,MemberDTO와MemberRole을 명확히 구분.CreateExpenseInput을 제거하고 하나의ExpenseInput으로 통합해 입출력 구조를 단순화.Key Changes 🔥
MemberDTO(신규)MemberRole(init 추가)Expense(payer 구조 변경)ExpenseInput(신규)ExpenseRepositoryProtocol(시그니처 변경)Domain/Sources/UseCase/Expense/*전체 리팩터링ExpenseCardView(디자인 리뉴얼)SaveExpenseFeature(레이아웃·로직 정리)SettlementResultFeature(버튼·레이아웃 개선)To Reviewers 🙏
ExpenseInput을 사용하는 모든 서비스·리포지터리 호출이 최신 시그니처를 사용하고 있는지 검증해 주세요.swift test를 한 번 실행해 주시면 좋습니다.Reference 🔗
DesignSystem/README.mdExpense모델 문서:Docs/Domain/Expense.mdClose Issues 🔒
Close #No.
Checklist
final,private제대로 넣었는지 확인