본문 바로가기

Project Log/CommentTeller

프로젝트 후기

동기

재밌있는 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