본문 바로가기
프로그래밍

애니메이션 검색 웹 애플리케이션 0

by 기이한날개 2022. 3. 14.

https://share.streamlit.io/doorigin/domodomo-anime/main/main.py

[애니메이션 검색 웹 애플리케이션 만들기]

걸린 시간: 약 50시간

난이도: 중

새로 사용한 라이브러리: streamlit

 

 

유튜브에서 Streamlit이라는 라이브러리를 이용해 간단하게 웹 애플리케이션을 만들 수 있다는 것을 알게 되었다. URL을 입력하면 자동으로 QR코드를 생성해 보여주는 아주 간단한 스크립트를 짜는 영상이었는데, 다른 것 보다도 이 streamlit 라이브러리의 정말 간단한 사용법과 깔끔한 인터페이스의 매력에 이끌려 꼭 한 번 활용해보고 싶다는 생각이 들었다.

【ぶっつけ本番】PythonによるQRコード自動生成アプリ開発の全行程をお見せします

 

고민을 하다가 만들기로 한 것이 애니메이션 검색 웹 어플이었다. 직장인이 오늘뭐먹지? 고민하는 것처럼 항상 무슨 애니를 볼지 고민을 많이 했는데, 제목, 장르, 제작사, 방영 연도 등 내가 원하는 검색 조건대로 애니메이션을 검색할 수 있었으면 좋겠다는 생각을 했다. 

 

Streamlit 라이브러리

우선 Streamlit의 API를 살펴보면서 어떤 것들이 구현 가능할지 체크를 해줘야 했다. API Documentation 사이트 역시 디자인이 굉장히 깔끔한 것이 아주 인상적이었다. 

https://docs.streamlit.io/library/api-reference

사용자로부터 다양한 Input을 받아서 파이썬 스크립트로 연산을 하고, 그에 대한 값이나 이미지 등을 출력하는 것이 가장 기본적인 기능이라고 할 수 있겠다. Streamlit 사이트에서 예시들을 찾아볼 수 있었는데, 주로 데이터 분석한 결과나 그래프, 이미지 등 데이터 시각화한 결과를 출력하는 애플리케이션에서 활용하고 있었다. 

https://streamlit.io/gallery

 

Gallery • Streamlit

Streamlit is an open-source app framework for Machine Learning and Data Science teams. Create beautiful web apps in minutes.

streamlit.io

 

데이터 구하기 (라프텔)

내가 구현하고 싶었던 가장 핵심적인 기능은 애니메이션을 장르별로 분류해서 제목과 사진을 보여주는 것이었다. 당연하겠지만 그러기 위해서는 각 애니메이션의 목록과 그 장르, 그리고 이미지가 필요했는데, 미리 처리된 애니메이션 정보를 구할 필요가 있었다. Kaggle Dataset, 애니메이션 스트리밍 플랫폼의 서비스작 목록, 애니 DB 사이트 등 영어, 일본어, 한국어로 된 여러 자료들을 고려했었는데 각각의 장단점이 명확해서 고민을 많이 했었다. 결론적으로 채택한 방법은 라프텔에서 제공하는 정보를 크롤링해서 사용하는 것이었는데, 정확성과 접근성 그리고 편리성을 따져봤을 때 제일 괜찮았던 방법이었던 것 같다. 

https://laftel.net/finder

 

라프텔 - 애니 추천 · 애니 스트리밍 서비스

세상의 모든 애니메이션을 고화질로 무제한 스트리밍하세요. 추억의 애니부터 분기별 신작까지 무제한 스트리밍 가능한 곳은 오직 라프텔. 뭘 볼 지 모를 땐, 덕후가 직접 엄선한 애니 명작들을

laftel.net

다만 라프텔이라는 서비스 제공자가 제공하고 있는 데이터를 마음대로 가져다 사용하는 것이기 때문에 이 웹 어플을 누구나 사용할 수 있게 공개하기는 어렵고 개인적인 용도로만 사용해야 한다는 명확한 한계점을 설정해두고 시작하게 되었다. 또한 기존에 라프텔에서 제공하는 애니메이션 태그별 검색 서비스와 기능상으로 크게 달라지지 않기 때문에 새로운 가치를 창출을 하지 못한다는 점에서는 아쉬움이 있었다. 따라서 현실적인 목표를 라프텔 장르 태그별 애니메이션 검색과 유사한 웹 애플리케이션을 만든다는 것으로 두고 코딩을 진행하게 되었다. 

 

다음 편에서 계속