Product Serving - 프로토 타입부터 점진적 개선

eric9687·2022년 1월 16일
0

voila

  • 프로토타입 작성을 위한
  • 본 목적: 대시보드
  • jupyter notebook 결과를 쉽게 웹형태로
  • Ipywidget, Ipyleaflet등 사용가능
  • 고유한 템플릿 생성 가능
  • 너무 쉬운 러닝 커브

Streamlit

  • 웹서비스 형태
  • 대안
    • R의 Shiny
    • Flask, FastAPI:백엔드를 직접구성 + 프론트엔드 작업도 진행
    • Dash: 기능이 제일 풍부한 python 대시보드 라이브러리
    • Voila: Jupyter notebook을 바로 시각화 가능
  • 장점
    - 파이썬 스크립트 코드를 조금만 수정하면 웹을 띄울 수 있음
    • 백엔드 개발이나 HTTP요청을 구현하지 않아도 됨
    • 다양한 component제공해 대시보드 UI 구성할 수 있음
    • stramlit Cloud도 존재해서 쉽게 배포 가능
    • 화면 녹화 기능
  • https://docs.streamlit.io/library/api-reference
  • https://share.streamlit.io/daniellewisdl/streamlit-cheat-sheet/app.py

Linux

  • 서버에서 사용되는 OS
  • free, open source
  • stability
  • shell command / script
  • CLI: Terminal - Command Line Interface
  • GUI: Desktop - Graphic User Inerface
  • 배포판: Devian, Ubuntu, Redhat, CentOS...

쉘 커맨드

  • 쉘의 종류
    • 쉘: 사용자가 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램
    • 터미널/콘솔: 쉘을 이용하기 위해 문자 입력을 받아 컴퓨터에 전달. 프로그램의 출력을 화면에 작성
    • bash: Linux의 표준 쉘
    • zsh: Mac 카탈리나 OS 기본 쉘
  • 쉘 UX: username@hostname:current_folder
  • 쉘커맨드:
    • man : 메뉴얼 보기
    • mkdir: 디렉토리 만들기
    • ls
    • pwd: 현재 폴더의 절대 경로
    • cd
    • echo
    • vi
    • bash: 스크립트 실행
    • ....
  • 쉘 스크립트
    • .sh파일을 생성하고, 그안에 커맨드를 추가

Cloud

  • 사용 이유: (웹,앱 서비스를 만들때)local host로 서비스를 만들수 있음. IP로 누구나 접근 가능, 수정, 공유.'
  • 회사: AWS, Google Cloud, Azure, Naver Cloud platform
  • cloud service
    • computing service(server)
    • serverless computing
    • stateless contatiner
    • object storage
    • Database
    • Data warehouse
    • AI platform

CI/CD

  • 개발 프로세스
    • 개발 환경
      • local
        • 각자의 컴퓨터에서 개발
        • 각자의 환경을 통일시키기위해 Docker등을 사용
      • Dev
        • local에서 개발한 기능을 테스트할 수 있는 환경
        • Test 서버
      • staging
        • production환경에 배포하기전에 운영하거나 보안, 성능 측정하는 환경
        • staging 서버
      • Prodution
        • 실제 서비스를 운영하는 환경
        • 운영 서버
  • Continuous integration(CI) 지속적 통합
    • 새롭게 작성한 코드 변경 사항이 build, test 진행한 후 test case에 통과했는지 확인
    • 지속적으로 코드 품질 관리
  • Continuous Deploy/Delivery(CD)
    • 작성한 코드가 항상 신뢰 가능한 상태가 되면 자동으로 배포될 수 있도록 하는 과정
    • dev / staging / main 브랜치에 Merge가 될 경우 코드가 자동으로 서버에 배포
  • CI: 빌드,테스트 자동화. CD: 배포 자동화
  • 솔루션: Jenkis, Circleci, Travis CI, AWS codedeploy, github action
profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)

0개의 댓글