분류 전체보기

    AWS EC2 - GitHub를 거치지 않고 서버와 로컬 간의 파일 전송(FTP)

    깃허브엔 업로드 용량 제한이 있기 때문에 서버에 용량이 큰 동영상 파일 등을 업로드하고 싶을 때는 FTP(File Transfer Protocol) 방식으로 로컬과 서버 간 직접 전송할 수 있다. 파일질라 다운로드 https://filezilla-project.org/download.php?type=client 파일질라는 많이 사용되는 FTP 클라이언트다. 설치 후 실행화면에서 파일 > 사이트 관리자를 누른다. 새 사이트를 눌러 이름을 짓고 설정을 해준다. 프로토콜: SFTP 호스트: 내 EC2 서버의 주소를 입력 로그온 유형: 키 파일 사용자: EC2에 접속하던 사용자명 (ec2-user) 키 파일: 내 PPK 키 파일을 등록 완료 후 연결을 누른다. 내 로컬사이트와 리모트사이트(서버) 가 연결 되었다..

    Streamlit - 파이썬 개발 시, 파일을 분리하여 개발하기

    하나의 소스 코드 파일로는 문제가 발생하면 수정시 긴 내용을 읽어야 하는 가독성으로 인한 시간 지연과 하나의 파일이므로 잘못 수정시 안정성의 문제로 치명적 손상을 입을 수 있다. 그렇기 때문에 프로그램의 안정성을 고려하여 특정 기능을 하는 함수들을 파일화하여 메인파일에 import 해서 사용하는 것을 권장한다. 이렇게 사용하면 특정 기능들이 문제가 되어도 해당 서브 파일만 수정하면 되서 유지성이 상승한다. 메인파일 코드 import streamlit as st # 다른 파일의 함수를 호출하고 싶으면, 함수를 임포트 한다. from app8_home import run_home_app from app8_EDA import run_eda_app from app8_ML import run_ml_app from..

    Streamlit - 웹 대시보드에서 차트 시각화 (2)

    import streamlit as st import pandas as pd # 웹페이지에서 차트를 그릴 때 깔끔한 plotly, altair 라이브러리 import plotly.express as px import altair as alt streamlit에서 제공하는 차트 df = pd.read_csv('streamlit_data/lang_data.csv') st.dataframe(df.head()) column_menu = df.columns[1:] choice_list = st.multiselect('프로그래밍 언어를 선택하세요.', column_menu) if len(choice_list) != 0: # 유저가 선택한 언어만, 차트를 그린다. df_selected = df[choice_list]..

    Streamlit - 웹 대시보드에서 차트 시각화 (1)

    우리가 주피터노트북에서 그렸던 plt 차트나 sb 차트는, 스트림릿에서 표시하려면 plt.figure()로 먼저 영역을 잡아주고, st.pyplot 함수로 웹 화면에 그려준다. 그리고 판다스 데이터 프레임의 내장 차트도 마찬가지로 해준다. 샘플코드를 보고 사용법을 알아보자. import streamlit as st import pandas as pd import matplotlib.pyplot as plt import seaborn as sb df = pd.read_csv('streamlit_data/iris.csv') scatter # sepal_length 와 sepal_width의 관계를 차트로 그리시오. fig = plt.figure() plt.scatter(data= df, x='sepal_le..

    Streamlit - 유저가 업로드한 파일을 저장하는 방법

    import streamlit as st import pandas as pd import os from datetime import datetime from PIL import Image # 디렉토리(폴더)명과 파일을 알려주면, # 해당 디렉토리에 파일을 저장해 주는 함수. def save_uploaded_file(directory, file): # 1. 디렉토리가 있는지 확인하여, 없으면 먼저 디렉토리부터 만든다. if not os.path.exists(directory): os.makedirs(directory) # 2. 디렉토리가 있으니, 파일을 저장한다. with open(os.path.join(directory, file.name), 'wb') as f: f.write(file.getbuffer..

    AWS EC2 에서 배포한 앱을 수정하는 방법

    배포해서 백그라운드에서 실행중인 앱을 수정할 때 어떤 일련의 과정을 거치는지 정리해본다. 0. 수정 전 앱 화면 1. 로컬에서 코드를 수정 2. 수정한 코드를 테스트해보고 문제가 없으면 commit 3. push 하면 github에 수정본이 저장된다. 4. 앱이 구동중인 서버에 pull 5. 수정 완료

    AWS EC2 - 여러 개의 포트 지정, 실행하기

    하나의 EC2 서버에서 여러 개의 streamlit app을 실행하려 한다. streamlit은 기본적으로 8501 포트로 실행되고 8501에 실행중인 프로세스가 있으면 8502, 또 있으면 8503 이런식으로 증가한다. 내가 직접 포트를 지정해 줄 수도 있다. --server.port 포트번호 실행문 뒤에 이걸 붙여준다. 두 개의 streamlit app을 각각 8501, 8503 포트에서 백그라운드 실행해보겠다. 내 AWS EC2의 퍼블릭 주소뒤에 :포트번호를 붙여서 주소창에 입력하면 접속이 가능하다. 접속이 안된다면 인바운드 규칙을 추가해줘야 한다. 관련 포스트를 참고하자. https://donghyeok90.tistory.com/122 AWS EC2 서버에 접속할 수 있도록 포트 허용하기 stre..

    Streamlit - 유저에게 데이터를 입력 받는 방법

    import streamlit as st 텍스트 필드에 유저가 데이터를 입력 하면, 그 데이터를 받아 상호작용 할 수 있다. 1. 문자를 입력 받는 방법 text_input() name = st.text_input('이름을 입력하세요!') st.title(name) # 최대 5글자까지 name2 = st.text_input('이름 입력!', max_chars=5) st.title(name2) max_chars를 넘으면 더 이상 입력되지 않는다. text_area() : 여러줄을 입력 받을 때 message = st.text_area('메세지를 입력하세요.') st.text(message) text_area() 에서는 엔터키가 줄바꿈이기 때문에 입력할 때는 엔터가 아닌 Ctrl+엔터를 눌러줘야 한다. 2...