레이블이 STREAMLIT인 게시물을 표시합니다. 모든 게시물 표시
레이블이 STREAMLIT인 게시물을 표시합니다. 모든 게시물 표시

2025년 10월 6일 월요일

Streamlit 애플리케이션 실행과 활용

Streamlit 애플리케이션 실행과 활용

구체적으로 구현된 프로젝트를 이용하려면 다음 단계들을 따라 Streamlit 애플리케이션을 실행하고 활용할 수 있습니다.


1. 프로젝트 준비

  • 프로젝트가 GitHub 또는 로컬 시스템에 있을 수 있습니다. 프로젝트가 GitHub에 호스팅된 경우, 코드를 복제하여 로컬 환경에서 실행합니다.
bash

# GitHub에서 프로젝트를 복제하는 명령어 git clone [프로젝트 URL] cd [프로젝트 폴더명]

2. 라이브러리 설치

requirements.txt 파일이 포함된 프로젝트의 경우, 아래 명령어로 필요한 라이브러리를 자동으로 설치합니다.

bash
pip install -r requirements.txt

requirements.txt 파일이 없는 경우, 직접 필요한 라이브러리를 설치해야 합니다. 예를 들어:

bash

pip install streamlit pytrends matplotlib pandas

3. Streamlit 애플리케이션 실행

app.py 또는 메인 파일을 실행하려면 터미널(명령 프롬프트)에서 다음과 같이 입력합니다:

bash

streamlit run app.py
  • 웹 브라우저가 자동으로 열리며, 기본적으로 http://localhost:8501에서 앱이 실행됩니다.
  • 외부 네트워크에서 접속하려면, ngrok과 같은 툴을 사용해 터널링할 수 있습니다.

4. 애플리케이션 사용

  • Google 트렌드를 추적하는 프로젝트라면:
    1. 웹 애플리케이션에 접속 후 키워드를 입력합니다.
    2. 원하는 시간 범위를 선택합니다.
    3. 트렌드 데이터가 시각화된 그래프로 표시됩니다.
    4. 그래프와 데이터 분석 결과를 저장하거나 내보낼 수 있습니다.

5. Cloud 배포 방법 (Streamlit Cloud 이용)

  • Streamlit Cloud에 프로젝트를 배포하려면 다음 단계를 따릅니다:
    1. Streamlit Cloud에 가입하고 GitHub 계정을 연동합니다.
    2. 프로젝트를 GitHub에 업로드합니다.
    3. Streamlit Cloud에서 프로젝트 리포지토리를 선택하여 애플리케이션을 배포합니다.

6. 문제 해결 및 유지보수

  • 라이브러리 호환성 문제나 API 호출 오류가 발생할 수 있습니다. 이 경우 오류 메시지를 참조해 문제를 해결합니다.
  • Google Trends API의 호출 제한에 주의하고, 여러 키워드를 동시에 추적할 때 스케줄링을 적절히 설정합니다.

결론
Streamlit을 활용한 트렌드 분석 프로젝트를 구체적으로 실행하고 활용하려면 라이브러리 설치, 실행 환경 구성, 그리고 배포 절차를 거쳐야 합니다. 프로젝트가 성공적으로 실행되면, 실시간 트렌드 데이터를 시각화하며 유의미한 인사이트를 도출할 수 있습니다.

Streamlit 프로젝트를 GitHub에 업로드하고 배포하는 방법

Streamlit 프로젝트를 GitHub과 연동하여 쉽게 코드 관리 및 배포할 수 있습니다. 이 과정을 통해 협업 및 클라우드 배포를 간편하게 처리할 수 있습니다.

2024년 10월 23일 수요일

Streamlit 프로젝트를 GitHub에 업로드하고 배포하는 방법

Streamlit 프로젝트를 GitHub에 업로드하고 배포하는 방법

Streamlit 프로젝트를 GitHub과 연동하여 쉽게 코드 관리 및 배포할 수 있습니다. 이 과정을 통해 협업 및 클라우드 배포를 간편하게 처리할 수 있습니다.


