Skip to content

[REFACTOR] 프로젝트 전반적인 리펙토링 - #179

Open
eum018 wants to merge 15 commits into
developfrom
refactor/#176-project-whole-refactor
Open

[REFACTOR] 프로젝트 전반적인 리펙토링#179
eum018 wants to merge 15 commits into
developfrom
refactor/#176-project-whole-refactor

Conversation

@eum018

@eum018 eum018 commented May 18, 2026

Copy link
Copy Markdown
Contributor

📌 개요

프로젝트의 전반적인 구조를 테스트하고 변경한다.


🧩 작업 내용

  • design 반영 및 UI 리펙토링
  • controller 리펙토링
  • repository, datasource 리펙토링
  • model, entity, viewmodel 리펙토링

📎 참고 사항

eum018 and others added 7 commits May 18, 2026 18:00
ChatRoutes, CommunityRoutes, HomeRoutes, ProfileRoute, PasswordResetRoutes, SignupRoutes 분리
각 route 클래스에서 binding isRegistered 체크 적용

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NavigationScreen을 ShellRoute로 감싸 하단 탭 유지 구조로 변경
postDetail onExit에서 PostViewController tag 기반 삭제 적용
RoutePaths navigation 제거 및 경로 정리

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
auth_binding 분리, navigation_binding 공통 의존성만 유지
post_binding PostViewController tag 기반 등록으로 변경
post_detail_view_binding 제거

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PageView 제거 후 GoRouter ShellRoute child 방식으로 변경
Map 기반 탭 관리 및 GoRouterState 경로로 currentIndex 계산
_lastIndex로 탭 외 화면에서 이전 탭 하이라이트 유지
NavigationController 제거

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
postId를 필수 파라미터로 받아 tag 기반으로 PostViewController 조회

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RoutePaths.navigation 제거에 따라 home 경로로 변경

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PostBinding isFavorite 파라미터 반영
NavigationScreen ShellRoute 방식 유지

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eum018 eum018 self-assigned this May 18, 2026
@eum018 eum018 added refactor 구조 개선 (기능 변화 X) design UI / UX 변경 labels May 18, 2026
@eum018 eum018 linked an issue May 18, 2026 that may be closed by this pull request
4 tasks

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the routing architecture by modularizing route definitions into dedicated files and migrating the navigation system from GetX's PageController to GoRouter. Key improvements include the introduction of AuthBinding for centralized dependency management and the use of tagged controllers in PostDetailScreen for better state isolation. Review feedback identifies a critical bug in AuthBinding where dependencies are incorrectly registered only if they already exist. Other suggestions include avoiding side effects within the build method of NavigationScreen, optimizing dependency injection with registration checks in the router, and removing obsolete TODO comments.

Comment thread lib/core/router/bindings/auth_binding.dart Outdated
Comment thread lib/presentation/navigation/screens/navigation_screen.dart
Comment thread lib/core/router/app_router.dart Outdated
Comment thread lib/core/router/bindings/post_binding.dart Outdated
eum018 and others added 8 commits May 18, 2026 18:18
_lastIndex 업데이트 로직을 build에서 didChangeDependencies로 이동
GoRouterState 의존성 변경 시 생명주기 메서드에서 상태 처리

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
auth_binding isRegistered 조건 반전 버그 수정
postDetail builder PostViewController isRegistered 체크 추가
post_binding TODO 주석 제거

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
MainTopSearchBar pageId/resultPageBuilder 제거, child 방식으로 단순화
MainTopBarSearchController context 기반 섹션 감지 후 navigate 처리
SearchState copyWith 불변 객체 패턴 적용
SearchPopup tip 제출 시 navigate 연동

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
HomeSearchController, HomeSearchBinding 분리
HomeRoutes search route에서 SearchState extra 추출 및 binding 적용
HomeBinding datasource/repository 제거 후 usecase 직접 등록으로 정리

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CommunitySearchController, CommunitySearchBinding 분리
CommunityRoutes search route SearchState extra 추출 및 binding 적용
CommunityMainScreen MainTopSearchBar 방식으로 변경

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
MainTopSearchBar child 방식으로 변경

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
HomeSearchBinding, HomeSearchController 구현 내용 반영
CommunitySearchBinding, CommunitySearchController 구현 내용 반영

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
initialLocation을 splash로 복구
HomeBinding에 PostRemoteDatasource, PostRepositoryImpl 등록 추가

Resolve: #176
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design UI / UX 변경 refactor 구조 개선 (기능 변화 X)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REFACTOR] 프로젝트 전반 리펙토링

1 participant