1강: 프로젝트 환경 설정 및 개요
이 강의에서는 Firebase, FastAPI, Selenium, Flutter를 활용한 프로젝트의 기본 설정을 완료하고, 각 기술이 어떻게 프로젝트에서 활용될지 개요를 제공합니다.
1. 프로젝트 개요 및 각 요소의 역할
- 목표: 사용자가 Flutter 앱에서 키워드를 입력하면, AI가 이를 바탕으로 음악을 생성하고, 저작권청에 자동으로 등록해주는 서비스 개발.
- 프로젝트 구성 요소
- Flutter: 사용자 인터페이스(UI)와 사용자 입력을 받아 키워드를 처리하고 Firebase와 상호작용.
- Firebase: 초기 데이터 저장소와 인증 서비스로 활용하며, 음악 파일과 관련 데이터 저장.
- Python 서버 (FastAPI): Flutter에서 받은 키워드를 기반으로 OpenAI API를 통해 음악 생성.
- Selenium: FastAPI와 연동하여 저작권청 사이트에 자동으로 음악 저작권 등록.
2. 기술 환경 설정
1) Firebase 설정
- Firebase 콘솔에서 새로운 프로젝트를 생성하고, Firestore와 Storage, Authentication 기능을 활성화합니다.
- Firebase 프로젝트 설정 후 Web API 키와 프로젝트 ID를 확인합니다. 이를 Flutter 앱과 Python 서버에서 활용할 예정입니다.
2) Flutter 프로젝트 생성 및 초기 설정
- Flutter 프로젝트 생성:
flutter create music_gen_copyright_app
cd music_gen_copyright_app
- Firebase 연동:
firebase_core, cloud_firestore, firebase_auth, firebase_storage 패키지를 pubspec.yaml 파일에 추가하고 flutter pub get으로 설치합니다.
- Firebase Console에서 Flutter 앱을 추가하고
google-services.json 파일을 다운로드하여 프로젝트 루트에 위치시킵니다.
- Flutter 프로젝트 설정 완료 후 Firebase 초기화 코드를 작성해 Firebase 연결을 테스트합니다.
3) FastAPI 및 필요한 Python 패키지 설치
- Python 환경 설정 후, FastAPI와 필요한 라이브러리를 설치합니다:
pip install fastapi uvicorn firebase-admin openai selenium
- Firebase Admin SDK 설정:
- Firebase Console에서 Service Account 키를 다운로드하여 FastAPI 서버에서 사용할 수 있도록 준비합니다.
- OpenAI API 설정 준비:
- OpenAI에서 API 키를 생성하고 FastAPI 서버에서 사용합니다.
4) Selenium 설정
- 브라우저 드라이버 설치 (예: ChromeDriver):
- Selenium을 사용하여 저작권청 사이트 자동화에 필요한 브라우저 드라이버를 다운로드하고 설치합니다.
- ChromeDriver를 설치한 후 환경 변수로 설정하여 Python 코드에서 접근 가능하게 합니다.
3. 아키텍처 개요 및 데이터 흐름 설명
프로젝트 개요도
사용자
|
v
Flutter 앱
|
v
Firebase
|
+---> Firestore (키워드 저장)
+---> Storage (음악 파일 저장)
|
v
Python 서버 (FastAPI)
|
+---> OpenAI API (음악 생성)
+---> Selenium (저작권 등록 자동화)
- Flutter 앱에서 사용자가 키워드를 입력하면 Firestore에 저장됩니다.
- FastAPI 서버는 Firestore의 새 키워드를 감지하고, 이를 바탕으로 OpenAI API로 음악을 생성합니다.
- 생성된 음악 파일을 Firebase Storage에 저장하고, URL을 Firestore에 업데이트합니다.
- FastAPI 서버는 Selenium을 사용하여 저작권청 사이트에 음악을 자동으로 등록하고, 그 상태를 Firestore에 업데이트하여 Flutter 앱에서 사용자에게 결과를 제공합니다.
이번 강의 요약
- 프로젝트에 사용될 각 기술 요소와 역할을 이해했습니다.
- Firebase, FastAPI, Selenium, Flutter를 설치하고 초기 설정을 완료했습니다.
- 데이터 흐름과 전체 아키텍처를 이해했습니다.
다음 강의에서는 Firebase와 Flutter의 연동을 통해 Firebase 프로젝트 생성, 초기 설정, Firestore와 Storage 활용 방법을 다룹니다.