개요
Spark 데이터 처리 과제에서 출발해 마감 2주 전 팀 합의로 웹 서비스까지 목표를 넓힘. 강의 수집·DB·검색 API·화면을 연결하고 발표 당일 아침 배포를 완료
담당 업무
DB 설계, Airflow 수집, Spark 데이터 처리, FastAPI 검색 API와 Flutter 웹 화면을 구현. Docker 공통 환경을 마련해 팀원의 Spark 실습도 지원
- 목표 확장
- 분석 결과가 실제로 조회·검색되는 서비스까지 팀원들과 합의해 완성
- 직접 구현
- DB와 수집 파이프라인, FastAPI 백엔드, Flutter 웹을 구현
- 학습 지원
- 개발 경험이 적은 신입 부원에게 Docker 공통 환경을 제공하고 Spark 학습 지원
- 12팀 참가 KHUDA 컨퍼런스
- 대상
- 현대모비스
- 특별상
- 구현·실습 환경·협업
- 팀장
구조
- 01플랫폼별 강의 수집인프런 · 패스트캠퍼스 · 코드잇
- 02원본 보관Airflow · S3
- 03정제·태그 구성Spark 처리
- 04검색·상세 정보OpenSearch · PostgreSQL
- 05통합 검색 화면FastAPI · Flutter 웹
문제 및 해결
마감 2주 전 웹 서비스로 목표 확장
- 문제
- Spark 처리 과제에서 실제 서비스까지 확장하면서 DB·API·화면을 짧은 기간에 연결해야 함
- 해결
- 팀 합의 후 핵심 개발을 맡고 팀원들의 피드백·시연·발표 준비와 병행
- 결과
- 발표 당일 아침 배포 완료 · KHUDA 대상·현대모비스 특별상
팀원의 개발 경험과 구현 참여 차이
- 문제
- 개발에 익숙한 인원이 제한돼 있었고 신입 부원들이 도구를 익히는 데 어려움이 있었음
- 해결
- Docker 기반 공통 환경을 구성하고 Spark 이론과 코드를 함께 확인
- 결과
- 학습과 참여를 지원했지만 핵심 구현을 주로 맡게 돼 팀원의 개발 기회를 충분히 넓히지 못함
구현 내용
- 수집 흐름
- DAG는 EC2 실행·접속 정보 확인, 세 플랫폼 병렬 수집, 파일 확인, S3 업로드와 상태 안내를 연결
- 저장소 역할
- PostgreSQL은 정형 강의 상세를, OpenSearch는 검색을 담당. 검색 결과의 URL로 강의 ID·상세를 결합
- 조회 API
- 플랫폼·카테고리·하위 분류·신규 강의·페이지별 목록·검색 API를 FastAPI로 제공
- 처리·자동화
- Airflow DAG로 플랫폼별 수집과 S3 업로드를 연결. Spark 처리는 별도 단계로 구성