Skip to content

Conversation

@Hrepay
Copy link
Collaborator

@Hrepay Hrepay commented Feb 3, 2026

🔗 연결된 이슈

Resolved #57

✨ 주요 작업사항

이번 PR의 핵심 변경사항을 알려주세요!

  • 요약

    • 이번 PR은 아키텍처 문서화 강화, DI(Dependency Injection) 구조 리팩터링, 기능(Feature) 단위 모듈화/격리, 그리고 UI/데이터 처리 패턴 정리를 통해 전반적인 확장성·유지보수성·일관성을 개선함.
  • 아키텍처 & 문서 개선

    • ARCHITECTURE.md 추가

      • 프로젝트의 레이어드 구조(MVVM + Clean Architecture) 설명
      • DI 컨테이너 사용 방식, Router 패턴 기반 네비게이션, 모듈/폴더 구성 원칙을 명확히 정리
  • DI 리팩터링 & Feature 모듈화

    • AppDIContainer 리팩터링

      • ProfileDIContainer, AuthDIContainer 같은 Feature 전용 DI 컨테이너를 생성/주입
      • 이를 SettingDIContainer 등 다른 모듈에 전달하여 관심사 분리, 테스트 용이성, 기능 격리 강화
    • ProfileDIContainer 역할 확장

      • profile + history 관련 repository/service를 함께 관리
      • ProfileViewModel을 통합 제공하고, 월별 히스토리 use case 연동까지 포함하도록 개선
  • 기능 추가 & UI 일관성 개선

    • 설정/탈퇴(Withdrawal) 플로우 강화

      • WithdrawAccountUseCase, WithdrawViewModel 신규 도입
      • 화면 전환/구성을 위한 View Factory 제공으로 네비게이션 및 유지보수성 향상
    • TermsAgreementView 등 SwiftUI 정리

      • 바인딩/버튼 액션/프리뷰 사용을 단순화
      • 코드가 더 깔끔하고 일관된 SwiftUI 패턴으로 정돈됨
  • API & 데이터 처리 개선

    • Cloth 업로드 presigned URL 요청 시 올바른 operation name 사용하도록 수정 → 백엔드 연동 정확성 개선

    • DataSource 생성자/댓글 생성 로직 리팩터링

      • 확장성 향상
      • 현재 사용자 컨텍스트 반영으로 댓글 처리 신뢰도 개선
  • 자잘한 코드 품질 개선

    • 토큰 처리/로그아웃 로직 개선

      • 토큰이 확실히 클리어되도록 보강
      • 조건문 단순화로 가독성 향상
    • UI 컴포넌트의 불필요한 에러 로그 제거 → 사용자 경험/로그 노이즈 개선

🔍 리뷰어에게 (선택)

코드 리뷰 시 특별히 확인했으면 하는 부분이나, 의견을 묻고 싶은 내용을 적어주세요!

  • 마이페이지 & 설정 부분 API 연결 완료했습니다. 연결되는 뷰들도 UI/UX 개선했습니다.
  • 4차 API 연결에서 마무리 짓고 UX 개선해야할 것 같습니다.

Hrepay added 25 commits January 31, 2026 19:39
- MonthlyHistoryItem 모델 추가
- HistoryAPIService에 fetchMonthlyHistory 메서드 추가
- ProfileViewModel에서 월별 기록 로드 및 상태 관리
- CalendarMonthView에서 각 날짜에 첫 번째 기록 이미지 표시
- ProfileView에서 monthlyHistories 바인딩 추가
@Hrepay Hrepay requested review from Funital and taebin2 February 3, 2026 13:03
@Hrepay Hrepay self-assigned this Feb 3, 2026
@Hrepay Hrepay added the 📃 Feat 사용자를 위한 새로운 기능 추가 또는 개선 label Feb 3, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @Hrepay, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이번 PR은 앱 아키텍처 문서화, DI 구조 리팩터링, 기능 단위 모듈화, UI/데이터 처리 패턴 정리, API 연동 개선, 그리고 코드 품질 향상을 통해 전반적인 확장성, 유지보수성, 일관성을 개선하는 데 중점을 두고 있습니다. 특히 마이페이지 및 설정 부분 API 연결을 완료하고, 관련 뷰들의 UI/UX를 개선했습니다.

