37일차 공부 정리

웹 서빙

MLOps 과정을 수행하기 위해서 웹 서빙 단계가 반드시 필요합니다.

상황에 따라 다르겠지만 제 상황에서 ML 엔지니어가 된다고 했을 때 당장 FE, BE를 다루는 것은 많이 무리입니다.

다만 간단한 프로토타입을 만들때 어떤 식으로 웹 서빙을 해야하는지 가볍게 어필해야 할 필요가 있습니다.

이를 위한 라이브러리를 소개할 것이 voila, streamlit 입니다.

물론 실제 서비스를 만들거나 유지보수가 필요할 때는 FE를 다뤄야하며 FE를 다루는 사람과 요구사항을 두고 소통하는 능력도 중요하다는 것을 느낍니다. 어제 실무자 특강과 연결되는 내용인 것 같아요.

Python 프로토타입 도구를 러닝커브가 쉬운 순서로 나열했습니다.

  • Jupyter Notebook : ipywidget를 이용해 쉽게 인터랙티브가 가능합니다. 하지만 Notebook 환경이 어색한 사람과는 소통이 원할하지 않을 수 있어요.
  • Voila : Jupyter Notebook 환경에서 바로 적용할 수 있으며 사용도 쉽습니다. 빠른 프로토타입을 만드는데 도움이 되나 ipywidget을 넘어서는 인터랙티브함은 어렵습니다.
  • Streamlit : 자주 사용하는 위젯이 존재해 기존 파이썬 함수를 쉽게 재사용할 수 있습니다. 다만 개발 리소스가 Voila 대비 조금 듭니다. Cloud에 바로 적용 가능하고 녹화기능도 존재해 편리합니다.
  • Dash : 대시보드 라이브러리 중 기능이 많은 편 입니다. 다만 개발 리소스가 일정수준 필요합니다.
  • Flast or FastAPI : 필요한 부분을 직접 개발하고 API화 해서 실제 서비스화 하기 좋습니다. 다만 FE, BE를 어느정도 할 수 있어야합니다.

상황에 따라 여러 도구를 잘 활용해야겠습니다. 마스터님 말씀대로 특정 도구가 정말 필요할 때 문법 등을 자세히 보는 것으로 하고 어떤 기능이 있는지 파악하는 것 위주로 공부했습니다.

voila

# 사용법
pip3 install voila
# jupyter Notebook에서
jupyter serverextension enable voila --sys-prefix
# ipywidgets 임포트
import ipywidgets as widgets

voila1

voila를 사용하기 위해선 위에 랜더링 된 버튼을 누르면 됩니다.(제가 실습했을 때는 voila라고 문구가 있었습니다.)

또는 localhost:8888/voila로 접근하거나 CLI 환경에서 voila를 검색해도 사용 가능합니다.

ipywidgets을 이용해 여러가지 도구들을 간단한 코드로 사용할 수 있으며 자세한 사용 방법은 필요성을 느낀다면 더 공부한 뒤 따로 포스팅 하겠습니다.

Streamlit

# 사용방법
streamlit run 파일명.py 또는 localhost:8501

Streamlit

꽤 디자인도 이쁘게 뽑히는 모습입니다. voila를 알고있다면 쉽게 배울 수 있습니다.

더 많은 컨텐츠는 공식문서 를 참고하면 좋습니다.

Streamlit은 화면에서 무언가가 업데이트되면 전체 Streamlit 코드가 다시 실행한다는 점을 유의하여 Session State를 잘 컨트롤해준다면 고급 사용자가 될 수 있습니다.

느낀점

힘차게 시작했던 하루 입니다. 하지만 거창하게 무엇을 하진 못했네요. 속도 계속 편하지 않아서 걱정입니다.

U+ 프로젝트도 조금 봤어야 했는데 생각만큼 진도를 못뺐네요. 집중력이 떨어지는 하루입니다.

오늘 부캠에서 살아남기 컨텐츠를 진행했는데 저희 트랙 선배님이 해주신 말씀이 참 기억에 많이 남습니다.

마인드 셋이 멋있고 자기 주관이 뚜렷하며 자신감 있는 모습도 너무 좋은 것 같아요. 같은 통계학과 출신이라 더 집중도 잘 됬고 많이 배운 것 같습니다.

부캠 컨텐츠에 집중하고 투두리스트 잘 만들고 최선을 다해 노력하고 좋은 인맥 잘 만들고 등등 좋은 말씀 정말 감사합니다.

내일도 할 컨텐츠가 많은데 힘내서 잘 해결했으면 좋겠습니다. 화이팅!!