[TIL] 22.10.18

문종현·2022년 10월 18일
0

TIL

목록 보기
18/119
post-custom-banner

👉 오늘 한 일

  • github 실습
  • streamlit 실습

github 실습

로컬 서버를 사용하지 않고 데이터센터나 클라우드 서버를 사용하는 이유?
(왜 대시보드를 로컬에 띄우지 않고 서버에 띄우는지)

  • 안정적인 전력공급, 환경 제공

윈도우 환경 -> git bash 추천

git과 github의 차이

git : git은 본인의 코드와 그 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해줌. git을 통해 브랜치를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능함. 하지만 로컬 저장소를 사용하기 때문에 다른 개발자와 실시간으로 작업을 공유할 수 없음.

github : github는 git 저장소를 관리하는 클라우드 기반 호스팅 서비스. git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공함. 또한 클라우드 서버에 소스를 올리기 때문에 한 프로젝트에 여러 명의 사람이 참여하여 버전 제어 및 공동 작업이 가능.

Git은 버전 관리 '프로그램'
Github는 소스코드 관리 + 저장 + 소셜코딩 등이 가능한 '원격 저장소'

Add a README file : markdown 문법에 맞춰 작성하며 꾸밀 수 있음

Add .gitignore : Git 버전 관리에서 제외할 파일 목록을 지정하는 파일.

  • api키와 같이 올라오면 안되는 정보들을 걸러줄 수 있음
  • e.g. API KEY를 따로 파일에 넣고 변수에 불러와서 쓰고 그 API KEY 파일은 .gitignore에 추가

Choose a license : 코드 저작권 선택

  • MIT License : 소스코드는 다 써도 되지만 문제가 생겼을 때 책임은 지지 않겠다.
    등등..

마크다운 이미지 업로드
<img src=~ width=~ height=~>
[사진제목]<사진링크>

이미지 업로드해서 링크로 사용하고자 할 때
https://imgur.com/

git fork : 다른 사람의 저장소를 내 저장소로 가져감

issues : 이슈 관리
actions : 주기적으로 사용하는 기능들
wiki : 문서작성

streamlit 실습

pip freeze > requirements.txt로 현재 환경의 라이브러리들을 버전과 함께 텍스트로 저장

  • requirements.txt를 직접 작성하는 경우 버전을 지정해서 사용하기도 함

github에서 requirements.txt를 작성하는 이유? : 깃헙 서버에서 어떤 모듈을 써야하는 지 알려주기 위해서

github 에서 바로 편집을 할 수 있음에도 vs code를 사용하는 이유? :

streamlit - github 연동 후 new app 생성 후 github에 있는 .py 파일 배포

github repository 설정에서 website 링크 추가 가능

  • streamlit 배포 url 설정

conda 가상환경과 python -m venv 가상환경

  • conda는 파이썬 버전을 설정해서 가상환경을 만들 수 있음
  • venv는 로컬에 해당 파이썬 버전이 깔려있어야 사용 가능
  • conda가 조금 더 사용하기 편리함

streamlit 한번 실행하면 원래 있던 터미널에서 코드는 더 못씀

streamlit 규칙(html 규칙) 상 페이지 설정을하는 부분이 초반부에 나와야 함

js, css, title, og, meta 정보 등을 head tag 안에 작성

인터넷 서비스들은 대부분 캐시가 적용되어있음

  • 이미 데이터를 한번 로드했다면 새로 로드하지 않고 기존 로드한 데이터를 사용하면 속도도 빠르고 부담을 줄일 수 있기 때문에.

streamlit page 생성

  • 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 파일 불러오기

  • github csv파일의 raw 데이터의 url 복사해서 가져옴
url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/mpg.csv"
mpg = pd.read_csv(url)

github에 배포

  • 파일 업로드 후 수정 -> 디렉토리 "pages" 지정 후 저장
  • 웹페이지로 가보면 반영된 것을 확인할 수 있음

퀴즈 정리

  • github는 영리적인 서비스는 제공하지 않음
profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글