- README.md is written in KOREAN
Spotify API로부터 앨범 및 아티스트 데이터를 수집 & 적재하는 자동화 데이터 파이프라인입니다.
간단한 사용자 추천 시스템을 구현하고 있습니다.
![스크린샷 2024-01-08 오후 2 36 23](https://private-user-images.githubusercontent.com/130134750/294818857-a9d9db20-928b-47d9-8d38-cb93a1be3e8e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MTg0MjQsIm5iZiI6MTczODkxODEyNCwicGF0aCI6Ii8xMzAxMzQ3NTAvMjk0ODE4ODU3LWE5ZDlkYjIwLTkyOGItNDdkOS04ZDM4LWNiOTNhMWJlM2U4ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QwODQ4NDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04YTk4NjZjZjU1NjY5ZGI2MjU5YjcyNmZjNzYzNGQwMTNjMWJmMjA0MDQ4ODgzM2E4MmJiZDI2Y2MyZGU2ZTRlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.UtXpLYN6h4n2imsum8mf6t3R4L2qs-7aEMQ2uqn8pFg)
- Airflow (Docker 기반의 서비스 빌드) : API 서버 작업 스케줄링 & Kafka 메세지 발행
- Cron : Postgres DB 백업 & Spotify Access Token 재발급
- FastAPI + uvicorn[standard] : ETL 프로세스 수행
- Spark
(Streaming Kafka Application) : Kafka 메세지의 파라미터를 기반으로 데이터 가공
(ML) : 데이터 분석 및 추천 시스템 구현 - Kafka : Spark 어플리케이션 작업 스케줄링
- PostgreSQL : 반복 사용 API 파라미터 적재
- AWS S3 : 백업 스냅샷(.sql) 및 가공 데이터(.parquet) 적재
- Grafana: Kafka 서버 모니터링
![스크린샷 2023-12-30 오후 9 57 48](https://private-user-images.githubusercontent.com/130134750/293504112-4dfdd9af-da34-4508-aff5-100c8f93206d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MTg0MjQsIm5iZiI6MTczODkxODEyNCwicGF0aCI6Ii8xMzAxMzQ3NTAvMjkzNTA0MTEyLTRkZmRkOWFmLWRhMzQtNDUwOC1hZmY1LTEwMGM4ZjkzMjA2ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QwODQ4NDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yNTlmZDNjNGE0MTg1ZTZkYWQxZmU2N2Q0MWJmZDBlMjY5MzY4MTM3M2FiOGUzNTI5NzkwOWUwZDMxMWNjY2RhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.bMNC6fL3m83eO89aNQeHc7wJo-LTa902ksx8kLgnB_o)
![스크린샷 2023-12-31 오후 9 03 25](https://private-user-images.githubusercontent.com/130134750/293504269-7d5a4c54-0c16-4f2b-9580-fb6984ec3495.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MTg0MjQsIm5iZiI6MTczODkxODEyNCwicGF0aCI6Ii8xMzAxMzQ3NTAvMjkzNTA0MjY5LTdkNWE0YzU0LTBjMTYtNGYyYi05NTgwLWZiNjk4NGVjMzQ5NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QwODQ4NDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jOTQxM2VlZjUyNGYxZDMzMjkwMmI2ODZjNTE5Mjg0MzJlYjg1ZjA5ZDJlOGEzMjM1Zjk1YzQwNWUyN2ViMmI4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.5j1PiGDwKXjqCzZbBHba6d8U9oDhskGwgL9kFCjoPyE)
![스크린샷 2024-01-08 오후 2 40 35](https://private-user-images.githubusercontent.com/130134750/294819365-93c62168-644c-4dab-8b38-2ad473ecb915.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MTg0MjQsIm5iZiI6MTczODkxODEyNCwicGF0aCI6Ii8xMzAxMzQ3NTAvMjk0ODE5MzY1LTkzYzYyMTY4LTY0NGMtNGRhYi04YjM4LTJhZDQ3M2VjYjkxNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QwODQ4NDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZGM4NjdmZGVhZjQ0MTQxMzNhNzMwZGI3NThkNGYyMzQzZDliMDk2YzQ2M2I2YTFjOTZmM2E4MGRjY2U1NzZmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Tn8QTLYfTcxhAzCQ7mtMkZPf2dowDgCsXywk5ydmbwI)