파이널 프로젝트를 제대로 진행한 지 2주차, 총 수업으로는 24주차가 되었습니다. 지난 주까지 "머신 러닝 학습"에 필요한, 그리고 웹 페이지를 구성하는데 필요한 뮤지컬 데이터들(past, present 등)을 크롤링했습니다.
이번 주는 웹 서비스의 추가 기능에 필요한 주요 뮤지컬 예매 사이트, '인터파크, 티켓링크, 예스24티켓' 의 랭킹 데이터 크롤링을 진행했고, 이를 Airflow
로 구현하는 것 까지 진행했습니다. 이후에는 백엔드 개발을 진행했고, 받아온 랭킹 데이터를 이용해 랭킹 페이지 구현과 대용량 데이터인 musical_past 테이블의 데이터를 받아오는 환경을 만들었습니다.
예스24티켓 사이트의 랭킹 데이터 크롤링 완료했습니다.
AJAX
통신을 통해 랭킹 데이터가 담긴 API를 찾아 requests 와 BeautifulSoup
을 통해datetime
모듈을 통해 날짜가 바뀔 때마다 자동으로 동기화되도록 할 수 있었습니다.앞으로 Backend 구현과 DB 구현, Airflow 구현 등에 참여하게 될 것 같고, 각각을 서버에 배포하는 학습을 위주로 하여 프로젝트가 자동으로 운영될 수 있도록 할 것 입니다.
크롤링한 랭킹 데이터를 AWS RDS
에 저장 완료했습니다.
백엔드 개발 관련 시작했습니다.
Entity, Repository, DTO, Service, Controller
등의 구조를 만들고 테스트를 진행했습니다.ML과 웹 서버 등이 어떻게 소통하고, 웹에서 이루어질 액션에 대한 회의를 진행했습니다.
웹 랭킹 리스트를 띄우는 코드 작업을 시작했습니다.
Web 개발을 진행했습니다.
WebApp
repository 도 다시 검토하여 main branch
(최종 배포 버전) 이전에 테스트하고 코드 merge를 할 1.0.0/dev branch
를 따로 만들어서 개발을 진행했습니다.웹에서 사용하게 될 Musical_past, present, rank
테이블을 DB에서 확인했으며, past 의 데이터를 전부 가져와 웹으로 전달하는 것 까지 진행했습니다.
Airflow
관련 서버 띄우는 것을 어떻게 진행할 지 고민입니다. Airflow
관련 Docker 작성을 할 지 결정 해야 할 것 같습니다.Tymeleaf
를 익히느라 시간이 많이 소요됐습니다.Musical_past
테이블을 불러오는데 웹 로딩 시간이 오래 걸려 이 점을 해결하는데 어려움을 겪었습니다. 멘토님의 도움으로 해결할 수 있었습니다. 대용량의 데이터를 확인하는데 쓰인 log.info()
로 인해 오래 걸렸으며, application.properties의 logging.level.org.hibernate=DEBUG
로 인해 데이터를 전부 터미널 창에 띄우느라 오래 걸렸음을 알 수 있었습니다. 이를 수정하니 한결 수월했으며,Service
에서 Pageable
객체를 통해 원하는 만큼만 웹으로 가져올 수 있었습니다.Domain
방식으로 코드들을 분리 작업할 예정입니다.