AirDnB
는 Airflow를 이용한 개발 행사 및 대회 소식 알림봇입니다.
주기적으로 데이터를 크롤링하고 개발 뉴스 및 행사에 대한 정보를 간략하게 요약하는 알림봇입니다.
kakaotalk
- 카카오톡 채널 등록
![](https://private-user-images.githubusercontent.com/64704608/287463753-64da25b5-8ac0-40ec-b7be-bcdc72f200c2.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yODc0NjM3NTMtNjRkYTI1YjUtOGFjMC00MGVjLWI3YmUtYmNkYzcyZjIwMGMyLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIxNDJmM2VhNGZmYjM4ZWFhMzI3MDc2NmQ2OGIzMmRlM2VlOGU5ODQwZjlhYjJlYmUzNjMwODE3NGE4MDcxYjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.JU8fENTv29h-rw78Q7jpuW3vV4DSKpA_1ecG8I64hu0)
- 카카오톡에서 'AirDnB' 친구 추가
- 메시지 프롬프트 창에 velog 인기글, 공모전, 개발 행사 정보 질문 선택
- 알림봇이 질문에 따라 요약한 정보를 메시지로 제공
- 필요시 첨부된 링크를 통해 자세한 정보 확인 가능
slack
- 슬랙 워크스페이스 가입
![](https://private-user-images.githubusercontent.com/64704608/287508888-ca10284b-96df-408a-afb1-f783b37cf365.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yODc1MDg4ODgtY2ExMDI4NGItOTZkZi00MDhhLWFmYjEtZjc4M2IzN2NmMzY1LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0MTNhNTE4MDk0YTdlMjllMzJkNmYxMzY4OGFiNjI3YmU2MzdkZmE4ZTdmYjU2N2VkMmYzMzQzODAzYWQyNzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.jyBAxTbTNnEPt_ll7274m-O8U1DcVO5mXXOlrqOdbww)
- 슬랙 'airflow-dev-event' 워크 스페이스 가입
- 'airdnb-bot' 채널 선택
- 알림봇이 주기적으로 요약한 정보를 메시지로 제공
팀
에어디앤비(AirDnB)
입니다!
airflow를 이용해 data pipeline을 구축했고, 이러한 작업을 바탕으로 알림 bot을 만드는 프로젝트로, airbnb를 차용하여 airdnb로 팀이름을 정했습니다.
김건형 | 김효준 | 노명은 | 유혜지 |
---|---|---|---|
:-: | :-: |
조민서 | 최용빈 | 한상진 | 허윤지 |
---|---|---|---|
![](https://private-user-images.githubusercontent.com/64704608/287510997-92ecd184-9132-45f3-8a13-e274d4f5ea11.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yODc1MTA5OTctOTJlY2QxODQtOTEzMi00NWYzLThhMTMtZTI3NGQ0ZjVlYTExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM2M2VhZTc4M2I1OWQwNGFlOWRiNDNlYTJiZDMxNDY4YjM4MTk4N2M3NGVjZjA5ZDkxMGE2MWNmYTY5ZGU4MTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.n3TeOA4dNTqvcKAcouDcb8Pn8pl_31E38t9eJ6p6hCk)
-
배경
: 개발 행사나 소식을 모아놓은 사이트는 이미 존재하지만, 개발 행사나 세미나 등과 같은 소식이 뭐가 있나 매번 들어가기 번거롭다. -
목표
: 개발 행사 및 소식을 쉽고 간단하게 접할 수 있는 서비스를 제공합니다.
![스크린샷 2023-12-03 오후 7 35 11](https://private-user-images.githubusercontent.com/64704608/287511460-8a56c16e-fa27-4fa4-b714-e037921de754.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yODc1MTE0NjAtOGE1NmMxNmUtZmEyNy00ZmE0LWI3MTQtZTAzNzkyMWRlNzU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkYWIwYjExMzg0NTM0OTI0YmNmOTMzNGViMDZkYzQ4MDdhMzdjZTAwZDI5M2IwYzJhNjEwY2Y2OTMyZjgzNmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sFLGUjzB0bYxhTIs4dEV3dGn6IuKKcyq4Zj_xQKown8)
![스크린샷 2024-01-01 오후 11 37 50](https://private-user-images.githubusercontent.com/64704608/293591971-c5508d5c-7ca9-4fa8-a744-b02994cc452f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yOTM1OTE5NzEtYzU1MDhkNWMtN2NhOS00ZmE4LWE3NDQtYjAyOTk0Y2M0NTJmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkzZDllMjUxMWY0NDI0ODdkNWUzOTE0NjdiMDA1NDBiYWFmZDEyOGNmNjc4Mjc5MGM4ZjY2NTRlYTU1YWFmOWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.zWflYjBzZrM4j7e2S4YLzvesEsBTzRobFbYJxeqa3gs)
- Airflow는 데이터 파이프라인을 스케줄링 및 관리하기 위한 오픈소스 플랫폼이다. Airflow DAG은 작업이 어떻게 연결되고 실행되는 지를 정의한다.
- Airflow DAG의 구성: 개발 행사 + 공모전 + velog의 트렌딩 글을 크롤링한 코드
- 각각의 dag.py에서 크롤링을 자동화하고 csv 파일로 저장한다.
![스크린샷 2024-01-01 오후 11 37 59](https://private-user-images.githubusercontent.com/64704608/293591978-f0322025-9d15-46ba-9e57-edba7d79d32c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yOTM1OTE5NzgtZjAzMjIwMjUtOWQxNS00NmJhLTllNTctZWRiYTdkNzlkMzJjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ5NzhjODkxMzRiZGQ5NTc0NTMzYTVlODZhNmNkMjM3OWNjZWM0NGU1ZGQ1MzE1YjkwZGE3NTFlNWEzZTEzOGYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qE96TIClsTfaHVKp7W88_6CxRTiFiXvHqmQuR-ePM9U)
- AWS S3(Amazon S3): AWS에서 제공하는 클라우드 기반의 객체 스토리지 서비스
- s3에 DAG 파일 업로드
![스크린샷 2024-01-01 오후 11 43 17](https://private-user-images.githubusercontent.com/64704608/293592008-03eed429-2cf4-4a35-8602-faaaf3b9bec9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yOTM1OTIwMDgtMDNlZWQ0MjktMmNmNC00YTM1LTg2MDItZmFhYWYzYjliZWM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZlOTkyMDFmNmJlYmI5ODMzMTdiOTJiZjA3ZjRkZTViZDUxNzVlOWIxNTI4MjcwNzdjNWU1ZjlhOTIxNWRkYTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.PXBCu1B8tFRsnbDg6nCLMrNR-Sbh9bYuKj4wUmtpWl0)
![스크린샷 2024-01-01 오후 11 38 28](https://private-user-images.githubusercontent.com/64704608/293591981-a316ff03-e371-4312-a92b-e085fed4bf40.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MjMzMDAsIm5iZiI6MTczOTcyMzAwMCwicGF0aCI6Ii82NDcwNDYwOC8yOTM1OTE5ODEtYTMxNmZmMDMtZTM3MS00MzEyLWE5MmItZTA4NWZlZDRiZjQwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDE2MjMyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMyNWUzNThlZWM5Zjg1ZWYxNzRjZGRkOGFkOWJhNGY2Y2Y0M2ZlMmQzZDBhY2VjMmViMzk3MGU2NzgxNDRkNjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QVdcFWq0JIFy6VnvZfhhbmf9WkGzQSMxwDr_v1Jmq5s)
- Prometheus: 메트릭을 주기적으로 스크랩
- Grafana: prometheus의 메트릭으로 대시보드 구성
- Grafana 대시보드: Task들의 성공 여부, Scheduler의 상태 체크, Scheduler의 진행 상태, Airflow Executor 정보, 현재 로드된 DAG의 수