정지용
기술스택 목록
프레임워크

Gradio

프로젝트 1에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

머신러닝 모델을 위한 웹 UI를 몇 줄의 파이썬 코드로 만들어 주는 라이브러리

Gradio는 파이썬 함수를 입력·출력 컴포넌트가 있는 웹 인터페이스로 감싸주는 오픈소스 라이브러리다. 모델을 시연하거나 테스트할 때마다 프론트엔드를 직접 만들어야 하는 번거로움을 없애기 위해 만들어졌으며, 함수 하나만 정의하면 자동으로 입력 폼과 결과 화면을 갖춘 웹 앱이 생성된다. 로컬 서버로 즉시 실행되며 외부 공유 링크도 손쉽게 만들 수 있어 프로토타입 공유나 데모 목적으로 널리 쓰인다.

이럴 때 사용합니다

  • 학습된 모델이나 스크립트를 별도 프론트엔드 개발 없이 빠르게 시연하고 싶을 때
  • 동료나 사용자에게 데모를 공유하며 즉시 피드백을 받고 싶을 때
  • 이미지 생성, 음성 처리 등 파일 입출력이 필요한 AI 도구의 UI가 필요할 때

핵심 개념

Interface
입력 컴포넌트, 실행할 함수, 출력 컴포넌트를 연결해 하나의 웹 앱을 정의하는 가장 기본적인 단위다.
Component
텍스트, 이미지, 오디오, 슬라이더 등 화면에 표시되는 입력/출력 요소로, 데이터 타입에 맞춰 자동으로 적절한 UI를 그려준다.
Blocks
Interface보다 자유도가 높은 저수준 API로, 레이아웃과 컴포넌트 간 이벤트 흐름을 직접 조합해 복잡한 화면을 구성할 수 있다.
launch
정의한 앱을 로컬 서버로 실행시키는 메서드로, 기본적으로 지정된 포트에서 웹 UI를 서빙한다.
share link
로컬에서 실행 중인 앱을 임시 공개 URL로 노출시켜 외부에서 접속할 수 있게 해주는 기능이다.

기본 Gradio 앱 실행 예시

이름을 입력받아 인사말을 반환하는 함수를 텍스트 입력/출력 컴포넌트가 있는 웹 UI로 감싸 7860 포트에서 실행한다.

Python
import gradio as gr

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

demo = gr.Interface(
    fn=greet,
    inputs=gr.Textbox(label="이름"),
    outputs=gr.Textbox(label="결과"),
)

demo.launch(server_port=7860)

처음 쓸 때 흔한 함정

  • 함수의 입력·출력 타입을 컴포넌트와 정확히 맞추지 않으면 실행 시 오류가 발생한다
  • share 옵션으로 생성되는 링크는 임시용이라 서버를 종료하면 만료된다
  • 여러 사용자가 동시에 접속하면 상태 관리를 신경 쓰지 않을 경우 값이 섞일 수 있다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.