책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
· ISBN : 9791112052599
· 쪽수 : 408쪽
· 출판일 : 2025-09-02
책 소개
데이터 엔지니어링의 핵심인 ETL(Extract, Transform, Load) 과정을 중심으로, Python과 MySQL, Docker, MongoDB, DuckDB, Milvus, Streamlit, FastAPI 등 다양한 기술을 단계적으로 다루고 있다.
책은 다음과 같은 특징을 가진다
- 개발환경 설정부터 시작: MacOS/Windows 기반 Ubuntu 개발환경, Git, Python, MySQL, Docker까지 다룬다.
- ETL 전 과정 실습: CSV/Excel/JSONL/Web Crawling/API 등 다양한 데이터 소스로부터 데이터를 추출하고, 파이썬과 NumPy/Pandas를 통한 변환, MySQL/NoSQL 적재를 실습한다.
- 멀티스레딩과 최적화: 파이썬 GIL 한계와 우회 전략, 병렬/동시성 처리 기법을 실제 코드와 함께 설명한다.
- 데이터베이스 심화: MySQL 주요 문법, ERD 설계, 파티셔닝, NoSQL 비교, MongoDB 활용법까지 포함한다.
- 실전 프로젝트: DuckDB와 Milvus를 연계한 벡터 검색, Streamlit 기반 이미지 검색, FastAPI 웹앱 구축으로 이어지는 엔드투엔드 ETL 파이프라인 구축을 경험할 수 있다.
목차
# Table of Contents
들어가며** .................................... 10
Chapter 1. 개발환경 설정 (p.12)
- Ubuntu 24.02 LTS 개발환경 설정 (MacOS) ........... 12
- Ubuntu 24.02 LTS 개발환경 설정 (Windows) ......... 16
- 포트포워딩(Port Fowarding) ...................... 17
- Git 설정하기 .................................... 20
- Python 개발환경 설정 ............................ 23
- MySQL 설치 및 기본 설정 ........................ 28
- Docker 설치 및 설정 ............................ 35
Chapter 2. ETL 을 위한 Python 기초 문법 (p.41)
- ETL 개요 ....................................... 41
- 왜 ETL 에 파이썬을 사용할까? .................... 42
- 예시 1 : 서버 로그 데이터 모으기 ................ 45
- 예시 2 : API 연동을 통한 데이터 추출 ............ 46
- 멀티스레딩을 위한 파이썬 기초 문법 .............. 47
Chapter 3. 파이썬 멀티스레딩 (p.53)
- 스레드 생성 및 관리의 기초 ........................ 54
- 파이썬 GIL 과 병렬 처리의 한계 .................. 61
- GIL 우회 및 효율적인 병렬/동시성 처리 전략 ........ 62
- 단일 프로세스 vs 멀티 프로세스 .................. 65
Chapter 4. 데이터 추출(Extract) (p.71)
- CSV 파일 기반 데이터 추출 ........................ 71
- Excel 기반 데이터 추출 ........................... 84
- JSONL 기반 데이터 추출 ........................... 92
- Web Crawling (requests, BeautifulSoup) ........ 105
- OpenWeatherMap API Crawling .................. 118
- MySQL 데이터 수집 .............................. 129
Chapter 5. MySQL 주요 문법 (p.144)
- MySQL 의 핵심 역할 탐색 .......................... 144
- MySQL Tutorial 소개 ............................. 147
- Sample Database 생성 ............................ 148
- ERD 개념 및 활용 방안 ........................... 151
- MySQL 주요 문법 ................................ 156
- 아파트 실거래가 연도별 데이터 수집 파티셔닝 ...... 174
- 파티셔닝된 데이터를 활용한 효율적인 분석 .......... 179
Chapter 6. 데이터 변환(Transform) (p.186)
- 문자열 데이터 처리(String Processing) ........... 188
- 정규 표현식의 이해와 활용 ....................... 190
- NumPy 벡터화 원리, 필요성, 구현 .................. 196
- Pandas 와 NumPy 벡터화 벤치마크 분석 ............ 202
- NumPy 활용한 결측치 처리 ........................ 209
- 데이터 프레임 처리 ? 컬럼 변형 및 타입 변환 ....... 231
- 데이터 프레임 처리 ? 날짜 및 시간 처리 .......... 243
- 시계열 데이터 프레임 다루기 실전 예제 ............ 265
Chapter 7. 데이터 적재(Load) (p.274)
- ETL 에서 적재(Load)의 필요성 .................... 274
- 파이썬과 데이터베이스의 만남 .................... 275
- 실무 로그 데이터 수집 및 처리 ................... 294
- Parquet 에서 MySQL 로그데이터 저장 .............. 308
- NoSQL 데이터베이스 비교 분석 .................... 312
- MongoDB 를 활용한 에러 로그 저장 ................ 318
Chapter 8. ETL 파이프라인 구축과 벡터 검색 실전 예제 (p.346)
- 전체 시스템 개요 ................................ 346
- 다중 데이터베이스 접근 방식 ..................... 347
- 주요 핵심 기술 및 역할 .......................... 348
- 데이터 수집 과정(Extract) ........................ 349
- 데이터 변환 및 적재 과정(Transform & Load) ...... 361
- DuckDB 와 Milvus 적재 이원화 .................... 393
- Streamlit 이미지 검색 예제 ...................... 400
- FastAPI 와 Streamlit 활용한 웹앱 구축 ............ 403