1. GitHub에 프로젝트 업로드

  1. GitHub에 리포지토리 생성:

    • GitHub에서 새 리포지토리를 만듭니다.
    • 프로젝트 이름과 설명을 입력하고, 공개(Public) 또는 비공개(Private)로 설정합니다.
  2. 로컬 프로젝트와 GitHub 연결: 로컬에서 작성한 프로젝트를 GitHub에 업로드하기 위해 다음 명령어를 사용합니다.

    bash코드 복사
    cd [프로젝트 폴더 경로]  # 프로젝트 폴더로 이동
    git init                  # Git 초기화
    git add .                 # 모든 파일 추가
    git commit -m "Initial commit"  # 커밋 메시지 작성
    git branch -M main         # 브랜치 이름 설정 (main)
    git remote add origin https://github.com/[사용자명]/[리포지토리명].git  # 원격 저장소 추가
    git push -u origin main    # GitHub로 푸시

2. Streamlit Cloud에 배포하기

  1. Streamlit Cloud에 로그인:

  2. 새 앱 배포:

    • Streamlit Cloud 대시보드에서 **"New App"**을 클릭합니다.
    • GitHub에서 배포할 리포지토리를 선택합니다.
  3. 배포 설정:

    • Streamlit 앱 파일(app.py)을 지정합니다.
    • 배포 버튼을 클릭하면 몇 초 내에 애플리케이션이 배포됩니다.
  4. 배포된 앱 사용:

    • 배포가 완료되면 URL이 제공되며, 이 링크를 통해 누구나 애플리케이션에 접속할 수 있습니다.

3. GitHub 업데이트 및 유지보수

  1. 프로젝트 코드 수정 후 GitHub에 푸시:

    bash코드 복사
    git add .
    git commit -m "Update project"
    git push origin main
  2. Streamlit Cloud 자동 업데이트:

    • GitHub에 변경 사항을 푸시하면, Streamlit Cloud가 자동으로 배포를 갱신합니다.

4. 코드 예시 업로드 (Streamlit 프로젝트)

plaintext코드 복사
trend_project/ 
│ 
├── app.py # 메인 애플리케이션 코드 
├── requirements.txt # 필요한 라이브러리 목록 
└── README.md # 프로젝트 설명 파일

requirements.txt에 Streamlit과 필요한 라이브러리를 명시합니다:


streamlit
pytrends
pandas
matplotlib


이제 Streamlit 프로젝트를 GitHub에 업로드하고, Streamlit Cloud를 통해 배포하면, 언제 어디서든 프로젝트를 실행하고 사용자와 공유할 수 있습니다.

Streamlit을 이용한 실시간 트렌드 분석 도구만들기

Streamlit을 이용한 실시간 트렌드 분석 도구만들기

Streamlit을 이용해 구글 트렌드와 같은 실시간 트렌드 분석 도구를 만들 수 있습니다. Python의 **Google Trends API(pytrends)**를 사용해 데이터를 가져오고, Streamlit을 통해 실시간으로 대시보드를 구성해 원하는 시간대에 특정 키워드의 트렌드를 추적할 수 있습니다.


프로젝트 개요

  • 사용자가 조사하고자 하는 키워드를 입력합니다.
  • 특정 시간대에 Google Trends 데이터를 자동으로 조회합니다.
  • 결과를 그래프로 시각화하고, 트렌드가 어떻게 변화하는지 실시간으로 확인합니다.

1. 프로젝트 구조

bash코드 복사
trend_project/ 
├── app.py # 메인 애플리케이션 파일 
├── requirements.txt # 필요한 라이브러리 목록 
└── README.md # 프로젝트 설명 파일

2. 코드 예제 (app.py)

python코드 복사
import streamlit as st
from pytrends.request import TrendReq
import pandas as pd
import matplotlib.pyplot as plt

# Streamlit 앱 제목 설정
st.title("실시간 Google 트렌드 분석")

# pytrends 객체 생성
pytrends = TrendReq(hl='en-US', tz=360)

# 키워드 입력받기
keywords = st.text_input("조사할 키워드를 입력하세요 (쉼표로 구분)", "Python, Data Science")

# 시간대 선택
timeframe = st.selectbox("조사할 시간 범위", 
                         ["now 1-H", "now 4-H", "now 7-d", "today 1-m", "today 12-m"])

