이번 강의에서는 FastAPI 서버와 Flutter 앱을 클라우드와 앱 마켓에 배포하는 방법을 다룹니다. 또한 Firebase를 통한 성능 최적화와 유지 관리 방법을 추가적으로 살펴봅니다.
FastAPI 서버를 AWS, Heroku, 또는 DigitalOcean과 같은 클라우드 플랫폼에 배포합니다. 여기에서는 AWS EC2를 사용하여 배포하는 예제를 제공합니다.
AWS EC2 인스턴스 생성
서버 초기 설정 및 환경 구성
sudo apt update
sudo apt install python3-pip
sudo pip3 install fastapi uvicorn firebase-admin openai seleniumFastAPI 서버 실행 및 Nginx 설정
uvicorn main:app --host 0.0.0.0 --port 8000 &sudo apt install nginx/etc/nginx/sites-available/default 파일을 편집하여 프록시 설정을 추가합니다:server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}sudo systemctl restart nginxFastAPI 서버 보안 강화
Flutter 앱을 Android 및 iOS 마켓에 배포합니다.
Android 배포
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyandroid/app/build.gradle 파일에서 signingConfigs와 buildTypes를 설정하여 서명을 추가합니다.flutter build apk --releaseiOS 배포
Runner.xcworkspace를 열고 앱의 빌드 설정을 Release로 변경한 후 아카이브하여 App Store Connect에 업로드합니다.Firebase Analytics와 Crashlytics를 활용하여 앱의 성능을 모니터링하고, 사용자 경험을 최적화합니다.
Firebase Analytics 설정
firebase_analytics 패키지를 Flutter 프로젝트에 추가하고, 앱 내 다양한 이벤트를 추적하도록 설정합니다.Firebase Crashlytics 설정
firebase_crashlytics 패키지를 추가하고 초기화하여 앱 충돌이 발생할 때마다 보고서를 수집할 수 있게 합니다.Firestore 보안 규칙 설정
service cloud.firestore {
match /databases/{database}/documents {
match /keywords/{document} {
allow read, write: if request.auth != null;
}
}
}다음 강의에서는 Firebase Firestore에서 MySQL로 전환하여 데이터 관리를 전통적인 데이터베이스로 확장하는 방법을 다루겠습니다.