사용자가 선택한 문장, 제목, 장르 등을 활용하여 사용자 기반의 책 추천을 해 주는 웹 페이지입니다.
파도를 타고 밀려오는 유리병의 쪽지를 뜻하는 Flaschenpost라는 단어에서 모티브를 얻어 파도를 타고 오는 책이라는 의미로 Flaschenbook이 되었습니다.
로그인을 하지 않은 사용자에 한해서는 그 주의 베스트 셀러, 그 달의 신간, 랜덤한 장르의 책과 리뷰 수와 리뷰 평점을 통한 책 추천이 이루어지며
로그인을 한 사용자는 사용자가 선택했던 항목들을 기반으로 그와 유사한 책들을 추천받을 수 있습니다.
프로젝트 관련 링크입니다.
Notion - 프로젝트에 대한 기록을 남겼습니다.
Git Project - 프로젝트의 진행 사항을 관리했습니다.
- 사용자에게 도서 판매 사이트의 리뷰 수와 리뷰 평점, 그리고 장르 기반의 추천을 제공합니다. 또한 사용자들은 흥미로운 책을 눌러 상세 정보, 구입 정보, 리뷰에서 가장 많이 나온 단어들을 확인하며 책을 선별할 수 있습니다.
- 사용자가 선택한 문장, 제목, 장르 등의 정보를 활용해 사용자의 취향에 맞는 책을 추천합니다. 이를 통해 사용자들은 새로운 책을 발견하고 다양한 독서 경험을 즐길 수 있습니다.
- 23.08.08 ~ 23.09.04 (4주)
이름 | 역할 | GitHub |
---|---|---|
송지혜 | 데이터 수집, ETL DataPipeline 생성, Airflow, AWS 인프라 구축, 웹 프론트엔드/백엔드 | @ssongjj |
오유정 | 데이터 수집, ETL DataPipeline 생성, Airflow, AWS 인프라 구축, 웹 프론트엔드/백엔드 | @ujeongoh |
Field | Stack |
---|---|
Data Storage | |
Web Front-end | |
Web Back-end | |
Data Scheduler | |
Data Processing | |
Container Orchestration and Deployment | |
CI/CD | |
Infrastructure | |
Monitoring | |
Project Management Tool |
- Python 스크립트가 도서 판매 사이트 API와 스크래핑을 통해 데이터를 수집한다.
- 수집한 데이터를 처리하고 가공한 뒤, 도커 이미지로 패키징한다.
- Python 스크립트를 도커 이미지로 실행하며, 이를 Airflow DAG로 관리한다.
- 수집한 데이터는 S3의 raw 데이터 버킷에 저장된다.
- S3에 저장된 raw 데이터를 Lambda 함수를 사용하여 트리거한다.
- Lambda 함수는 raw 데이터에서 필요한 요소들만 남기고 json 파일을 parquet 파일로 변환하여 cleaned 데이터로 저장한다.
- cleaned 데이터가 Lambda 함수에 의해 트리거되어 curated 데이터로 최종 가공된다.
- 이때 각 사이트별로 저장되어 있는 데이터를 하나로 통합하고, 데이터가 필요한 테이블의 이름으로 적재한다.
- Glue Crawler를 사용하여 curated 데이터를 크롤링한다.
- 크롤된 데이터 스키마를 추출하고 메타데이터를 생성한다.
- Glue를 사용하여 parquet 파일 형식으로 curated 데이터를 Redshift(Data Warehouse) 및 RDS(ProductionDB)에 복사한다.
- 현재 프로젝트 당시 제공되었던 AWS 서비스가 종료되어 리팩토링 단계에 있습니다.