23주차가 되었습니다. 파이널 프로젝트가 시작되면서 처음 주제 선정에 어려움이 있었지만 극복하고 "개인 성향 맞춤 뮤지컬 추천 사이트" 개발로 방향성을 잡았습니다. 사용자는 '뮤지컬을 처음 보는 사람들'에게 그들이 여태 봐왔던 미디어 컨텐츠의 성향에 맞추어 뮤지컬을 추천하고 잘 입문할 수 있도록 하고자 개발을 시작했습니다.
각자 개발 파트를 나누어 작업을 시작했고, 저는 '웹과 데이터 크롤링-DB' 쪽 두 분야를 맡기로 했습니다. 처음 부여 받은 "Tech leader" 포지션인만큼 맡은 개발파트만이 아니라 전체적으로 진행 속도를 확인하고 필요해 보이는 곳에 도움을 줄 예정입니다. 또 지속해서 서비스 구현을 어떻게 할 지를 구상하면서 개발에 힘쓰고 있습니다.
매일 "Daily meeting"을 통해 각자 하고 있는 진행 상황을 공유하고 앞으로 어떻게 할 지 계획도 수정했습니다.
주에 한번 Weekly Review
를 통해 각 개발 분야별 진행 상황과 작성한 코드들을 설명하는 시간을 가졌습니다.
1차 임시로 개발한 Spring boot 웹 뷰
를 배포하는 작업을 수행했습니다.
Dockerfile
을 작성해 해당 웹이 잘 돌아가는 지 테스트를 진행했습니다.$ docker stats
를 통해 해당 컨테이너의 리소스 사용량을 확인했습니다.fly.io
로 계속 배포하기에는 무리가 있다 싶어 추후에 AWS로 배포하기로 하고, 우선은 fly.io로 배포하여 웹 공유를 진행했습니다. 데이터 크롤링 진행
1차로 시도했던 "인터파크 티켓" 사이트를 이용해 데이터 크롤링을 했으나 데이터 관련 API들이 막혀있었고, 관련 정보들이 이미지 사진으로 되어있어 실패했습니다.
처음으로 돌아가 서비스 구성을 다시 생각해보고 머신러닝 학습에 필요한 자료들을 제공하는 것이 첫 시작인데 지금 하려는 데이터 크롤링은 현재 공연 중인 뮤지컬만 대상으로 진행했습니다.
이는 머신러닝 학습의 학습 자료 수가 매우 적을 것으로 생각되며 따라서 전체 뮤지컬들, 과거에 한국에서 공연했던 뮤지컬들의 데이터도 필요하다고 생각되어 크롤링 대상 사이트를 "PlayDB" 사이트로 변경했습니다.
해당 사이트에서 2007년이전에 공연한 뮤지컬들과 2008년, 2009년, ... 현재까지 공연하는 뮤지컬 데이터들을 확인할 수 있어 이를 대상으로 크롤링 시도했고,
각 뮤지컬 작품의 고유 ID 값을 확인한 후 이를 이용하면 각 세부사항까지 추출할 수 있을 것으로 예상되어 우선 각 뮤지컬 ID값을 가져오는 작업을 수행했습니다.
PlayDB
사이트에서 사용되는 각 뮤지컬 ID 값을 통해 세부 데이터를 크롤링하는 작업을 수행했습니다.
뮤지컬 ID, 작품명, 장르, 공연날짜, 공연장소, 출연배우, 관람 나이, 관람 시간, 작품 설명, 줄거리
mock.csv
를 만들어 약 100개 정도의 데이터를 통해 머신러닝 학습 테스트 진행을 하기로 했습니다.뮤지컬 데이터 크롤링을 한 결과를 구글 드라이브에 공유했고, 추가적으로 서비스 화면에 랭킹 지표가 있으면 좋겠다는 의견이 있어 이를 반영해 뮤지컬 예매 사이트 대표 4군데의 1~10위 일간 랭킹 지표를 가져오는 코드를 작성하고 있습니다. -> "인터파크 티켓, 티켓링크, 예스24티켓, PlayDB" 사이트
Airflow
를 통해 일정 주기마다 데이터를 업데이트하는 식으로 구현하려고 합니다.일요일에 있을 기획 관련 멘토링 피드백 준비를 했습니다.
✅ [프로젝트 서비스 구현도]
class
명, tag
명들이 기재 되어 있지 않았고, 각 뮤지컬마다 없는 내용, 동일한 항목이지만 다르게 저장되어 있는 이름들 때문에 쉽지 않았습니다. 이를 보면서 웹 개발을 할 때 이런 점들을 주의하면서 해야겠다고 생각했습니다.인터파크와 티켓링크의 랭킹 데이터를 가져오는 것은 완료되었고, 예스24티켓, PlayDB 사이트의 랭킹 데이터를 가져올 것 입니다.
랭킹 DB 설계도 하고 Airflow 구현을 할 예정입니다.
생각보다 프로젝트 진행이 원활하게 되고 있다고 생각합니다. 물론 아직 부족한 점들이 많고 '이런 거 해보면 어떨까' 하는 욕심이 생기지만 기한이 정해져 있는 프로젝트인만큼 그 안에 다 할 수 있는 것까지 확실하게 완벽한 프로젝트 서비스를 만드는데 노력할 것 입니다.