<aside>
💡

서비스 핵심 기능 (MVP1)
- 국내/해외 뉴스 기사 기반 트렌드 추천 기능
- 부서 기반 사용자 맞춤 트렌드 제공
- 회원 가입시 입력받은 관심 분야 기반 맞춤 트렌드 제공
- 크롤링시 댓글 갯수, 반응 등을 수집하여 실시간 인기 기사 추천 기능 제공
- 키워드 기반 시각화된 지표(인사이트) 제공
- 긍/부정 키워드 분석 기능
- 자주 언급된 키워드 분석 기능 (워드 클라우드 등)
- 특정 키워드의 주차별 언급 횟수 분석 기능
- 커뮤니티 기능
- 부서별 정보를 공유할 수 있는 커뮤니티 기능 제공
- 게시물, 댓글 반응 기능 제공
- 추천수 기반 인기 게시물 추천 기능 제공
- 부서, 직책별 커뮤니티에서의 다른 권한 기능 제공
- 일정 관리 기능
- 등록한 프로젝트 관련 맞춤 데이터 관리(챗봇 질의 내역) 및 공유
- 등록한 일정 기반 사용자 맞춤 알림 기능 제공
- 문서화
- 검색된 데이터, 저장한 데이터 등을 문서로 변환하여 내보내기 기능 제공
애자일 방법론을 적용하여 이후 개발 진행도에 따라 메신저, 사용자 페르소나 등의 기능 추가 예정 (MVP2, MVP3 …)
</aside>
<aside>
💡
사용할 기술 스택들
-
Back-End

</aside>
<aside>
💡
기술 스택 선정 이유
- 크롤링 및 키워드 추출, 재가공 : BeautifulSoup
업계 트렌드를 실시간으로 제공하기 위해 주기적으로 많은 양의 뉴스 데이터들을 빠르게 수집햘 필요가 있음
Python 생태계의 Pandas, Requests 등의 다양한 라이브러리를 통해 데이터의 수집, 재가공, 분석, 시각화 등을 통합적으로 관리하는 것이 가능함
- 개발언어 및 프레임워크 : Java(SpringBoot)
스프링 프레임워크는 POJO**,** IOC, DI의 특징을 가짐
→ 변화와 확장에 강점을 가져, 향후 개발 진행도에 따라 여러 기능을 추가할 계획이 있는 본 프로젝트에 적합하다고 판단,
또한 본 프로젝트에서 사용할 React의 비동기 처리 기능과 SpringBoot의 RESTful API를 결합하면 사용자의 채팅에 대한 빠른 응답이 가능할 것으로 판단
- 인증/인가 : 토큰 기반 인증(Jwt)
stateless 방식이므로, 서버의 부하를 최소화하는 것이 가능
확장성과 효율성 측면에서 이점을 가지고, 마이크로 아키텍처를 적용하는 것이 가능해 본 프로젝트에 사용하기 적합하다고 판단
- 데이터베이스 : PostgreSQL + Redis
뉴스 기사 키워드 분석 기능의 구현에 있어 주기적으로 잦은 데이터베이스의 변경이 예상됨
챗봇에서 사용자와의 상호작용을 동시에 처리, 사용자의 채팅 내역을 저장할 필요가 있음
→ 대량의 데이터를 빠르게 처리 가능하고, ACID를 준수하는 Postgresql이 적합하다고 판단
실시간 인기 키워드, 최근 검색 기록 기능의 구현에 있어서 매번 db에 접근해서 정보를 가져올시 성능 저하 문제가 있음
→ 캐싱을 통한 빠른 데이터 액세스가 가능한 Redis을 함께 도입
5. CI/CD : Jenkins
자체 서버에서 독립적으로 실행할 수 있는 Jenkins가 주기적으로 뉴스 기사를 크롤링 해와야하는 본 프로젝트에 보안과 제어 측면에서 가장 적합하다고 판단
6. 챗봇 엔진 : OpenAi GPT 4-o
본 프로젝트는 한글 기반 서비스를 제공하고, 데이터의 파인튜닝의 측면에서도 한글 처리 능력이 우수한 GPT 4-o가 가장 적합하다고 판단
</aside>
<aside>
💡
개발 중 예상가능한 어려운 점
- 뉴스 기사 크롤링 시 API 사용 제한:
api 사용시 하루에 받아올 수 있는 데이터 갯수가 제한되어 있는 경우가 있어 데이터 수집 과정에서 어려움이 예상됨
- 해외 뉴스 기사 번역 및 키워드 추출:
해외 뉴스의 기사 본문을 한글로 번역 후 키워드를 추출하여 재가공 하는 과정에서의 어려움이 예상됨 ex) 여러가지 뜻을 가진 단어(다의어) 번역 과정
- 커뮤니티 기능 구현에서 권한 관리:
부서나 직책에 따른 게시물 삭제 및 수정 권한을 설정하는 과정에서 권한 관리 로직 구현의 어려움 (현업에서도 권한 관련 기능은 솔루션 외주를 주는 경우가 많음)
- NoSQL 도입 과정:
최근 검색 기록, 실시간 인기 검색어 등의 기능을 구현하기 위해서 RDB외에 NoSql인 Redis를 병행해서 도입하는 과정에서의 어려움이 예상됨
- 키워드 기반 시각화 인사이트 제공:
추출한 키워드 기반 시각화된 인사이트를 제공하는 기능의 구현 과정에서의 데이터를 어떤 방식으로 저장하고 다룰지에 대한 어려움이 예상됨
- 챗봇 모델 파인 튜닝 과정:
적절한 데이터 수집 및 모델 트레이닝 과정에서의 어려움이 예상됨
</aside>
<aside>
💡
현재 작성된 ERD (초안)

</aside>