if keywords:
    # 키워드 리스트로 변환
    keyword_list = [kw.strip() for kw in keywords.split(",")]

    # 트렌드 데이터 요청
    pytrends.build_payload(keyword_list, cat=0, timeframe=timeframe, geo='', gprop='')

    # 데이터프레임 생성
    data = pytrends.interest_over_time()

    if not data.empty:
        st.subheader("트렌드 데이터")
        st.write(data)

        # 그래프 시각화
        st.subheader("트렌드 변화 그래프")
        plt.figure(figsize=(10, 5))
        for keyword in keyword_list:
            plt.plot(data.index, data[keyword], label=keyword)

        plt.legend()
        plt.title("Google 트렌드 변화")
        plt.xlabel("시간")
        plt.ylabel("인기 점수")
        st.pyplot(plt.gcf())
    else:
        st.write("해당 키워드에 대한 데이터가 없습니다.")

3. 실행방법

  1. 필수 라이브러리 설치:

    bash코드 복사
    pip install streamlit pytrends matplotlib pandas
  2. 앱 실행:

    bash코드 복사
    streamlit run app.py

4. 주요 기능 설명

  • pytrends 라이브러리: Google Trends API에 연결해 데이터를 가져옵니다.
  • 실시간 키워드 분석: 선택한 시간 범위에 따라 트렌드 데이터를 확인할 수 있습니다.
  • 인터랙티브 그래프: 각 키워드의 트렌드 변화를 그래프로 시각화합니다.

5. 확장 아이디어

  • 자동화된 주기적 업데이트: 일정 시간마다 트렌드 데이터를 자동으로 갱신하도록 스케줄링.
  • CSV로 데이터 저장: 수집한 트렌드 데이터를 파일로 저장해 향후 분석에 활용.
  • 다중 언어 지원: 다양한 지역과 언어의 트렌드 데이터를 비교 분석.

이 프로젝트를 통해 실시간 트렌드 분석 도구를 쉽게 만들 수 있습니다. Streamlit의 간단한 인터페이스 덕분에 데이터 과학자뿐만 아니라 일반 사용자도 쉽게 활용할 수 있는 웹 애플리케이션을 완성할 수 있습니다.

Streamlit을 이용한 프로젝트

Streamlit을 이용한 프로젝트

우리는 Streamlit을 이용해 프로젝트를 만들 수 있습니다! 간단한 코드로 데이터 시각화 대시보드, 머신러닝 모델 데모, 데이터 입력 애플리케이션 등을 손쉽게 구현할 수 있습니다. 아래는 Streamlit 프로젝트 예시와 각 단계에 대한 설명입니다.


Streamlit 프로젝트 예시: 데이터 분석 대시보드 만들기

1. 프로젝트 구조

bash코드 복사
my_project/ │ ├── app.py # 메인 애플리케이션 파일 ├── data/ # 데이터 파일을 저장하는 폴더 │ └── sample.csv # 샘플 데이터 ├── requirements.txt # 필요한 라이브러리 목록 └── README.md # 프로젝트 설명 파일

2. 코드 예제 (app.py)

아래는 Pandas로 데이터를 불러와 간단한 데이터 시각화를 보여주는 Streamlit 애플리케이션입니다.

python코드 복사
import streamlit as st import pandas as pd import matplotlib.pyplot as plt # 제목 설정 st.title("간단한 데이터 분석 대시보드") # CSV 파일 업로드 uploaded_file = st.file_uploader("CSV 파일을 업로드하세요", type="csv") if uploaded_file: # 데이터 읽기 data = pd.read_csv(uploaded_file) st.write("업로드된 데이터:") st.write(data) # 데이터 통계 요약 표시 st.subheader("데이터 통계 요약") st.write(data.describe()) # 데이터 시각화 st.subheader("데이터 시각화") selected_column = st.selectbox("시각화할 컬럼을 선택하세요", data.columns) fig, ax = plt.subplots() data[selected_column].hist(ax=ax) st.pyplot(fig)

3. 실행 방법

  1. Streamlit 설치:
    bash코드 복사
    pip install streamlit
  2. 앱 실행:
    bash코드 복사
    streamlit run app.py

이제 웹 브라우저에서 localhost:8501에 접속하면 앱이 실행됩니다.


4. 배포 방법

