이 저장소는 Serverpod와 Flutter를 사용한 풀스택 모바일 애플리케이션 개발 예제 소스코드입니다.
이 프로젝트는 Serverpod를 백엔드로, Flutter를 프론트엔드로 사용하는 모노레포 구조의 애플리케이션입니다. Clean Architecture 패턴을 적용하여 확장 가능하고 유지보수가 용이한 코드 구조를 제공합니다.
- Backend: Serverpod 2.9.2 (Dart)
- Frontend: Flutter 3.24.0+
- State Management: Riverpod 2.5.1
- Routing: GoRouter 14.0.0
- Database: PostgreSQL
- Cache: Redis
.
├── test_server/ # Serverpod 서버
│ ├── lib/ # 서버 로직
│ ├── bin/ # 서버 진입점
│ ├── config/ # 환경별 설정 파일
│ └── migrations/ # 데이터베이스 마이그레이션
│
├── test_client/ # Serverpod 클라이언트 (자동 생성)
│ └── lib/ # 서버와 통신하기 위한 클라이언트 코드
│
└── test_flutter/ # Flutter 애플리케이션
├── lib/
│ ├── core/ # 핵심 기능 (DI, Domain, Route)
│ ├── feature/ # 기능별 모듈
│ │ ├── auth/ # 인증 기능
│ │ └── ... # 추가 기능 모듈들
│ └── screen/ # 화면
└── ...
Flutter 앱은 Clean Architecture 패턴을 따릅니다:
- Presentation Layer: UI 및 상태 관리 (Riverpod)
- Domain Layer: 비즈니스 로직 및 엔티티
- Data Layer: 데이터 소스 및 리포지토리 구현
- Dart SDK >= 3.5.0
- Flutter SDK >= 3.24.0
- Docker & Docker Compose
- PostgreSQL
- Redis
git clone https://github.com/pyowonsik/FlutterServerpod.git
cd FlutterServerpod# PostgreSQL 및 Redis 시작 (Docker 사용)
cd test_server
docker compose up --build --detach
# 서버 실행
dart bin/main.dart서버는 기본적으로 http://localhost:8080에서 실행됩니다.
cd test_flutter
# 의존성 설치
flutter pub get
# 앱 실행
flutter run- 사용자 로그인
- 세션 관리
추가 기능들은 지속적으로 개발 중입니다.
Serverpod는 코드 생성을 통해 클라이언트 코드를 자동으로 생성합니다:
cd test_server
dart run serverpod generatecd test_server
dart run serverpod create-migration
dart run serverpod apply-migrationsFlutter 앱의 환경 변수는 test_flutter/.env 파일에서 관리됩니다.
이 소스코드는 블로그 포스팅을 위한 예제 프로젝트입니다. 실제 프로덕션 환경에서 사용하기 전에 보안 및 성능 최적화를 고려해주세요.