FastAPI

데이터 분석 개발자를 위한 FastAPI 강좌 (8강)

atomicdev 2024. 10. 9. 00:59
728x90

시나리오: "데이터 분석 결과를 FastAPI로 제공하는 데이터 파이프라인 구축하기"

배경:

한 스타트업에서 데이터 분석팀은 매일 수집되는 데이터를 바탕으로 간단한 분석을 수행하고 그 결과를 비즈니스 부서에 제공하는 일을 담당하고 있습니다. 하지만 팀이 사용하는 기존 분석 도구는 결과를 매번 수동으로 공유해야 해서 자동화된 시스템을 도입하고 싶어 합니다. 데이터 분석 결과를 실시간으로 요청받아 API 형태로 제공하는 시스템을 구축해야 하며, FastAPI를 이용해 이를 실현하려고 합니다.

데이터분석 개발자를 위한 FastAPI 프레임워크


시나리오 세부 내용:

1. 데이터 수집

  • 회사에서는 매일 수집되는 고객 트랜잭션 데이터를 분석하고 그 결과를 실시간으로 제공하려고 합니다.
  • FastAPI 서버가 고객 데이터를 받아 API 엔드포인트에서 바로 사용할 수 있도록 설계합니다.

2. 데이터 처리 및 분석

  • 데이터를 받아 기본적인 데이터 처리(결측치 처리, 필터링 등)를 진행한 후, 간단한 분석(예: 평균 구매 금액, 상위 10% 고객의 구매 빈도 등)을 수행합니다.
  • Pandas와 같은 데이터 분석 라이브러리를 사용하여 데이터를 처리한 후 FastAPI 엔드포인트에서 결과를 제공하는 방법을 설명합니다.

3. API로 데이터 분석 결과 제공

  • 분석 결과는 비즈니스 부서에서 손쉽게 접근할 수 있도록 API를 통해 제공됩니다.
  • FastAPI를 사용해 /summary, /top_customers, /purchase_average 등의 API 엔드포인트를 구성하고, 요청 시 분석 결과를 JSON 형식으로 반환합니다.

4. 배포 및 스케일링

  • 시스템이 실제 운영 환경에서 사용될 수 있도록 도커(Docker)를 활용해 FastAPI 애플리케이션을 컨테이너화합니다.
  • Kubernetes 환경에 배포하는 방법과, 데이터 분석 API가 고부하 상황에서도 원활히 작동할 수 있도록 스케일링을 다룹니다.

5. 성능 테스트 및 모니터링

  • API 서버의 성능을 테스트하고 모니터링하는 방법을 배웁니다. 성능을 최적화하고 고가용성을 확보하기 위한 기본적인 튜닝 작업도 다룹니다.
  • 데이터 요청이 많아졌을 때도 안정적인 서비스를 제공하기 위한 전략을 설명합니다.

이 시나리오의 학습 목표:

  1. FastAPI로 RESTful API 구축: 데이터 처리 및 분석 결과를 실시간으로 제공하는 API 엔드포인트 구현.
  2. Pandas와 연동: FastAPI와 Pandas를 연동하여 데이터 처리 후 결과를 반환하는 방법 학습.
  3. 비동기 처리 이해: 실시간 데이터 요청을 처리할 수 있도록 FastAPI의 비동기 기능을 이해하고 활용.
  4. 도커와 쿠버네티스 실습: FastAPI 애플리케이션을 컨테이너화하고 Kubernetes 환경에서 배포 및 스케일링.
  5. API 성능 최적화: 성능 테스트 도구를 사용해 API 서버의 성능을 분석하고 최적화하는 방법 학습.

이 시나리오는 실제 데이터 분석 작업 환경과 유사하며, 초급 개발자들이 자연스럽게 FastAPI와 관련된 핵심 개념을 익힐 수 있도록 돕습니다. 또한 데이터 분석 결과를 실시간으로 제공하는 시스템 구축 경험을 통해, 실무에 바로 적용할 수 있는 능력을 길러줄 수 있습니다.

 

 

강의안:

1강: FastAPI 기본 개념과 환경 설정

  • 내용: FastAPI의 기본 개념과 Flask와의 차이점, 설치 및 기본적인 환경 설정.
  • 실습: FastAPI 서버를 로컬 환경에 설치하고, 기본적인 엔드포인트를 만들어 실행.

2강: 데이터 수집 API 구현

  • 내용: FastAPI를 사용해 데이터를 수집하고 API로 데이터를 전달하는 방법을 설명.
  • 실습: /data_input 엔드포인트를 구현하여 데이터를 전송받고 저장하는 기능을 작성.

3강: 데이터 처리와 Pandas 연동

  • 내용: 데이터 처리 작업에서 Pandas와 FastAPI를 연동하는 방법. 데이터 분석의 기초 작업.
  • 실습: /process_data 엔드포인트를 구현하여 수집된 데이터를 Pandas로 처리 및 변환.

4강: 데이터 분석 결과 API 구현

  • 내용: 분석 결과를 실시간으로 API로 제공하는 방법을 배우고 구현.
  • 실습: /summary, /top_customers 같은 분석 결과를 반환하는 API 엔드포인트 구현.

5강: 비동기 처리와 성능 최적화

  • 내용: FastAPI에서 비동기 처리를 활용해 실시간 요청을 처리하는 방법과 성능 최적화 전략.
  • 실습: 비동기 작업을 구현하고, 대량의 요청을 처리하는 API를 최적화.

6강: 도커를 사용한 FastAPI 애플리케이션 컨테이너화

  • 내용: Docker를 사용해 FastAPI 애플리케이션을 컨테이너화하는 방법.
  • 실습: Dockerfile 작성 및 컨테이너 이미지를 생성하여 실행.

7강: Kubernetes를 활용한 애플리케이션 배포

  • 내용: Kubernetes 클러스터에 FastAPI 애플리케이션을 배포하고 스케일링하는 방법.
  • 실습: Kubernetes 배포 YAML 파일 작성 및 클러스터에 FastAPI 앱 배포.

8강: 성능 테스트 및 모니터링

  • 내용: API의 성능 테스트 도구를 사용해 성능을 분석하고, Kubernetes 환경에서 애플리케이션 모니터링 방법.
  • 실습: 로드 테스트 도구로 성능 테스트를 진행하고 결과를 분석.

강의 및 실습 진행 방식:

  • 실습 중심의 강의: 이론을 간략히 설명하고 바로 실습에 적용해 볼 수 있도록 강의 내용을 구성.
  • 점진적 학습: 각 강의에서 새로운 개념을 배운 후, 그 개념을 기반으로 조금씩 더 복잡한 프로젝트를 완성해가는 방식.
  • 실무 적용: FastAPI, Docker, Kubernetes와 같은 도구들을 실무 환경에서 사용할 수 있도록 연습.

이 강의는 초급 데이터 분석 개발자들이 FastAPI뿐만 아니라 배포와 성능 최적화까지 다루면서 실제 개발 환경에 적용할 수 있는 탄탄한 기초를 쌓을 수 있도록 도와줍니다.

728x90