뉴스 기사 데이터를 활용한 산업 트렌드 분석 및 시각화 서비스
2030의 가장 큰 관심사인 취업은 목표하는 산업의 트렌드 및 기업 정보를 습득하는 것이 중요하다. 빅데이터를 통해 산업군의 실시간 트렌드와 산업군별 기업들의 성장 정보들을 모아 제공하여 취업을 희망하는 사람들에게 도움이 될 수 있는 플랫폼을 기획하였다. 따라서 실시간으로 변화하는 데이터에 적합한 플랫폼을 제작하기 위해서 데이터 파이프라인 구축 및 자동화와 웹 개발이 필요하다고 판단하였다.
- 빅데이터 축적을 위한 데이터 파이프라인 구축 및 자동화 솔루션 구축
- 실제 현업에서 적용할 만한 수준의 웹 어플리케이션 개발 기술 습득
- 애자일 방식의 프로젝트 관리 및 실행 경험
2022년 5월 23일 ~ 2022년 7월 24일
팀명: +125° 🌡️
팀장: 김영애
🌀 김영애 : 데이터 ETL, 데이터 파이프라인 설계 및 구축
🏃 이동빈 : 데이터 ETL, AI
🦦 양지현 : 데이터 ETL , 프론트엔드
🌊 김종원 : 백엔드 , 프론트엔드 ,docker 구축
🐹 오다솔 : 백엔드, docker 구축
https://github.com/plus1250-project/joba/wiki/2.-WBS
- KoBERT 정확도
- 계획대로 훈련 데이터 셋을 생성하여 훈련을 시켰을 때, 정확도가 기대에 미치지 못하는 문제 발생.
- 훈련 데이터를 개선하고 하이퍼 파라미터를 조정함으로써 해결.
- 키워드 추출
- 기사 안의 명사를 카운팅하는 워드 카운트를 실행하였을 때 의미없는 단어들이 상위권에 위치하는 문제 발생.
- 키워드 추출 모델인 KeyBERT를 사용하여 기사 하나당 핵심 키워드 하나를 추출하고 카운팅하여 해결.
- state 관리
- 부모자식 컴포넌트 간의 state 관리는 props로 가능하지만, 관계가 없는 컴포넌트는 state 관리가 어려운 문제
- Redux를 사용하여 state를 관리함으로써 해결.
- JPA
- 빈 리스트를 반환하거나 Entity 관련 에러를 다수 출력하는 문제 발생.
- Repository 에서 DB 정보를 잘 호출 할 수 있도록 메소드 수정하여 해결.
- Controller 에서 요청을 수신할 때 POST, GET 요청을 구분하여서 파라미터를 설정하여 해결.
- Spring Security + JWT
- antMatchers.permitAll()을 해도 메소드 실행이 되지 않는 문제발생가 발생하여 .csrf().disable() 추가하여 해결.
- 파라미터 값을 가져오지 못하여 access token이 생성이 되지 않는 문제가 발생하여 LoginDTO를 만들어 해결.
- Docker 컨테이너 네트워크
- 독립된 컨테이너로 구축하면 컨테이너 간의 통신이 되지 않는 문제 발생.
- 브릿지 네트워크를 동일한 네트워크로 구성하여 해결.
- 모델서버와 HDFS를 연결하여 전체 데이터 흐름을 Airflow로 자동화
- 로그인 Redis 활용 토큰 관리
- 리액트 프로젝트 도커 컴포즈로 배포
- 독립된 도커 컨테이너로 구축된 MariaDB 를 Mysqldump 를 이용하여 백업하고 React + Nginx + SpringBoot + MariaDB 함께 도커 컴포즈 재배포