카테고리 없음
시계열 모델링과 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. 느낀점.
기존 강의들보다 너무 어려운것 같습니다. 코드와 상관없는 개발 분야의 지식이 전무하다 보니 이해하기가 힘든것 같습니다.
복습해도 이해하기가 힘들것 같아서 일단 보류하고 나중에 강의를 조금 더 듣고 다시 처음부터 녹화를 다시 듣는 식으로 학습을 해야할 것 같습니다.