Highlights

  • 아키텍처 및 문서 개선: ARCHITECTURE.md 파일을 추가하여 프로젝트의 레이어드 구조, DI 컨테이너 사용 방식, Router 패턴 기반 네비게이션, 모듈/폴더 구성 원칙을 명확히 정리했습니다.
  • DI 리팩터링 및 Feature 모듈화: AppDIContainer를 리팩터링하여 ProfileDIContainer, AuthDIContainer와 같은 Feature 전용 DI 컨테이너를 생성/주입하고, 이를 다른 모듈에 전달하여 관심사 분리, 테스트 용이성, 기능 격리를 강화했습니다.
  • 기능 추가 및 UI 일관성 개선: 설정/탈퇴 플로우를 강화하고, WithdrawAccountUseCase, WithdrawViewModel을 도입하여 화면 전환/구성을 위한 View Factory를 제공함으로써 네비게이션 및 유지보수성을 향상시켰습니다. 또한, TermsAgreementView 등 SwiftUI 코드를 정리하여 더 깔끔하고 일관된 SwiftUI 패턴으로 정돈했습니다.
  • API 및 데이터 처리 개선: Cloth 업로드 presigned URL 요청 시 올바른 operation name을 사용하도록 수정하여 백엔드 연동 정확성을 개선하고, DataSource 생성자/댓글 생성 로직을 리팩터링하여 확장성을 향상시키고 현재 사용자 컨텍스트를 반영하여 댓글 처리 신뢰도를 개선했습니다.
  • 코드 품질 개선: 토큰 처리/로그아웃 로직을 개선하여 토큰이 확실히 클리어되도록 보강하고, 조건문 단순화로 가독성을 향상시켰으며, UI 컴포넌트의 불필요한 에러 로그를 제거하여 사용자 경험/로그 노이즈를 개선했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • ARCHITECTURE.md
    • 프로젝트 아키텍처 및 디자인 패턴에 대한 개요를 제공하는 문서 추가. MVVM, Clean Architecture, DI Container, Router 패턴 설명.
  • Codive/Application/AppRootView.swift
    • TermsAgreementView 호출 방식 변경 및 소셜 인증 콜백 처리 로직 개선.
  • Codive/Core/Resources/TextLiteral.swift
    • 계정 탈퇴 관련 텍스트 리터럴 추가.
  • Codive/DIContainer/AppDIContainer.swift
    • Router 간 의존성 설정 추가 및 SettingDIContainer에 ProfileDIContainer, AuthDIContainer 주입.
  • Codive/DIContainer/ProfileDIContainer.swift
    • profile + history 관련 repository/service를 함께 관리하도록 개선, 월별 히스토리 use case 연동.
  • Codive/DIContainer/SettingDIContainer.swift
    • WithdrawAccountUseCase 추가 및 WithdrawViewModel 팩토리 메서드 추가.
  • Codive/Features/Auth/Data/Repositories/AuthRepositoryImpl.swift
    • 로그아웃 시 키체인 토큰 삭제 로직 추가.
  • Codive/Features/Auth/Data/SocialAuthService.swift
    • 소셜 인증 콜백 처리 로직 개선.
  • Codive/Features/Auth/Data/TokenService.swift
    • 키체인에 유효한 토큰이 있는지 확인하는 로직 개선.
  • Codive/Features/Auth/Presentation/View/AuthFlowView.swift
    • AuthFlowView 구조 개선.
  • Codive/Features/Auth/Presentation/View/OnboardingView.swift
    • OnboardingContainerView 프리뷰 수정.
  • Codive/Features/Auth/Presentation/View/TermsAgreementView.swift
    • TermsAgreementView 바인딩/버튼 액션/프리뷰 사용을 단순화.
  • Codive/Features/Closet/Data/ClothAPIService.swift
    • Cloth 업로드 presigned URL 요청 시 올바른 operation name 사용하도록 수정.
  • Codive/Features/Closet/Presentation/Components/ClothingCardView.swift
    • ClothingCard 이미지 로드 실패 시 불필요한 에러 로그 제거.
  • Codive/Features/Comment/Data/DataSources/CommentDataSource.swift
    • 댓글 작성 시 현재 사용자 컨텍스트 반영하도록 수정.
  • Codive/Features/Comment/Presentation/View/CommentView.swift
    • 댓글 목록 뷰 개선 및 답글 더보기 기능 추가.
  • Codive/Features/Comment/Presentation/ViewModel/CommentViewModel.swift
    • 댓글/대댓글 작성 후 목록 전체 리로드 대신 최신 댓글/대댓글을 추가하는 방식으로 변경.
  • Codive/Features/Feed/Data/DataSources/FeedDataSource.swift
    • HistoryDetailDTO에 isLiked 필드 추가.
  • Codive/Features/Feed/Data/HistoryAPIService.swift
    • 월별 히스토리 API 연동 및 HistoryDetailDTO 수정.
  • Codive/Features/Feed/Data/Repositories/HistoryRepositoryImpl.swift
    • HistoryRepository 구현체 추가.
  • Codive/Features/Feed/Domain/Entities/MonthlyHistoryItem.swift
    • 월별 히스토리 아이템 엔티티 및 DTO 추가.
  • Codive/Features/Feed/Domain/Protocols/HistoryRepository.swift
    • HistoryRepository 프로토콜 추가.
  • Codive/Features/Feed/Domain/UseCases/FetchMonthlyHistoryUseCase.swift
    • 월별 히스토리 가져오기 UseCase 추가.
  • Codive/Features/Feed/Presentation/Add/ViewModel/RecordDetailViewModel.swift
    • RecordDetailViewModel 개선.
  • Codive/Features/Feed/Presentation/FeedDetail/View/FeedDetailView.swift
    • FeedDetailView 구조 개선.
  • Codive/Features/Feed/Presentation/FeedDetail/ViewModel/FeedDetailViewModel.swift
    • FeedDetailViewModel 개선.
  • Codive/Features/Feed/Presentation/MainFeed/View/FeedView.swift
    • FeedView 로딩 시점 수정.
  • Codive/Features/Main/View/MainTabView.swift
    • MainTabView에 설정 관련 뷰 추가.
  • Codive/Features/Profile/MyProfile/Data/ProfileAPIService.swift
    • 내 정보 API 응답 DTO 변경 및 프로필 이미지 업로드 API 수정.
  • Codive/Features/Profile/MyProfile/Domain/Entities/ProfileEntity.swift
    • MyProfileInfo 엔티티에 email 필드 추가.
  • Codive/Features/Profile/MyProfile/Domain/UseCases/UpdateProfileUseCase.swift
    • UpdateProfileUseCase 개선.
  • Codive/Features/Profile/MyProfile/Presentation/View/ProfileView.swift
    • ProfileView에 CalendarMonthView 추가.
  • Codive/Features/Profile/MyProfile/Presentation/ViewModel/ProfileSettingViewModel.swift
    • ProfileSettingViewModel 개선.
  • Codive/Features/Profile/MyProfile/Presentation/ViewModel/ProfileViewModel.swift
    • ProfileViewModel에 월별 히스토리 로딩 로직 추가.
  • Codive/Features/Profile/OtherProfile/Presentation/View/OtherProfileView.swift
    • OtherProfileView에 CalendarMonthView 추가.
  • Codive/Features/Profile/OtherProfile/Presentation/ViewModel/OtherProfileViewModel.swift
    • OtherProfileViewModel 개선.
  • Codive/Features/Profile/Shared/Presentation/Components/CalendarMonthView.swift
    • CalendarMonthView에 월별 히스토리 표시 기능 추가.
  • Codive/Features/Search/Data/SearchAPIService.swift
    • 사용자 검색 API endpoint 수정.
  • Codive/Features/Search/Presentation/ViewModel/SearchResultViewModel.swift
    • SearchResultViewModel 개선.
  • Codive/Features/Setting/Data/DTOs/BlockedUserDTO.swift
    • 차단된 사용자 관련 DTO 추가.
  • Codive/Features/Setting/Data/DTOs/LikedHistoryDTO.swift
    • 좋아요한 기록 관련 DTO 추가.
  • Codive/Features/Setting/Data/DTOs/MyCommentDTO.swift
    • 내 댓글 관련 DTO 추가.
  • Codive/Features/Setting/Data/DataSources/SettingDataSource.swift
    • 설정 관련 데이터 소스 구현 및 API 연동.
  • Codive/Features/Setting/Data/Mappers/SettingDTOMapper.swift
    • 설정 관련 DTO 매퍼 추가.
  • Codive/Features/Setting/Domain/Entities/SettingEntity.swift
    • 설정 관련 엔티티 수정.
  • Codive/Features/Setting/Domain/Entities/SettingError.swift
    • 설정 관련 에러 정의.
  • Codive/Features/Setting/Presentation/View/SettingBlockedView.swift
    • 차단된 사용자 목록 뷰 구현.
  • Codive/Features/Setting/Presentation/View/SettingCommentView.swift
    • 내 댓글 목록 뷰 구현.
  • Codive/Features/Setting/Presentation/View/SettingLikedView.swift
    • 좋아요한 기록 뷰 구현.
  • Codive/Features/Setting/Presentation/View/SettingView.swift
    • 설정 뷰 구현 및 네비게이션 로직 추가.
  • Codive/Features/Setting/Presentation/View/WithdrawView.swift
    • 탈퇴 뷰 구현.
  • Codive/Features/Setting/Presentation/ViewModel/LikedRecordsViewModel.swift
    • 좋아요한 기록 뷰 모델 구현.
  • Codive/Features/Setting/Presentation/ViewModel/MyCommentsViewModel.swift
    • 내 댓글 뷰 모델 구현.
  • Codive/Features/Setting/Presentation/ViewModel/SettingViewModel.swift
    • 설정 뷰 모델 구현.
  • Codive/Features/Setting/Presentation/ViewModel/WithdrawViewModel.swift
    • 탈퇴 뷰 모델 구현.
  • Codive/Router/AppRouter.swift
    • 로그아웃 로직 수정 및 NavigationRouter 등록 함수 추가.
  • Codive/Router/ViewFactory/AuthViewFactory.swift
    • AuthViewFactory 수정.
  • Codive/Router/ViewFactory/SettingViewFactory.swift
    • SettingViewFactory에 탈퇴 뷰 추가.
  • Codive/Shared/DesignSystem/Views/CodiCard.swift
    • CodiCard 수정.
  • Codive/Shared/Domain/Entities/Comment.swift
    • Comment 엔티티 수정.
  • Tuist/Package.resolved
    • Alamofire 버전 업데이트 및 CodiveAPI revision 업데이트.
