기술과 산업/AI

Gradio 실전 시리즈 9화 – Hugging Face Spaces로 Gradio 앱 배포하기

B컷개발자 2025. 5. 26. 10:54
728x90

Gradio 앱은 Hugging Face Spaces를 통해 손쉽게 웹에 배포할 수 있습니다. GitHub 없이도 가능한 기본 방식부터, app.py, requirements.txt 구성, 모델 포함 배포 팁까지 실전 중심으로 안내합니다.

 

Gradio는 로컬에서 빠르게 테스트할 수 있는 장점이 있지만,
다른 사람에게 앱을 공유하거나 사용자 피드백을 받고 싶을 때는 배포가 필수입니다.

이때 가장 쉽고 빠른 방법이 바로 Hugging Face Spaces입니다.
Spaces는 Hugging Face에서 제공하는 무료 AI 앱 호스팅 플랫폼으로, Gradio에 최적화되어 있습니다.


Hugging Face Spaces란?

  • Gradio, Streamlit, Static HTML 지원
  • Git 기반 프로젝트 배포 방식
  • 서버, 도메인, 인증 필요 없음
  • 무료 요금제에서 대부분의 데모 가능

배포 준비물: 총 3개 파일

  1. app.py – Gradio 인터페이스를 정의하는 메인 스크립트
  2. requirements.txt – 필요한 Python 패키지 리스트
  3. (선택) README.md – 앱 소개 문서

예제 프로젝트 구성

my-gradio-app/
├── app.py
├── requirements.txt
└── README.md (선택)

📄 app.py

import gradio as gr

def greet(name):
    return f"안녕하세요, {name}님!"

app = gr.Interface(fn=greet, inputs="text", outputs="text")

app.launch()

✅ 반드시 파일명은 app.py여야 합니다.
Spaces는 이 파일을 자동 실행 entry point로 사용합니다.


📄 requirements.txt

gradio

필요한 외부 라이브러리 추가 가능 (예: transformers, Pillow 등)


🔧 배포 절차

1. Hugging Face 계정 가입 및 로그인

2. Spaces 메뉴 → “Create new Space”

  • Space 이름 지정 (영문 소문자, 하이픈만)
  • SDK 선택: 반드시 Gradio 선택
  • Public / Private 설정 (Public은 무료, Private은 Pro 요금제 필요)
  • 라이선스 선택: 기본값인 mit 또는 apache-2.0 추천

3. 파일 업로드

  • app.py, requirements.txt 업로드
  • 업로드하면 자동으로 앱이 빌드되고 실행됨

✅ 초기 빌드에는 수 초 ~ 수 분 소요 가능
이후엔 앱 저장 시 자동 재시작


앱 배포 성공 시 화면 예시


실무 팁

1. 로딩 시간 줄이기

  • 모델 로딩은 if __name__ == "__main__" 블록 밖에서 실행
  • Gradio는 앱 실행 전에 파일을 사전 로딩할 수 있음
# 전역에서 로딩
tokenizer = ...
model = ...

def predict(text):
    ...

2. 리소스 제한 고려

무료 플랜 기준:

항목 제한

RAM 약 16GB
실행 시간 10분 미사용 시 자동 중단
GPU 미지원 (Pro에서 가능)

→ 복잡한 모델이나 GPU가 필요한 경우 비동기 처리 or 외부 API 연동 권장


3. Spaces에 GitHub 연동 배포도 가능

  • Hugging Face는 내부적으로 Git 기반
  • GitHub 저장소를 연동하면 자동으로 Spaces에서 배포 가능
  • main 브랜치 push 시 자동 업데이트

마무리 – “코드만 있으면 누구나 앱을 배포할 수 있는 시대”

Gradio와 Hugging Face Spaces의 조합은
초보자도 글로벌 수준의 AI 앱을 5분 안에 웹에 띄울 수 있는 강력한 배포 방식입니다.

  • 웹 서버? 필요 없음
  • 도메인? 자동 생성됨
  • 인증? GitHub만 있으면 됨
  • 설치? Zero

다음 화에서는 Gradio 앱을 Docker를 통해 로컬 또는 사내 서버에 직접 배포하는 방식을 소개합니다.
외부 의존 없이 자체 운영을 하고 싶을 때, 또는 네트워크가 제한된 환경에서 활용할 수 있는 방법입니다.

Gradio 실전 시리즈 10화 – Docker로 Gradio 앱 배포하기: 자체 호스팅 가이드

728x90