멋쟁이사자처럼 AI스쿨 7기, 박조은 강사님 강의
221018
streamlit
- 09번 강의 파일
- 데이터센터나 클라우드 서버를 사용하는 이유? / 왜 대시보드를 서버에 띄우는지 / 대시보드를 왜 만드는지 : 우리가 쓰는 컴퓨터도 메모리를 늘린다거나 새로 사는 경우처럼
- 24시간 동안 가동이 되어야 한다. 계속 켜두면 발열. 안정적인 전력공급이나 네트워크 유지가 어렵기 때문에
- 우리는 클라우드 서비스를 깃허브를 사용할 것
- 리눅스 계열 명령어(cmd 명령어 창)
- ls 실행: ls가 안된다면 dir
- cd .. 하면 상위 폴더로 이동 / cd (폴더명st_demo)로 입력해서 돌아올 수 있다.
- Git Bash는 윈도우 환경에서 리눅스 명령어를 입력할 수 있다. - 잔디심기와 습관 만들기
- 깃(Git) : 작업을 조율하기 위한 분산 버전 관리 시스템
- Q. git과 github는 어떻게 다를까? : 깃은 분산 버전 관리 시스템(코딩 관리 프로그램), 깃헙은 소스 코드 관리+저장+소셜코딩(깃을 보관하고 공유해주는 서버 역할)
- 분산이라는 것은 여러 사람이 함께 고칠 수 있다.
- 깃헙 로그인- New로 새 repository 만들기
- Add a README file
- Add .gitignore : ex ) API 키는 나만 사용해야 되는데, 같이 업로드 될 경우, 안올라가게 처리해주는 것
- Choose License
- MIT license : 소스 코드 참고해도 좋음. 상업적으로 코드를 가져다 써도 되지만, 문제가 생겼을 경우 나에게 묻지마(면책사항)
- creative commons license : 가져다 써도 되지만, 상업적으로 쓰지마 - 지울 파일 들어가서 휴지통 모양 -> 삭제 후 -> Add file -> Create new file -> LICENSE 라고 입력 -> Choose a license template에서 MIT를 고른다.
-> merge, confrim merge (pull request) : 라이센스를 없었던 사람은 안뜨고, 지웠다가 다시 만든 사람들에게 뜬다. - Pull request : 저장소에 pull request를 보내면 코드 리뷰가 가능해진다. 변경을 검토하고 적용해달라.
- Q. Git ignore는 어떤 역할을 할까? 파일을 git의 추적에서 제외시킨다.
- ipython_checkpoints : 변경사항 저장하는 눈에 보이지 않는 숨김폴더 등 업로드 하지 말아라 - Q. README.md 에서 .md는 무엇을 의미할까? 마크다운
- - README.md는 추가해서 생성을 추천
- 오른쪽 상단 연필 표시 누르고 '멋쟁이 사자처럼 AIS7 실습'이라고 써둔 부분을 꾸밀 수 있다.
- img는 imgur.com 사용 : 깃헙이 무거워질 수 있어서(이미지 파일을 올리면)
- imgur에서 copy image address해서 이미지 url을 따와서 사용할 수 있다.
- - 깃 명령어로 업로드 예시 : git add eda.ipynb / git commit -m "add plots" / git push -u origin master(기본 branch)
- 깃 마크다운 공식 문서 https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax
- python 안에 코드 쓰는 것을 README 파일에도 넣을 수 있다.
- Add file-> uber.py 라는 새 파일 만들기 -> 우버픽업 streamlit 예제 가져오기 -> 깃헙 창에 붙여넣기 -> create new file 로 생성
- 라이브러리 불러오기
- st.title 제목
- DATE_COLUMN, DATA_URL
- st.cache 새로고침 할 때마다 로드하면 오래걸리니까, 캐시에 저장해두고 로드
- st.text : 데이터가 로딩될 때 로딩중이라고 표시해달라
- nrows를 넣었는데, load_date(10000) 만개만 가져오도록 해라
- checkbox가 표시되었을 때만 write해서 데이터를 보여줘라
- 서브헤더, bar_chart
- slider 사용해서 시간대별로 구분해서 데이터를 볼 수 있도록
- 서브헤더, map으로 지도 표시 - streamlit에 배포하려면 필요한 라이브러리가 있다. ex) requirement.text
- pip freeze > requirements.text - requirements.text라는 새 파일 생성 -> pandas~koreanize_matplotlib 까지 작성 -> commit
- Q. requirement.text를 생성하는 이유? 서버에 우리가 이런 라이브러리를 쓰고 있다고 알려주려고
- streamlit.io 가서 배포
- Q. 배포란? 우리가 만든 서비스(ex. 우버.py)를 업로드(ex.스트림릿에) 해서 돌아가게 만드는 것.
- Deploy an app
- ais7_demo라는 repo선택
- 브랜치는 다른 것 안만들었으면 main만 있을 것
- main file path 는 uber.py
- Deploy 하기 : 배치하다, 배포하다
- 잘 안되면 reboot해서 배포 - 다시 git-hub
- 배포 완료 되면 Repo 오른쪽 상단 About 부분에서 Website URL 추가할 수 있다.
- git-scm.com에서 깃 설치
- 옥토캣(Octocat) 마스코트
- 지금은 마이크로소프트 사 인수(2018년)
- 깃은 틱스트 명령어, 깃허브는 GUI(그래픽 유저 인터페이스) - Code에서 SSH에서 명령어 복사해서 깃을 통해 받아올 수 있다. : git clone git@github.com:주소/ais7_demo.git
- 다른 repository star : 좋아요 기능
- Fork : 내 저장소로 퍼가요
- 오픈 소스 수정하고 Pull request
- Issues : 고쳐야 될 이슈를 적어두고, 고치고, 종료시키고. 규칙이 있다. BUG(버그), DOC(문서), API 등등
- Projects : 새로운 프로젝트를 생성하고, todolist 등 관리
- VS Code
- Q. 깃헙에서도 바로 편집할 수 있음에도 VS code를 사용하는 이유?
- 배포하기 전에 바로바로 보기 위해서, 이미 배포된 곳에 장애를 가져올 수 있다, 인터넷 접속에 구애받지 않는다,
- conda activate base 가상환경 활성화, conda deactivate 비활성화
- python -n streamlit run uber.py / streamlit run uber.py : 스트림릿에 uber.py 실행
- pages폴더를 생성 후 first.py라는 파일 생성 : 스트림릿 예제 가져와서 first라는 페이지 생성
- mpg.py
- st.markdown("# 자동차 연비")
- st.sidebar.markdown("# 자동차 연비")
- pd.read_csv("링크") 하면 오류가 난다.
- raw 파일 링크 복사 : https://raw.githubusercontent.com/mwaskom/seaborn-data/master/mpg.csv
- 슬라이드 31쪽 참고해서 검색 메뉴 만들기
- 예제 소스를 보고 하나씩 추가해보면서 체크해보기 - config 는 상단, head tag에 들어가는데 body tag가 실행되고 나서 실행하면 돌아가지 않는다.
- selectbox를 "Year"라는 이름으로 생성, 값은 mpg.model_year의 최소 최대값, 선택시 최근 년도가 위로 올라오게 하기 위해 reversed 넣는다.
- selected year : year 선택하면 안된다 : 조건문 : selected year가 0보다 클 때 - selected origin : multiselect 기능 사용
- @st.cache
- 매번 데이터셋에서 불러오지 않고 캐시에서 불러올 수 있도록, uber.py 캐시 코드를 참고하여 불러온다. - 그래프 : Chart elements https://docs.streamlit.io/library/api-reference/charts
- streamlit에서 제공하는 차트 : st.line_chart, st.bar_chart
- plotly : 호환이 조금 더 잘 됨 pxh = px.histogram()
- pyplot은 subplot을 그려줘야 한다. - 업로드
- 경로는 pages/로 경로 설정 - 터미널을 끄는 명령어 ctrl + c
- ls 또는 dir 해서 해당 경로의 목차를 확인
- pages 폴더가 실행이 되면 streamlit run uber.py하면 서버가 실행된다.
퀴즈
10/10문제
1. git
컴퓨터 파일의 변경사항을 추적하는 시스템
스냅샷 스트림 기반의 분산 버전 관리 시스템
빠른 수행 속도, 데이터 무결성, 분산, 비선형 워크플로
- git hub
분산 버전 관리 툴인 깃 저장소 호스팅을 지원하는 웹 서비스
오픈소스를 위한 무상 서비스 제공
영리적인 서비스는 제공되지 않는다 (x) - gitignore
항상 최상위 directory에 존재해야 한다.
폴더는 제외할 수 없다.(x) - 아나콘다 가상환경 목록을 보여주는 명령
conda env list
댓글