Streamlit 프로젝트는 Streamlit Cloud 또는 Heroku, AWS와 같은 클라우드 플랫폼에 쉽게 배포할 수 있습니다.

  • Streamlit Cloud 배포:
    1. Streamlit Cloud 계정 생성.
    2. GitHub에 프로젝트 업로드 후, Streamlit Cloud에서 리포지토리 연동.
    3. 몇 번의 클릭만으로 애플리케이션을 배포합니다.

확장 아이디어

  • 머신러닝 모델을 포함해 입력값에 따라 실시간으로 예측 결과를 제공하는 앱 제작.
  • API와 연동해 실시간 데이터(예: 주식 가격, 날씨 정보)를 시각화.
  • 사용자 입력 폼을 만들어 데이터 수집 애플리케이션 구현.

이와 같이 Streamlit을 사용하면 복잡한 프론트엔드 지식 없이 인터랙티브한 웹 애플리케이션을 쉽고 빠르게 구축할 수 있습니다.

Streamlit과 Dash의 차이점: Python 대시보드 프레임워크 비교

Streamlit과 Dash의 차이점: Python 대시보드 프레임워크 비교

StreamlitDash는 모두 Python을 사용하여 데이터 시각화와 웹 애플리케이션을 구축할 수 있는 강력한 도구이지만, 두 프레임워크는 목표와 설계 철학에서 차이가 있습니다. 이 차이점을 이해하면 프로젝트에 가장 적합한 도구를 선택하는 데 도움이 됩니다.


1. 사용 용도와 철학

  • Streamlit:

    • 데이터 과학자분석가를 위해 설계되었습니다.
    • 빠르고 간단한 개발을 목표로 하며, Python 스크립트를 바로 웹 애플리케이션으로 변환합니다.
    • 복잡한 프론트엔드 지식이 필요 없으며, 짧은 시간 내에 프로토타입을 생성하는 데 적합합니다.
  • Dash:

    • 기업용 대시보드고급 인터페이스 개발에 중점을 둡니다.
    • Plotly와의 통합으로 복잡한 그래프와 대시보드를 구현할 수 있으며, HTML, CSS, JavaScript 같은 웹 기술을 활용합니다.
    • 더 정교한 앱 구조와 맞춤형 UI 구현이 가능하나, 개발 속도는 Streamlit에 비해 느릴 수 있습니다.

2. 설치 및 학습 곡선

  • Streamlit:

    • Python만 알면 쉽게 사용할 수 있으며, 단 몇 줄의 코드로 앱을 배포할 수 있습니다.
    • 진입 장벽이 낮아 빠른 학습이 가능합니다.
  • Dash:

    • HTML/CSS와 콜백(callback) 구조에 대한 이해가 필요합니다.
    • 개발이 더 복잡할 수 있지만, 그만큼 복잡한 대시보드와 사용자 정의 인터페이스를 구축할 수 있습니다.

3. 기능 비교

  • Streamlit:

    • 간단한 위젯과 기본적인 데이터 시각화 도구 제공.
    • 실시간 데이터 업데이트에 적합하며, 머신러닝 모델 배포에도 자주 사용됩니다.
    • 주로 소규모 팀이나 개인 프로젝트에서 사용됩니다.
  • Dash:

    • Plotly 그래프와 통합된 상세한 대시보드 제작 가능.
    • 여러 개의 페이지를 지원하며, 복잡한 콜백을 사용해 정교한 사용자 상호작용을 구현할 수 있습니다.
    • 대규모 프로젝트와 기업 환경에서 주로 사용됩니다.

4. 배포와 성능

  • Streamlit:

    • 빠르게 애플리케이션을 개발하고 클라우드 플랫폼에 쉽게 배포할 수 있습니다.
    • 그러나, 규모가 큰 앱의 최적화에는 한계가 있을 수 있습니다.
  • Dash:

    • 기업 환경에서 복잡한 요구를 충족하기 위해 더 강력한 확장성과 성능을 제공합니다.
    • 배포 및 유지 관리가 더 복잡하지만, 맞춤화된 엔터프라이즈 솔루션에 적합합니다.

결론: 어떤 프로젝트에 적합한가?

  • Streamlit: 빠른 프로토타입, 데이터 시각화, 머신러닝 모델 데모에 적합.
  • Dash: 복잡한 대시보드, 여러 페이지로 구성된 앱, 그리고 기업 환경의 정교한 솔루션에 적합.