책 소개
책 소개
데이터에서 API로, API에서 제품으로, 실무 전 과정을 직선으로 만드는 가장 빠른 방법!
이 책은 데이터 수집과 모델 학습, API 구축·배포·문서화·SDK까지 데이터 사이언스 전 과정을 실전 예제로 하나로 잇는다. FastAPI·SQLAlchemy·Pydantic을 기반으로 REST 설계와 OpenAPI, 인증·테스트, 도커, Render·AWS 배포, PyPI 배포를 한 흐름으로 설명한다. 판타지 스포츠 도메인을 활용해 개념을 곧바로 코드와 서비스로 연결하고 포트폴리오로 증명하는 방법을 제시한다. 또한 주피터와 pandas로 분석을 수행하고 Airflow로 파이프라인을 자동화하며 Streamlit 대시보드로 “만든 API를 실제로 쓰는” 가치를 보여준다. 더 나아가 ONNX, LangChain, 챗GPT를 통해 생성형 AI가 API를 호출하는 에이전트형 애플리케이션까지 확장한다. 결과적으로 데이터 사이언티스트와 백엔드·API 설계자, 구직·이직 준비자 모두에게 즉시 통하는 실무 가이드를 제공한다.
내용 소개
1. 설계부터 배포까지 한 번에!
이 책은 요구 정의와 사용자 스토리에서 출발해 REST 선택, 데이터 모델링, 엔드포인트 설계를 차근차근 완성해 나간다. 이어서 FastAPI·SQLAlchemy·Pydantic을 활용해 타입 안정성과 유지보수성을 확보하고, OpenAPI 기반 문서를 통해 팀 협업을 더욱 정교하게 다듬는다. 회귀 테스트와 도커 컨테이너로 안정적인 릴리스 흐름을 마련한 뒤, Render와 AWS로 배포해 실제 운영 환경까지 준비한다. 마지막으로 파이썬 SDK를 PyPI에 배포해 일관된 사용 경험과 재사용성을 제공하며, API 실무의 처음부터 끝까지 한 번에 완주할 수 있도록 안내한다.
2. 만든 순간 쓰이는 마법
이 책에서 다루는 노트북·파이프라인·대시보드는 ‘만드는 즉시 가치가 드러나는’ 실무 도구들이다. httpx 클라이언트로 API를 호출해 주피터와 pandas에서 지표를 계산하고 인사이트를 도출할 수 있으며, Airflow로 증분 수집과 의존성을 관리해 반복 가능한 데이터 파이프라인을 구축할 수 있다. 여기에 Streamlit으로 대화형 시각화를 제공하면 사용자 참여와 의사결정 속도가 동시에 높아진다. 나아가 API 소비자 관점에서의 모범 사례를 통해, 데이터가 어떻게 실제 제품 가치로 전환되는지 자연스럽게 확인할 수 있다.
3. 모델을 서비스로!
이 책은 ONNX·LangChain·챗GPT를 활용해 모델을 실제 서비스로 전환하는 과정을 일관되게 보여준다. 우선 scikit-learn 모델을 ONNX로 변환해 추론 성능과 이식성을 끌어올리고, FastAPI를 통해 예측 엔드포인트를 공개한다. 여기에 인증·인가를 더해 보안 경계를 확보하고, 운영 환경에 맞는 설정을 갖춰 실 서비스 수준으로 완성한다. 이후 LangChain과 LangGraph로 도구 호출형 에이전트를 구성해 API 오케스트레이션을 자동화하고, 챗GPT와 OAS를 연동해 대화형 워크플로까지 확장함으로써, 모델이 실제 사용자 경험으로 자연스럽게 이어지도록 돕는다.
추천의 글
이 책은 데이터 사이언스 커뮤니티에 커다란 기여를 하고 있다. 라이언 데이는 데이터 사이언티스트들이 종종 너무 늦게 배우는 핵심 주제인 ‘사용자에게 솔루션을 제공하는 방법’을 체계적으로 소개한다. 이 책을 통해 API에 대한 내용을 배울 수 있을 뿐만 아니라, 데이터 사이언스 툴킷으로 사용할 수 있는 12가지 이상의 새롭고 강력한 도구를 얻을 수 있다. 여러분의 전문성 향상을 위해 이 책을 꼭 읽고, 더 뛰어나고 효율적인 데이터 사이언티스트가 되길 바란다!
— 알렉스 거트맨(Alex Gutman), 『대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라』(책만, 2024)의 저자
이 책은 판타지 풋볼(fantasy football)이라는 매우 시의적절한 산업을 예로 들어 빈틈없고 명확한 API 구축 로드맵을 제시한다. 이 책은 개인으로서 데이터 사이언스 역량을 강화하거나 조직 차원에서 고객 서비스를 강화하려는 분들을 위한 필독서다.
— 에릭 에거(Eric Eager), 캐롤라이나 팬더스(Carolina Panthers)의 풋볼 애널리틱스(football analytics) 부사장이자 『Football Analytics with Python and R』(O’Reilly Media, 2023)의 저자
데이터 사이언스와 AI 분야에서 API의 중요성이 커지고 있는 지금, 이 책은 실용적인 인사이트를 얻기 위한 최고의 지침서다. 이 책은 ‘사용자의 이해’를 최우선으로 삼아 좋은 API를 설계하고 구축하는 방법을 상세히 소개하며, 실행 가능한 예제와 전문가의 노하우를 제공한다.
— 제임스 고프(James Gough), 『Mastering API Architecture』(O’Reilly Media, 2023)의 저자
이 책은 API를 구축하거나 API를 통해 데이터를 활용하는 데이터 사이언티스트를 위한 필수 지침서다. 매우 실용적이고 재미있게 읽을 수 있으며, 소프트웨어 엔지니어링 역량을 한 단계 높이고자 하는 분께 강력히 추천한다.
— 캐서린 넬슨(Catherine Nelson), 『데이터 과학을 위한 소프트웨어 엔지니어링』(제이펍, 2025)의 저자
이 책은 모든 수준의 데이터 사이언티스트를 위해 깊이 있는 기술 전문 지식과 실용적인 전략을 결합한 포괄적인 API 사용법을 제시한다.
— 크리스 로울리(Kris Rowley), CSBS 최고데이터책임자(CDO, Chief Data Officer), 데이터 파운데이션(Data Foundation) 이사회 멤버
이 책은 기술 서적에서 흔히 볼 수 있는 ‘실제 활용 맥락과 동떨어진 이론’을 배제하고, 기술이 실제로 사용되는 방식을 소개한다. 저자는 스포츠 데이터를 활용한 재미있는 사례를 통해 단일 API 프로젝트를 여러 각도에서 살펴본다. 데이터 사이언스 분야 종사자라면 누구나 이 책에서 유용한 정보를 얻을 수 있을 것이다.
— 아담 듀벤더(Adam DuVander), 에브리디벨로퍼(EveryDeveloper)
이 책은 판타지 스포츠의 흥미로운 사례를 통해 더 나은 API 사용자이자 제작자가 되는 방법을 자세히 소개한다.
— 리처드 에릭슨(Richard Erickson), 데이터 사이언티스트, 『Football Analytics with Python and R』(O’Reilly Media, 2024)의 저자
이 책의 대상 독자 및 이 책에서 다루는 내용
이 책은 API, AI, 데이터 사이언스의 접점에 있는 내용을 다루는 만큼, 다음 세 가지 유형의 독자에게 특히 유용하다.
데이터 사이언티스트
데이터 사이언티스트(data scientist)들은 항상 API를 사용하지만, ‘REST API 호출은 코드 몇 줄이면 구현할 수 있다’라는 이유로 API 사용에 대해 새로 배울 것이 없다고 생각하기 쉽다. 실제로 REST API는 호출이 간단하며, 그 점이 API 확산의 한 이유가 됐다. 하지만 안정적이고 견고하며 제공자에게 부담을 주지 않는 탄력적인 방식으로 API를 사용하려면 더 세심한 접근이 필요하다.
이 책을 통해 배울 수 있는 핵심 기술은 다음과 같다.
● API 개발 및 배포하기
● 소프트웨어 개발 키트(SDK, Software Development Kit) 및 API 클라이언트 개발하기
● 파이썬(Python) 패키지를 만들어 PyPI에 배포하기
● 머신러닝 모델을 API로 배포하기
● Streamlit 기반 데이터 애플리케이션 개발하기
● Airflow 데이터 파이프라인 구축하기
● LangChain과 챗GPT(ChatGPT)를 활용한 생성형 AI 애플리케이션 개발하기
API 개발자 및 설계자
API 개발자와 설계자는 중요한 새 사용자층을 위해 API를 강화하는 방법을 배울 수 있다. 데이터 사이언티스트가 하는 일, 수행하는 작업, 선호하는 API 기능 등을 배우게 된다. 또한 생성형 AI 애플리케이션이 API를 호출하는 방법과 API에 필요한 기능에 대해서도 배울 수 있다.
그리고 실습 예제를 통해 다음과 같은 다양하고 새로운 기술을 배울 수 있다.
● FastAPI, SQLAlchemy, Pydantic을 사용하는 파이썬 API 개발하기
● 도커(Docker)로 API 컨테이너화하기
● 클라우드 호스트에 API 배포하기
● 파이썬 SDK를 만들어 PyPI에 배포하기
● LangChain과 챗GPT를 사용해 생성형 AI 애플리케이션 개발하기
구직자 및 이직자
위에서 소개한 기술들은 현장에서 많이 필요로 하는 기술이므로, 이 기술을 배우면 데이터 사이언스나 소프트웨어 개발 분야에서 첫 직장을 찾거나 새로운 역할에 도전하는 데 큰 도움이 될 것이다. 이 책은 포트폴리오 프로젝트를 중심으로 구성했다. 이를 통해 구체적인 목표를 달성해 실력을 증명하는 가시적인 성과물을 만들 수 있다.
목차
목차
- 추천의 글
- 지은이 소개
- 옮긴이 소개
- 옮긴이의 말
- 들어가며
- 1부 | 데이터 사이언스를 위한 API 개발
- 1장 데이터 사이언티스트를 위한 API 만들기
- 데이터 사이언티스트는 API를 어떻게 활용할까?
- 데이터 사이언티스트는 어떤 도구를 사용할까?
- 데이터 사이언티스트를 위한 API 설계
- 1부 포트폴리오 프로젝트 소개
- 모든 API에는 스토리가 있다
- __SportsWorldCentral 회사 소개
- __SWC에 API가 필요한 이유
- 첫 번째 API 제품 선택
- __잠재 사용자 식별
- __사용자 스토리 만들기
- 참고 자료
- 요약
- 2장 API 아키텍처 선택
- API 아키텍처 스타일
- __상태 전이 표현
- __GraphQL
- __gRPC
- __우리의 선택: REST
- 기술 아키텍처
- 2장에서 사용하는 소프트웨어
- __파이썬
- __GitHub
- GitHub Codespace 시작하기
- __GitHub 계정 만들기
- __1부 저장소 복제하기
- __GitHub Codespace 실행하기
- __Codespace 환경 둘러보기
- __첫 번째 커밋하기
- 참고 자료
- 요약
- 3장 데이터베이스 만들기
- API 구성 요소
- 3장에서 사용하는 소프트웨어
- __SQLite
- __SQLAlchemy
- __pytest
- SQLite 데이터베이스 만들기
- __데이터베이스 테이블 만들기
- __테이블 구조 이해하기
- __데이터 불러오기
- 파이썬을 사용해 데이터에 접근하기
- __사용자 환경에 SQLAlchemy 설치하기
- __데이터베이스 접근을 위한 파이썬 파일 만들기
- __데이터베이스 구성 파일 만들기
- __SQLAlchemy 도우미 함수 만들기
- __환경에 pytest 설치하기
- __SQLAlchemy 코드 테스트하기
- 참고 자료
- 요약
- 4장 FastAPI 코드 개발
- 포트폴리오 프로젝트 진행
- 4장에서 사용하는 소프트웨어
- __FastAPI
- __HTTPX
- __Pydantic
- __Uvicorn
- 3장 프로젝트 파일 복사하기
- Codespace에 새 라이브러리 설치하기
- API용 파이썬 파일 만들기
- __Pydantic 스키마 정의하기
- __FastAPI Controller 만들기
- API 테스트
- API 실행하기
- 참고 자료
- 요약
- 5장 API 문서화
- 신뢰 확보하기
- 좋은 API 문서 만들기
- __핵심 기능
- __추가 기능
- 실제 API 문서 살펴보기
- __Sleeper 애플리케이션
- __MyFantasyLeague
- __Yahoo! 판타지 풋볼
- API 내장 문서 확인하기
- __4장 프로젝트 파일 복사하기
- __문서화 옵션 1: Swagger UI
- __문서화 옵션 2: Redoc
- OAS 파일
- 포트폴리오 프로젝트 이어하기
- __OAS info 객체에 세부 정보 추가하기
- __경로 분류를 위한 태그 추가하기
- __개별 엔드포인트에 세부 정보 추가하기
- __쿼리 매개 변수 설명 추가하기
- __Swagger UI에서 변경 사항 확인하기
- __API 회귀 테스트
- README.md 파일 업데이트하기
- 참고 자료
- 요약
- 6장 클라우드에 API 배포하기
- 클라우드 배포의 장점과 책임
- __장점
- __책임
- 클라우드 호스트 선택 방법
- 프로젝트 디렉터리 설정
- GitHub Codespace를 클라우드 호스트로 사용하기
- Render에 API 배포하기
- __Render 계정 만들기
- __새 웹 서비스 만들기
- __API 변경 사항 자동 배포하기
- 도커 컨테이너로 애플리케이션 배포하기
- __도커 주요 용어 정리
- __도커 설치 여부 확인하기
- __도커파일 만들기
- __.dockerignore 파일 만들기
- __컨테이너 이미지 빌드하기
- __로컬에서 컨테이너 이미지 실행하기
- AWS에 애플리케이션 배포하기
- __Lightsail 컨테이너 서비스 만들기
- __AWS CLI 설치하기
- __Amazon Lightsail 컨테이너 서비스 플러그인 설치하기
- __로그인 자격 증명 구성하기
- __컨테이너 이미지를 Lightsail로 푸시하기
- __Lightsail 배포 만들기
- API 문서 업데이트
- 참고 자료
- 요약
- 7장 바로 사용할 수 있는 파이썬 SDK 만들기
- SDK는 사용자와 API의 간극을 메워 준다
- SDK 개발 언어 선택 전략
- 최소 기능 SDK로 시작하기
- __전문가의 조언: SDK를 쉽게 설치하도록 만들어야 한다
- __전문가의 조언: 일관되고 자연스러운 파이썬 스타일의 SDK를 만들어야 한다
- 다양한 기능을 갖춘 SDK 만들기
- __전문가의 조언: 합리적인 기본값을 사용해야 한다
- __전문가의 조언: 다양한 기능을 제공해야 한다
- __전문가의 조언: 의미 있는 로그를 남겨야 한다
- __전문가의 조언: API의 복잡한 세부 사항은 숨겨야 한다
- __전문가의 조언: 대용량 다운로드 기능을 지원해야 한다
- __전문가의 조언: SDK 문서를 만들어야 한다
- __SDK 테스트
- __전문가의 조언: 모든 API 작업을 SDK로 지원해야 한다
- 1부 프로젝트를 마무리하며
- 참고 자료
- 요약
- 2부 | 데이터 사이언스 프로젝트에서 API 활용하기
- 8장 데이터 사이언티스트가 API에 관해 알아야 할 것들
- 다양한 API 스타일 활용하기
- HTTP 기본 사항
- API를 책임감 있게 사용하는 방법
- 관심사 분리: API 호출 코드 분리와 SDK 활용의 중요성
- API를 만드는 방법
- API 테스트 방법
- API 배포 및 컨테이너화
- 버전 관리 시스템의 중요성
- 2부 포트폴리오 프로젝트 소개
- GitHub Codespace 실행하기
- __2부 저장소 복제하기
- __GitHub Codespace 실행 및 설정
- 로컬에서 SWC API 실행하기
- 참고 자료
- 요약
- 9장 데이터 분석을 위한 API 활용
- 스포츠 분석을 위한 사용자 정의 측정 지표
- 판타지 사용자 정의 측정 지표를 위한 API 데이터 소스
- 샤크 리그 점수 사용자 정의 측정 지표 만들기
- 9장에서 사용하는 소프트웨어
- __httpx
- __주피터 노트북
- __pandas
- Codespace에 새 라이브러리 설치하기
- Codespace에서 API 실행하기
- API 클라이언트 파일 만들기
- 주피터 노트북 생성 및 환경 설정
- 노트북 설정하기
- API 데이터 활용하기
- 리그 균형 점수 계산
- 라인업 효율성 점수 계산
- 샤크 리그 점수 계산
- 참고 자료
- 요약
- 10장 데이터 파이프라인에서 API 활용하기
- 데이터 파이프라인의 데이터 소스 유형
- 데이터 파이프라인 구축 계획
- Apache Airflow로 데이터 파이프라인 오케스트레이션하기
- GitHub Codespace에 Apache Airflow 설치하기
- 로컬 분석용 데이터베이스 만들기
- Codespace에서 API 실행하기
- Airflow 연결 설정
- 첫 번째 DAG 만들기
- 공유 함수 만들기
- DAG 실행하기
- 요약
- 11장 Streamlit 데이터 애플리케이션에서 API 사용하기
- 대화형 시각화로 사용자 참여 유도하기
- 11장에서 사용하는 소프트웨어
- _nfldata_py
- __Streamlit
- Streamlit 및 nfldatapy 설치하기
- Codespace에서 API 실행하기
- 9장 API 클라이언트 재사용하기
- Streamlit 애플리케이션 만들기
- 진입점 파일 업데이트
- Streamlit 애플리케이션 실행하기
- 팀 선수 명단 페이지 만들기
- 팀 통계 페이지 만들기
- Streamlit 애플리케이션 배포하기
- 2부 프로젝트를 마무리하며
- 참고 자료
- 요약
- 3부 | API로 AI 활용하기
- 12장 API로 AI 활용하기
- AI와 API의 접점
- 생성형 AI와 LLM이 사용할 API 설계하기
- AI의 정의
- 생성형 AI와 LLM
- 에이전트형 AI 애플리케이션 만들기
- 3부 포트폴리오 프로젝트 소개
- GitHub Codespace 시작하기
- __3부 저장소 복제하기
- __GitHub Codespace 실행 및 설정
- 참고 자료
- 요약
- 13장 머신러닝 API 배포하기
- 머신러닝 모델 학습 과정
- 13장에서 사용하는 소프트웨어
- __ONNX Runtime
- __scikit-learn
- __sklearn-onnx
- Codespace에 새 라이브러리 설치하기
- CRISP-DM 프로세스 사용하기
- 비즈니스 이해
- 데이터 이해
- 데이터 준비
- 모델링
- 평가
- 배포
- 참고 자료
- 요약
- 14장 LangChain을 활용해 API 사용하기
- AI를 사용해 API 호출하기(LangChain 활용)
- LangGraph 에이전트 만들기
- __Anthropic 가입하기
- __GitHub Codespace 실행하기
- Codespace에 새 라이브러리 설치하기
- 주피터 노트북 만들기
- LangGraph 에이전트와 대화하기
- 로컬에서 SWC API 실행하기
- swcpy SDK 설치하기
- LangChain 툴킷 만들기
- AI를 사용해 API 호출하기(LangGraph 활용)
- 에이전트와 대화하기(도구 사용)
- 참고 자료
- 요약
- 15장 챗GPT를 사용해 API 호출하기
- 애플리케이션 아키텍처
- 챗GPT 시작하기
- 사용자 정의 GPT 만들기
- GitHub Codespace 실행하기
- GitHub Codespace에서 SWC API 실행하기
- OAS 파일에 서버 정보 추가하기
- GPT 작업 만들기
- GPT에서 API 테스트하기
- 사용자 정의 GPT와 대화하기
- 3부 포트폴리오 프로젝트 마무리
- 요약
- 찾아보기


