✨ 동기
재밌있는 API없나 둘러보다가 youtube에서 댓글을 제공해주는 API가 있길래, 댓글에서 가장 많이 쓰여진 단어를 word cloud형태로 보여주는 사이트를 만들기로 했다. 통계적으로 엄청나게 유의미한 데이터는 아니지만 그냥 심심풀이로 한번 돌려서 보고싶었다ㅋㅋㅋ
🔥 프로젝트를 진행하면서...
플젝 진행하면서 아쉬웠던 점을 몇가지 추려보았다.
1. 명사 분석이 잘 안됨
사전에 나오는 명사나 일반적인(?) 명사는 명사로서 분리가 잘되지만, 인터넷용어나 전문용어는 명사로 분석이 잘 안되는 것 같아 아쉬웠다. 예를 들면 게임 관련 영상을 돌리면 캐릭터 명이나 게임 관련 용어들을 명사로 제대로 분석하지 못하는 모습이 보여졌다. 오버워치 영상을 돌리면 솜브라 -> 솜, 브라 이렇게 나눠지고 둠피스트 -> 피스트 이렇게 나눠진다ㅋㅋㅋㅋㅋ
2. 댓글 개수가 1000개에 가까워 질수록 서버에서 응답을 기다리는 시간이 너무 길어짐
일단 API로 댓글을 한번 가져올 수 있는 양이 100개로 제한되어 있기 때문에, 댓글이 1000개이면 API로 가져오는걸 10번을 해야해서 시간이 오래걸린다. 그런데 여기에 추가적으로 형태소 분석이나 추가적인 작업을 하게되면 더 많은 시간이 플러스돼서 클라이언트 단에서 좀 많이 기다려야한다. api로 가져오는 건 그렇다 쳐도 나머지 데이터 가공하는 작업은 성능이 더 나은 함수를 쓴다던가해서 시간을 줄여보고자 했는데 또 다른 오류 발생으로 해결하지 못했다. 이건 뭔가 다른 방법이 생각나면 다시 한번 시도해봐야겠다.
3. 배포를 못한 것
GCP App engine으로 배포를 하려고했는데 유료버전이 아니면 원하는대로 라이브러리 설치가 안되서 포기하게 됐다. 도커도 한번 써볼까 했는데 공부해서 적용하는데 좀 오래걸릴 것같아 일단은 미뤄두고 나중에라도 배포해보려고 한다.
🚀 배포
배포는 서버 배포가 안되는 상황이라 프론트단만이라도 dummy data를 넣어서 netlify에 추가해둬야하나 생각중이다. 그치만 실질적으로 서버단에서 작업이 안되는데 무슨 소용인가 싶기도하고...ㅠㅠ 어떻게 할지 고민중이다.
🎉 후기
프로젝트를 하면서 특히나 많이 공부가 된 건, 비동기 함수이다.
처음에는 비동기 함수때문에 원하는 결과가 안 나오는지도 모르고 오류찾는다고 엄청나게 시간을 버렸는데 그걸 알고나서 다시 비동기 함수를 제대로 쓰기 위해 공부하는 과정에서 시간이 걸렸고, 실제로 코드로 만들어보면서도 시행착오를 많이 겪었다.
sequelize 함수에 단순히 await 만 붙여서 쓰고, setTimeout 예제만 보다가 원하는대로 코드를 짜려고하니 불필요한 부분에 너무 남발하는거 아니야? 라는 생각도 들고 아직 잘 모르겠다...뭔가 제대로 짠 기분이 안드는 찝찝함... 이런건 경험이 좀 더 쌓이고하면 보이려나... 퓨 일단 원하는대로 동작은 하지만 분명 나중에 다시보면 굉장히 부끄러운 코드일 것 같다는 느낌이 든다.
여러가지 동영상을 돌려보다보면 워드클라우드에 '때'가 자주 나오는 모습을 볼 수 있다. 댓글에 사람들이 ~~할 때 ~~할 때 라고 문장을 많이쓰는 건지 '때'를 명사로 분석하는 것 같았다. '때'가 덜렁 크게 나오니까 갑자기 뭔가 이상해서 '때'가 명사였나? 하고 찾아보니 명사 맞다ㅋㅋㅋㅋㅋ
시범영상은 내가 좋아하는 유튜브 비디오로 해봤다. (세계견문록 아틀라스 - 백종원의 하노이 음식탐험 자기전 영상으로 추천합니다...소소하게 진짜 재밌습니다. 청도편도 진짜 재밌어요. 그리고 비슷하게 세계견문록 아틀라스 - 중국음식기행 사천편 여경래 셰프님 나오는 것도 존잼입니다.)
엔터키 이벤트 리스너를 달아두어서 search 버튼은 엔터키를 눌러 진행했다.
예시 영상 : https://www.youtube.com/watch?v=yMJckzORLJM
'Project Log > CommentTeller' 카테고리의 다른 글
배포 재도전기 - ETRI 형태소 분석 API사용 (0) | 2019.10.03 |
---|---|
Express 라우터에 async/await (0) | 2019.09.24 |
Google Cloud Platform - App Engine으로 배포하기? [2] (0) | 2019.09.22 |
Google Cloud Platform - App Engine으로 배포하기? (0) | 2019.09.21 |
삽질의 날 - redux-thunk, async/await, 유튜브 댓글 API (0) | 2019.09.20 |