/5th-DE-Integrated-Search-Website-for-Spark-based-IT-Software-Courses

khuda-5th Data Engineering project: Development of an Integrated Search Website for Spark-based IT/Software Courses

Primary LanguagePython

IT/소프트웨어 강의 통합 검색 사이트



Apache Spark badge Apache Airflow badge Amazon S3 badge awslambda badge postgresql badge opensearch badge fastapi badge flutter badge


FastLearnItSpark와 OpenSearch를 이용한 통합 IT 강의 검색 사이트입니다.

다양한 IT 강의 플랫폼에서 제공하는 강의들을 한 곳에서 쉽게 검색하세요!


📌 Preview


  1. 강의의 구성 요소(내용, 리뷰)를 한 눈에 비교
  2. 사용자의 강의 탐색 시간을 줄여 학습의 효율성을 높임
  3. 가격 및 할인 혜택을 비교하여 합리적인 가격에 선택

⌘ Project BackGround

image

  • 배경 : IT 강의 수요 증가로 인한 온라인 교육 플랫폼 시장이 넓어졌다. 그러나 이러한 풍부한 자료의 양은 오히려 사용자가 필요한 강의를 선택하는 데 혼란을 야기한다.

  • 목표 : 선택의 다양성을 제공하는 동시에, 학습자에게 통합된 자료를 제공하자.


⚙️ Service Architecture

image


1️⃣ Airflow DAG 구성을 통한 주기적인 크롤링

image

  • 신규 강의에 대한 정보를 가져오기 위해 Airflow로 주기적인 크롤링
  • EC2 인스턴스를 생성한 후, 각 강의 사이트를 크롤링 및 전처리한 데이터를 S3에 업로드

2️⃣ Spark로 분산 처리

image

  • 대규모 데이터 처리용 통합 분석 엔진인 Apache Spark
  • 데이터 정제, 태그 클러스터링, db와 같은 형태로 데이터프레임 생성 및 조인 연산의 효율적 수행
  • PostgreSQL에 연결해 중복성을 체크하여 새로 업데이트된 정보만 추가

3️⃣ OpenSearch

image

  • AWS에서 만든 오픈소스 검색 엔진인 OpenSearch
  • 강의 검색 시 일치하는 검색 결과가 아닌, 연관된 검색 결과를 추출
  • 역색인을 통해 RDB보다 유연하게 검색 가능


🤗 Members

김건형 노명은 박상영 유혜지
윤소은 이소연 한상진 허윤지