Skip to content

뉴스 기사 데이터를 활용한 산업 트렌드 분석 및 시각화 서비스

Notifications You must be signed in to change notification settings

plus1250-project/joba-spring-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📢 트렌드를 JOBA

📻 프로젝트 주제

뉴스 기사 데이터를 활용한 산업 트렌드 분석 및 시각화 서비스


💾 프로젝트 배경

2030의 가장 큰 관심사인 취업은 목표하는 산업의 트렌드 및 기업 정보를 습득하는 것이 중요하다. 빅데이터를 통해 산업군의 실시간 트렌드와 산업군별 기업들의 성장 정보들을 모아 제공하여 취업을 희망하는 사람들에게 도움이 될 수 있는 플랫폼을 기획하였다. 따라서 실시간으로 변화하는 데이터에 적합한 플랫폼을 제작하기 위해서 데이터 파이프라인 구축 및 자동화와 웹 개발이 필요하다고 판단하였다.


💽 프로젝트 목적

  1. 빅데이터 축적을 위한 데이터 파이프라인 구축 및 자동화 솔루션 구축
  2. 실제 현업에서 적용할 만한 수준의 웹 어플리케이션 개발 기술 습득
  3. 애자일 방식의 프로젝트 관리 및 실행 경험

⌛ 프로젝트 기간

2022년 5월 23일 ~ 2022년 7월 24일


🔆 팀 소개

팀명: +125° 🌡️
팀장: 김영애
🌀 김영애 : 데이터 ETL, 데이터 파이프라인 설계 및 구축
🏃 이동빈 : 데이터 ETL, AI
🦦 양지현 : 데이터 ETL , 프론트엔드
🌊 김종원 : 백엔드 , 프론트엔드 ,docker 구축
🐹 오다솔 : 백엔드, docker 구축


🔧 기술 스택

인프라 구축

데이터 파이프라인

백엔드

프론트엔드


📅 WBS

https://github.com/plus1250-project/joba/wiki/2.-WBS


⚙️ 시스템 아키텍쳐

시스템아키텍쳐


🖇 클래스 다이어그램

클래스다이어그램


🛢 DB 설계

DB (1)


🧾 API

api



🎥 기능 소개

유튜브화면

image


💣 이슈

데이터

  1. KoBERT 정확도
  • 계획대로 훈련 데이터 셋을 생성하여 훈련을 시켰을 때, 정확도가 기대에 미치지 못하는 문제 발생.
  • 훈련 데이터를 개선하고 하이퍼 파라미터를 조정함으로써 해결.
  1. 키워드 추출
  • 기사 안의 명사를 카운팅하는 워드 카운트를 실행하였을 때 의미없는 단어들이 상위권에 위치하는 문제 발생.
  • 키워드 추출 모델인 KeyBERT를 사용하여 기사 하나당 핵심 키워드 하나를 추출하고 카운팅하여 해결.

프론트

  1. state 관리
  • 부모자식 컴포넌트 간의 state 관리는 props로 가능하지만, 관계가 없는 컴포넌트는 state 관리가 어려운 문제
  • Redux를 사용하여 state를 관리함으로써 해결.

백엔드

  1. JPA
  • 빈 리스트를 반환하거나 Entity 관련 에러를 다수 출력하는 문제 발생.
  • Repository 에서 DB 정보를 잘 호출 할 수 있도록 메소드 수정하여 해결.
  • Controller 에서 요청을 수신할 때 POST, GET 요청을 구분하여서 파라미터를 설정하여 해결.
  1. Spring Security + JWT
  • antMatchers.permitAll()을 해도 메소드 실행이 되지 않는 문제발생가 발생하여 .csrf().disable() 추가하여 해결.
  • 파라미터 값을 가져오지 못하여 access token이 생성이 되지 않는 문제가 발생하여 LoginDTO를 만들어 해결.
  1. Docker 컨테이너 네트워크
  • 독립된 컨테이너로 구축하면 컨테이너 간의 통신이 되지 않는 문제 발생.
  • 브릿지 네트워크를 동일한 네트워크로 구성하여 해결.

💭 개선 사항

  1. 모델서버와 HDFS를 연결하여 전체 데이터 흐름을 Airflow로 자동화
  2. 로그인 Redis 활용 토큰 관리
  3. 리액트 프로젝트 도커 컴포즈로 배포
  4. 독립된 도커 컨테이너로 구축된 MariaDB 를 Mysqldump 를 이용하여 백업하고 React + Nginx + SpringBoot + MariaDB 함께 도커 컴포즈 재배포


📜 WIKI

About

뉴스 기사 데이터를 활용한 산업 트렌드 분석 및 시각화 서비스

Resources

Stars

Watchers

Forks