프로젝트 환경 설정 및 개요

CHAN·2024년 11월 3일

FastAPI

목록 보기
1/9

1강: 프로젝트 환경 설정 및 개요

이 강의에서는 Firebase, FastAPI, Selenium, Flutter를 활용한 프로젝트의 기본 설정을 완료하고, 각 기술이 어떻게 프로젝트에서 활용될지 개요를 제공합니다.


1. 프로젝트 개요 및 각 요소의 역할

  • 목표: 사용자가 Flutter 앱에서 키워드를 입력하면, AI가 이를 바탕으로 음악을 생성하고, 저작권청에 자동으로 등록해주는 서비스 개발.
  • 프로젝트 구성 요소
    • Flutter: 사용자 인터페이스(UI)와 사용자 입력을 받아 키워드를 처리하고 Firebase와 상호작용.
    • Firebase: 초기 데이터 저장소와 인증 서비스로 활용하며, 음악 파일과 관련 데이터 저장.
    • Python 서버 (FastAPI): Flutter에서 받은 키워드를 기반으로 OpenAI API를 통해 음악 생성.
    • Selenium: FastAPI와 연동하여 저작권청 사이트에 자동으로 음악 저작권 등록.

2. 기술 환경 설정

1) Firebase 설정
  1. Firebase 콘솔에서 새로운 프로젝트를 생성하고, FirestoreStorage, Authentication 기능을 활성화합니다.
  2. Firebase 프로젝트 설정 후 Web API 키프로젝트 ID를 확인합니다. 이를 Flutter 앱과 Python 서버에서 활용할 예정입니다.
2) Flutter 프로젝트 생성 및 초기 설정
  1. Flutter 프로젝트 생성:
    flutter create music_gen_copyright_app
    cd music_gen_copyright_app
  2. Firebase 연동:
    • firebase_core, cloud_firestore, firebase_auth, firebase_storage 패키지를 pubspec.yaml 파일에 추가하고 flutter pub get으로 설치합니다.
    • Firebase Console에서 Flutter 앱을 추가하고 google-services.json 파일을 다운로드하여 프로젝트 루트에 위치시킵니다.
  3. Flutter 프로젝트 설정 완료 후 Firebase 초기화 코드를 작성해 Firebase 연결을 테스트합니다.
3) FastAPI 및 필요한 Python 패키지 설치
  1. Python 환경 설정 후, FastAPI와 필요한 라이브러리를 설치합니다:
    pip install fastapi uvicorn firebase-admin openai selenium
  2. Firebase Admin SDK 설정:
    • Firebase Console에서 Service Account 키를 다운로드하여 FastAPI 서버에서 사용할 수 있도록 준비합니다.
  3. OpenAI API 설정 준비:
    • OpenAI에서 API 키를 생성하고 FastAPI 서버에서 사용합니다.
4) Selenium 설정
  1. 브라우저 드라이버 설치 (예: ChromeDriver):
    • Selenium을 사용하여 저작권청 사이트 자동화에 필요한 브라우저 드라이버를 다운로드하고 설치합니다.
  2. ChromeDriver를 설치한 후 환경 변수로 설정하여 Python 코드에서 접근 가능하게 합니다.

3. 아키텍처 개요 및 데이터 흐름 설명

프로젝트 개요도

사용자
   |
   v
Flutter 앱
   |
   v
Firebase
   |
   +---> Firestore (키워드 저장)
   +---> Storage (음악 파일 저장)
   |
   v
Python 서버 (FastAPI)
   |
   +---> OpenAI API (음악 생성)
   +---> Selenium (저작권 등록 자동화)
  1. Flutter 앱에서 사용자가 키워드를 입력하면 Firestore에 저장됩니다.
  2. FastAPI 서버는 Firestore의 새 키워드를 감지하고, 이를 바탕으로 OpenAI API로 음악을 생성합니다.
  3. 생성된 음악 파일을 Firebase Storage에 저장하고, URL을 Firestore에 업데이트합니다.
  4. FastAPI 서버는 Selenium을 사용하여 저작권청 사이트에 음악을 자동으로 등록하고, 그 상태를 Firestore에 업데이트하여 Flutter 앱에서 사용자에게 결과를 제공합니다.

이번 강의 요약

  • 프로젝트에 사용될 각 기술 요소와 역할을 이해했습니다.
  • Firebase, FastAPI, Selenium, Flutter를 설치하고 초기 설정을 완료했습니다.
  • 데이터 흐름과 전체 아키텍처를 이해했습니다.

다음 강의에서는 Firebase와 Flutter의 연동을 통해 Firebase 프로젝트 생성, 초기 설정, Firestore와 Storage 활용 방법을 다룹니다.

profile
프로그래머

0개의 댓글