🛤️
GoRouter 선언적 라우팅
Flutter 공식 추천 라우팅 패키지
go_router는 Flutter 팀이 공식 유지보수하는 선언적 라우팅 패키지입니다.
GoRoute 객체로 경로를 정의하고, GoRouter 인스턴스에 등록합니다. context.go('/home')으로 네비게이션하며, URL 경로와 1:1 매핑됩니다.
인증 리다이렉트(미로그인 시 /login으로), ShellRoute(하단 탭바 유지), 중첩 라우트 등 실무에서 필요한 기능을 모두 지원합니다.
구현 순서
1
go_router 패키지 추가 (pubspec.yaml)
2
GoRouter 인스턴스 생성 + GoRoute로 경로 정의
3
MaterialApp.router()로 라우터 연결
4
redirect 콜백으로 인증 가드 구현
장점
- ✓ URL 기반으로 Web/딥링크 완벽 지원
- ✓ Flutter 팀 공식 유지보수로 안정성 보장
단점
- ✗ 기본 Navigator보다 초기 설정이 복잡
- ✗ 버전 업데이트 시 마이그레이션 비용 발생 가능
사용 사례
Web + 모바일 겸용 앱 (URL 기반 라우팅 필수)
인증 플로우가 있는 앱