프로젝트 설명 및 회고
프로젝트 소개
깃허브 링크
시각화, 전처리 같은 경우 초반에 data-processing repository에서 작업을 진행하다가 마무리 단계에서 backend repository에 복사하여 작업을 마무리하였다.
진행 기간
- 2024.04.15 ~ 2024.04.19 (5일)
주제
- 네이버 뉴스 실시간 크롤링 및 핫 키워드 시각화
프로젝트 인원 구성
- 총 4명(백엔드 1, 프론트엔드 1, 크롤링/자동화 1, 데이터 시각화 1)
활용 기술 및 프레임워크
- Crawling / Preprocessing : bs4, konlpy, pandas
- Visualization : seaborn, matplotlib, wordcloud
- Backend : django, sqlite3
- Frontend : html, css, javascript
- Collaboration Tool : gather town, github, slack, notion
나의 역할
- 데이터 시각화 (seaborn, matplotlib, wordcloud)
- 데이터 전처리 (konlpy)
프로젝트 요약 및 기대효과
프로젝트 결과 영상
요약
- 자동화를 통해 3분마다 네이버 뉴스를 스크래핑하여 장고에서 제공하는 sqlite3에 적재한다.
- 적재된 데이터를 바탕으로 사용자에게 30분 단위의 시각화 자료를 제공한다.
- 시각화 자료는 워드 클라우드, 막대그래프, 도넛 차트를 제공한다.
- 상위 5개의 키워드는 링크를 통해 관련 뉴스를 바로 확인할 수 있도록 구성하였다.
기대효과
- 실시간 뉴스 키워드를 확인함으로써 선택한 시간에 발생한 이슈를 파악할 수 있다.
- 워드클라우드를 통해 직관적으로 빈도가 높은 키워드를 확인할 수 있다.
- 막대그래프를 통해 상위 10개 단어의 빈도수를 확인할 수 있다.
- 도넛 차트를 통해 상위 10개 단어의 비율을 확인할 수 있다.
- 사용자는 상위 5개 단어와 함께 링크를 제공받아 핫 키워드 관련 뉴스를 확인할 수 있다.
KPT 회고
- 프로젝트의 회고는 아래 링크의 방식을 참고하였다.
Keep
- 데이터 시각화의 파일을 .py로 작성하면서 걱정됐던 것 중 하나가 .py 파일로 작성한 뒤 Django에서 실행하는 부분이었다. 그러나 Views에서 "from file.py import *"의 형태로 가져와 시각화 함수를 실행하여 웹 상에 이미지를 보여줄 수 있었다.
- 첫 팀프로젝트였기에 ERD(객체-간계 모델), Git convention(커밋 구조), Github Organization, 회의-회고 등 팀프로젝트에서 필요한 것을 짧게 경험해 볼 수 있었다. 해보지 않았다면, 결코 알 수 없는 것이다.
Problem
- github를 사용하는 게 익숙하지가 않았다. 혼자 진행하는 거라면 add-commit-push 명령만으로 모든 프로젝트를 진행할 수 있겠지만, 팀프로젝트는 clone/pull과 더불어 가장 두려웠던 merge가 있다. 한 번은 pull과 commit이 꼬인 것인지 모르겠지만, 내가 수정하지 않은 파일까지 commit이 돼버렸고 수정한 파일도 merge를 해야 하는 상황이라 머리가 아팠다. 결국 수정한 파일을 백업하고, 모든 파일 삭제 후 다시 clone하여 해결하였지만, git이 숙련이 된다면 더 좋은 방법으로 해결할 수 있지 않을까 싶다.
- 로컬 데이터베이스와 서버를 사용하였기 때문에 사용자에게 많은 정보를 제공하지 못했고, 자동화 코드를 작성했음에도 실제 사용자에게 제공하기에는 무리가 있었다.
- 예외 처리나 깔끔한 동작 등 세부적인 요소를 모두 바로잡기에는 시간이 부족하였다. 그래서 엑스박스가 뜨거나 워드클라우드가 두 번 실행되는 등의 동작을 보였고, 에러 페이지를 따로 구성하지 않았다.
Try
- 원래 처음에 AWS EC2, S3과 같은 클라우드 활용에 대한 의견이 있었는데, AWS 숙련자도 없었을뿐더러 짧은 기간에 이루어지는 프로젝트이기에 간단한 구성으로 진행하게 되었다.
- 예외 처리가 완벽히 되지 않았고, 404/500과 같은 상태 코드에 따라 사용자에게 적절한 페이지를 띄워주면 완성도 높은 서비스가 될 것이다.
- 데이터 전처리 과정에서 의미 없는 단어를 제거하는 작업을 보완한다면, 사용자에게 질 높은 정보와 시각화 자료를 제공할 수 있을 것이다.
배운 점 및 아쉬운 점
배운 점
- 팀프로젝트가 진행되는 과정을 짧은 시간 동안 빠르게 배울 수 있었던 시간이었다. 'Keep'에 적었듯이 팀프로젝트가 진행되는 과정을 배울 수 있었다.
- 강의에서 django, visualization, scraping을 모두 따로 배워 연결하기가 난해했는데, 구글링과 회의를 통해 모든 과정이 적절히 연결되어 웹 페이지를 구성할 수 있었다.
- 매일 프로젝트 시작 전에 회의(당일 진행 사항)를 하고, 끝나기 전에 회고(완료 여부)를 진행하면서 프로젝트의 방향이 틀어지지 않고 모두가 원하는 방향으로 향했다.
- ChatGPT는 최고의 친구다..!
아쉬운 점
- 첫 프로젝트였기에 미숙한 부분이 많았고, 짧은 기간의 프로젝트였기에 세부적인 요소를 마무리 못하고 끝난 것이 아쉽다.
'기타 > 회고록' 카테고리의 다른 글
[회고] 데브코스 3차 팀 프로젝트 (24.06.10 ~ 24.06.14) (0) | 2024.06.15 |
---|---|
[회고] 개인 프로젝트 - FC Online 공식 경기 분석 (24.05.25 ~ 24.06.05) (2) | 2024.06.08 |
[회고] 데브코스 2차 기간 (24.05.06 ~ 24.06.02) (0) | 2024.05.28 |
[회고] 데브코스 2차 팀 프로젝트 (24.05.13 ~ 24.05.17) (0) | 2024.05.20 |
[회고] 개인 프로젝트 - 공모전 웹 제작 (24.04.25 ~ 24.05.12) (0) | 2024.05.15 |