Activity
  • 아키텍처 문서화 강화
  • DI(Dependency Injection) 구조 리팩터링
  • 기능(Feature) 단위 모듈화/격리
  • UI/데이터 처리 패턴 정리
  • 마이페이지 & 설정 부분 API 연결 완료
  • 연결되는 뷰들의 UI/UX 개선
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


코드의 숲, DI의 길, 관심사 분리, 모듈의 춤, 확장성의 노래.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이번 PR은 아키텍처 문서화, DI 구조 리팩터링, 기능 모듈화 등 전반적인 코드 품질 개선과 함께 마이페이지 및 설정 관련 API 연동을 완료하는 중요한 변경사항을 담고 있습니다. 전반적으로 코드 구조가 개선되고 새로운 기능들이 잘 구현되었습니다. 몇 가지 개선점을 제안합니다. DI 컨테이너 생성 시 싱글톤을 보장하여 상태 관리의 안정성을 높이는 부분, 중복된 UI 로직 제거, 그리고 디버그용 코드 정리에 대한 의견을 확인해 주시면 좋겠습니다.

Copy link
Contributor

@Funital Funital left a comment

Choose a reason for hiding this comment

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

내가 쓴 리뷰 조회에서 불러오기 오류가 뜨네요,,! 4차 api 작업에서 추가 작업이 필요할거 같아요

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📃 Feat 사용자를 위한 새로운 기능 추가 또는 개선

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] API 3차 구현

3 participants