- 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDAzOTcsIm5iZiI6MTczOTM0MDA5NywicGF0aCI6Ii8xMzAxMzQ3NTAvMjk0ODE4ODU3LWE5ZDlkYjIwLTkyOGItNDdkOS04ZDM4LWNiOTNhMWJlM2U4ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQwNjAxMzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMjljMzkxNzI4MDM5Yjg1NjhiM2UzYWJlMjIwNDhhNzc4MjY5OGVlYzk0MTA3OTU4YmNlYmU0OWUwY2NhNTUwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.SUQltj8PhpSV15MxNTp6JdCfy7a5hbsBLvboxm5co6U)
- 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDAzOTcsIm5iZiI6MTczOTM0MDA5NywicGF0aCI6Ii8xMzAxMzQ3NTAvMjkzNTA0MTEyLTRkZmRkOWFmLWRhMzQtNDUwOC1hZmY1LTEwMGM4ZjkzMjA2ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQwNjAxMzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01YmZmNzQ5ZWNjYTEzZDM4MjFjYWU2Zjc3ZDIwZmZiZTVjZWRkMTIwYmNhOTU3OTliNDAyYTMzNzA0MjdiNjgwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.grJluiyaMWRddN8KQ-YMX4b_oheQqTwec1pOmRWM1_Y)
![스크린샷 2023-12-31 오후 9 03 25](https://private-user-images.githubusercontent.com/130134750/293504269-7d5a4c54-0c16-4f2b-9580-fb6984ec3495.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDAzOTcsIm5iZiI6MTczOTM0MDA5NywicGF0aCI6Ii8xMzAxMzQ3NTAvMjkzNTA0MjY5LTdkNWE0YzU0LTBjMTYtNGYyYi05NTgwLWZiNjk4NGVjMzQ5NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQwNjAxMzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMmRjMDA5YzY1NzhkYzRkNTNhNTMwNzc4MzFjNzUxNjVlMWE1YWVlY2M2Nzk5NDY3Y2JmMGIwNWRkMDViZDgwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.swNUyCIC1Ln9p170pSMnW0TXK2Kst5oDEiVCMCl7mic)
![스크린샷 2024-01-08 오후 2 40 35](https://private-user-images.githubusercontent.com/130134750/294819365-93c62168-644c-4dab-8b38-2ad473ecb915.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDAzOTcsIm5iZiI6MTczOTM0MDA5NywicGF0aCI6Ii8xMzAxMzQ3NTAvMjk0ODE5MzY1LTkzYzYyMTY4LTY0NGMtNGRhYi04YjM4LTJhZDQ3M2VjYjkxNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQwNjAxMzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMDhlZmUxMWI1YzdlZTM0NGQ1OTgzZTQ2YmE1NjEzZGEyOWJkNzE3NGVlMDJjZTgzY2IyY2MwMThlN2E5ZmJjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.-dQ08e18_I86TFTOa5gKBoW1e6HyC6ZngZnmhlbfaN8)