데이터 엔지니어가 되기 위해 기존에 수행했던 프로젝트를 develop 해보려고 한다.
<이번주 핵심 목표>
1. 기존 DB 테이블을 ERD로 정리
2. python 수집 코드를 매일 실행 가능한 배치 파이프라인 구조로 리팩토링
3. Airflow 기본 개념 공부, 기존 수집 코드 1개를 DAG로 생성
기존 DB 테이블을 ERD로 정리
- 이 과정에서는 단순히 ERD로 정리하는 것이 아니라 정리를 하면서 collection_logs와 같이 배치 수집 작업의 실행 이력을 관리하는 테이블을 추가해서 관리하는 것이 중요함
Python 수집 코드 리팩토링
- 기존의 api 호출 > 데이터 가공 > DB저장 > print 확인 흐름에서
- 주식 데이터를 매일 자동으로 수집해서 DB에 저장하는 데이터 파이프라인 구조로 리팩토링
외부 API
↓
collector : 외부에서 데이터를 가져오는 역할 = Extract
↓
transformer : 가져온 데이터를 DB에 넣기 좋은 형태로 바꿈 = Transform
↓
loader : 가공된 데이터를 DB에 저장하는 역할 = Load
↓
database : DB 연결 관리하는 파일
↓
Airflow가 매일 실행
- loader에서 종목id + 거래일 기준으로 중복 저장 막는 로직 추가 권장
- 실행 흐름 :
main.py 실행 -> DB 연결 생성 -> collector로 데이터 수집 -> transformer로 데이터 정제 -> loader로 db 저장
Airflow 기본 개념 공부, 기존 수집 코드 1개를 DAG로 생성
- Airflow는 수집 코드를 정해진 시간에 실행하고 감시하는 도구이므로 DAG로 생성한 수집 코드를 실행하고 감시함
- DAG 파일은 언제 실행할지/실패하면 몇 번 재시도할지/어떤 PYTHON 함수 실행할지/ Airflow UI에서 실행상태 보여줌
- DAG는 뒤에서 더 깊에 다뤄보겠다.
데이터엔지니어링에 대한 기본 지식은 전무하지만 해보자 화이팅
'프로젝트 develop' 카테고리의 다른 글
| 비동기 처리 구조와 @Async (0) | 2026.07.19 |
|---|---|
| 동기 vs 비동기 (0) | 2026.07.13 |
| Presigned URL (0) | 2026.07.13 |