로컬 서버를 사용하지 않고 데이터센터나 클라우드 서버를 사용하는 이유?
(왜 대시보드를 로컬에 띄우지 않고 서버에 띄우는지)
윈도우 환경 -> git bash 추천
git과 github의 차이
git : git은 본인의 코드와 그 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해줌. git을 통해 브랜치를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능함. 하지만 로컬 저장소를 사용하기 때문에 다른 개발자와 실시간으로 작업을 공유할 수 없음.
github : github는 git 저장소를 관리하는 클라우드 기반 호스팅 서비스. git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공함. 또한 클라우드 서버에 소스를 올리기 때문에 한 프로젝트에 여러 명의 사람이 참여하여 버전 제어 및 공동 작업이 가능.
Git은 버전 관리 '프로그램'
Github는 소스코드 관리 + 저장 + 소셜코딩 등이 가능한 '원격 저장소'
Add a README file : markdown 문법에 맞춰 작성하며 꾸밀 수 있음
Add .gitignore : Git 버전 관리에서 제외할 파일 목록을 지정하는 파일.
Choose a license : 코드 저작권 선택
마크다운 이미지 업로드
<img src=~ width=~ height=~>
[사진제목]<사진링크>
이미지 업로드해서 링크로 사용하고자 할 때
https://imgur.com/
git fork : 다른 사람의 저장소를 내 저장소로 가져감
issues : 이슈 관리
actions : 주기적으로 사용하는 기능들
wiki : 문서작성
pip freeze > requirements.txt로 현재 환경의 라이브러리들을 버전과 함께 텍스트로 저장
github에서 requirements.txt를 작성하는 이유? : 깃헙 서버에서 어떤 모듈을 써야하는 지 알려주기 위해서
github 에서 바로 편집을 할 수 있음에도 vs code를 사용하는 이유? :
streamlit - github 연동 후 new app 생성 후 github에 있는 .py
파일 배포
github repository 설정에서 website 링크 추가 가능
conda 가상환경과 python -m venv 가상환경
streamlit 한번 실행하면 원래 있던 터미널에서 코드는 더 못씀
streamlit 규칙(html 규칙) 상 페이지 설정을하는 부분이 초반부에 나와야 함
js, css, title, og, meta 정보 등을 head tag 안에 작성
인터넷 서비스들은 대부분 캐시가 적용되어있음
st.set_page_config()
: 웹페이지 탭 설정. head tag 안에 들어가기 때문에 초반부에 나와야 함 st.markdown()
: streamlit에서 마크다운 문법 사용하게 해줌st.sidebar
: 사이드바 편집st.sidebar.header()
: 사이드바 헤더 생성st.sidebar.selectbox(col, range)
: 사이드바에 selectbox 생성import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import koreanize_matplotlib
st.set_page_config(
page_title="Likelion AI School 자동차 연비 App",
page_icon="🚗",
layout="wide",
) # 웹페이지 탭 디자인 설정
st.markdown("# 자동차 연비 🚗")
st.sidebar.markdown("# 자동차 연비 🚗")
# github에서 csv 불러오기
url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/mpg.csv"
# 캐시 생성
@st.cache
def load_data(nrows):
data = pd.read_csv(url, nrows=nrows)
return data
data_load_state = st.text('Loading data...')
data = load_data(10000)
data_load_state.text("Done! (using st.cache)")
# data = sns.load_dataset("mpg")
st.sidebar.header('피처를 선택해주세요') # 사이드바 헤더 생성
# Sidebar - year
selected_year = st.sidebar.selectbox('Year',
list(reversed(range(data.model_year.min(),data.model_year.max())))
) # 연도 리스트 selectbox 생성(내림차순)
if selected_year > 0 :
data = data[data.model_year == selected_year] # 선택된 year만 보여주기
# Sidebar - origin
sorted_unique_origin = sorted(data.origin.unique())
selected_origin = st.sidebar.multiselect('origin', sorted_unique_origin, sorted_unique_origin) # origin 고유값 multiselect 생성
if len(selected_origin) > 0: # origin에 값이 들어있다면
data = data[data.origin.isin(selected_origin)] # origin에 해당되는 값들을 return
st.dataframe(data) # 데이터프레임 띄우기
st.line_chart(data["mpg"]) # 선그래프 띄우기
st.bar_chart(data["mpg"]) # 막대그래프 띄우기
github에 올라가있는 csv 파일 불러오기
url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/mpg.csv"
mpg = pd.read_csv(url)
github에 배포
퀴즈 정리