카테고리 없음

시계열 모델링과 MLops 적용하기

iron-min 2025. 11. 26. 23:22

1. 오늘 배운것.

용어정리

  • 모델링: 데이터 수집, 생존 에측 모델 개발
  • API 서버 개발: 전달 인자를 받을 API 서버 구현
  • 컨테이너화** 및 배포*: 개발된 어플리케이션을 컨테이너화 하고 배포
  • 데이터 파이프라인 구축: 실시간 혹은 배치 데이터 수집, 자동화

*배포: 개발자가 만든 소프트웨어를 실제 사용자가 인터넷을 통해 사용할수 환경으로 옮기는 것

**컨테이너화: 소프트웨어에서 필요한 모든 요소(라이브러리, 코드)등을 격리된 환경으로 포장하는 기술

 

1-1. 가상환경 세팅

가상환경

더보기

개발을 하다보면 서로 다른 모듈/패키지를 사용하여 개발하게 됩니다. 이때 생길 수 있는 것이 버전이슈 입니다. 서로 다른 버전을 사용하면 A 프로젝트에서는 문제가 없지만 B프로젝트에는 적절하지 않아 서로 다른 버전을 사용해야할 수도 있고, 버그나 충돌이 일어날 수 도 있습니다. 이를 방지하기 위해 서로 독립된 환경을 구축하는데 이를 가상환경 이라고 합니다.

 

  • 가상환경(Virtual Environment):
    • Python 프로젝트를 위한 독립적인 실행 환경을 제공하는 도구
    • 각 프로젝트마다 필요한 패키지와 의존성을 분리하여 관리

 

  • 가상환경의 주요 장점
    • 의존성 충돌 방지: 서로 다른 버전의 라이브러리가 필요한 프로젝트들을 독립적으로 관리
    • 프로젝트 이식성 향상: requirements.txt 파일을 통해 필요한 패키지 목록을 공유하고 재현
    • 시스템 환경 보호: 전역 Python 환경을 오염시키지 않고 실험적인 패키지를 설치하고 테스트

 

  • 주요 가상환경 도구
    • venv: Python 3.3부터 기본으로 제공되는 가상환경 생성 도구
    • virtualenv: Python 2와 3 모두 지원하는 더 많은 기능을 제공하는 도구
    • conda: 데이터 과학 분야에서 많이 사용되는 패키지 관리 시스템
    • uv: 최근에 부흥한 패키지 관리 도구이자, 가상환경 관리 시스템. 속도가 매우 빠름

 

 

1-2. API의 개념

 

 

  • Application Programming Interface
  • 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘
  • 위를 이용해서 데이터를 수집해올 수 있음

 

 

API를 가져오는 request 모듈

GET 서버로부터 데이터 취득(조회 전용) 당근마켓에서 물건을 클릭하여 정보 보기
POST 서버에 데이터를 추가 당근마켓에서 게시글 올리기
PUT 서버에 데이터 갱신, 작성 게시글의 가격을 수정
DELETE 서버의 데이터를 삭제 게시글 삭제

 

웹개발 모듈 FastAPI

더보기

대부분의 api 개발은 개발자의 몫이나 실제 현업에서는 그렇지않음. Machine Learning을 구축하는 Engineer(MLE)나 Data Scientist(DS)가 모델 배포와 관리를 하는 경우도 많음. Python에서는 기존에 웹 개발을 지원해주는 라이브러리(flask, Django)등이 있었으나, 최근 FastAPI가 직관적이고 빠른 속도로 기존툴들을 대체하였습니다.

특징 FastAPI Flask Django
주 용도 API 서버, ML 배포, 마이크로서비스 간단한 웹사이트, 가벼운 API 거대한 웹사이트 (풀스택)
속도 매우 빠름 (비동기 기본) 보통 (동기 기본) 다소 무거움
문서화 자동 생성 (기본 내장) 별도 플러그인 설치 필요 별도 설정 복잡함
러닝커브 쉬움 (모던 파이썬 문법 활용) 매우 쉬움 어려움 (공부할 게 많음)

 

 

 

 

2. 느낀점.

기존 강의들보다 너무 어려운것 같습니다. 코드와 상관없는 개발 분야의 지식이 전무하다 보니 이해하기가 힘든것 같습니다.

복습해도 이해하기가 힘들것 같아서 일단 보류하고 나중에 강의를 조금 더 듣고 다시 처음부터 녹화를 다시 듣는 식으로 학습을 해야할 것 같습니다.