주제 : 자유 주제(동국대학교 - CSID DGU에 존재하는 프로젝트/타 오픈소스 프로젝트의 파생 프로젝트 또는 신규 프로젝트)
- 다양한 웹 페이지를 통해 정보를 활용하는데 많은 URL을 참고하게 되면 한 눈에 파악하기 힘들며 핵심 정보를 파악하는 것에 어려움을 느낄 수 있다.
- 참고했던 URL내 정보를 다시 참고해야할 때 URL으로만 어떤 내용에 해당하는 것인지 알아차리는 것에는 어려움 존재 또한 저장해둔 URL이 많이 존재한다면 특정 URL을 찾고자 할 때 어려움 존재.
이러한 문제점들의 개선방향을 제시하고 해결하고자하는 프로젝트 주제를 선정
사용자가 요약을 희망하고자 하는 URL을 입력하면 해당 URL의 본문을 요약한 텍스트와 시각화 자료(워드 클라우드, 네트워크 그래프)를 사용자에게 반환해준다. 이 기능을 통해 사용자에게 긴 내용의 본문을 한 눈에 보기 쉽도록 제공해준다.위 메인 페이지 URL 입력 창에 요약하고자 하는 URL을 입력한다.
사용자는 위와 같이 URL을 입력하여 요약 결과 화면을 반환받을 수 있다.
상위 3개의 키워드를 추출하여 카테고리를 분류하고 okt()를 이용해 pos(명사+형용사)로 모델을 학습하여 텍스트를 요약한다.
본 웹 사이트를 통해 현재까지 진행한 모든 사용자들의 URL을 카테고리 별로 저장되어있다. 해당 웹 사이트에 인증 및 인가 기능이 존재하기 때문에 인가가 확인이 된 사용자는 다른 사용자가 특정 카테고리 내 어떤 URL을 요약하였는지 쉽게 알 수 있다.
해당 웹 사이트를 이용하는 다른 사용자들과 채팅 기능을 이용할 수 있다.
주요 기능이 URL 요약 및 채팅 기능이기 때문에 해당 기능을 사용하기 위한 데이터베이스 설계는 이와 같이 진행하였다.
* 회원과 채팅방과의 관계는 다대다 관계이므로 중계 테이블을 이용하여 일대다 - 다대일 관계로 풀어 설계해주었다.
* 인가 기능을 유지한채 관리하는 URL과 카테고리 분류를 위한 전체 URL 관리를 위한 테이블이 하나씩 존재한다. 회원과 연관관계가 존재하는 URL이 회원이 검색했던 URL을 의미하며 독립적으로 존재하는 ORIGIN_URL 테이블이 전체 URL관리를 위한 테이블이다.
$ git clone https://github.com/CSID-DGU/2022-2-OSSProj-KKJ-5.git
$ cd 2022-2-OSSProj-KKJ-5
$ cd ossproj-react-app
$ npm install or npm install --force
$ npm start
본 애플리케이션을 구현하는 과정에서 활용 가능한 외부 라이브러리는 제한없이 사용하는 것을 원칙으로 한다.
본 프로젝트는 gensim 라이브러리 사용을 위해 Python 3.8.3 버전을 사용해야한다.
gensim 라이브러리는 파이썬 4.0 이후부터 지원하지 않는 기능이다. 따라서, 파이썬 환경을 3.8.3에 구성할 수 있는 가상환경을 설정해준다.
https://www.anaconda.com/distribution/#download-section
$ conda create -n {ENV_NAME} python=3.8.3
$ conda activate {ENV_NAME}
위와 같이 가상 환경을 설정하고 아래 과정을 통해 라이브러리까지 다운로드를 받아준다.
본 애플리케이션의 소스코드 내에서 활용한 모든 외부 라이브러리는 requirements.txt에 해당 라이브러리 리스트를 저장하여 실행할 수 있도록 헌다.
$ pip freeze > requirements.txt
requirements.txt에 저장된 외부 라이브러리를 다운로드 받는 명령어는 다음과 같다.
$ pip install -r requirements.txt
$ python app.py
.gitignore
- Git 관련 환경 변수 파일
requirements.txt
- 파이썬 라이브러리 종속성
Spring Server를 실행하기 전 로컬 데이터 베이스인 H2 환경을 먼저 구성해주어야 한다.
http://h2database.com/html/main.html
압축을 풀고 해당 폴더 안 bin 디렉토리 안으로 이동한 후 h2.bat을 실행해준다. 경로 이동은 개인 환경 설정에 맞도록 작성하여 bin폴더 안으로 이동해준다. 아래는 MacOS 환경에서 이동 경로 예시이다.
cd Users/{UserName}/Downloads/h2/bin
./h2.sh
Generic H2 (Embedded)로 설정한 후 JDBC URL에 위 사진과 동일한 경로를 작성해준다. 만약 다른 경로로 설정하고 싶은 경우 Spring내 application.yml 파일 내 spring.datasource.url의 이름 또한 설정한 경로로 변경해주도록 한다.
위 과정을 통해 H2 데이터베이스를 생성해준 후 열려있는 창을 닫고 데이터베이스에 재접속 해주도록 한다.
생성이 아닌 접속이기 때문에 Generic H2 (Server)로 변경해준 후 JDBC URL 또한 위 사진과 동일하게 입력해준 후 연결을 클릭하여 데이터베이스에 접속해주도록 한다.
본 프로젝트 환경은 Intellij IDEA에서 build와 실행을 함께 진행하였으므로 아래 설명 또한 Intellij IDEA 기준 실행 방법을 소개한다.
다음 사진에서 [다음을 사용하여 빌드 및 실행]의 Gradle이 아닌 Intellij IDEA로 변경해준다.
다음 사진에서 [어노테이션 처리 활성화] 버튼을 클릭하여 어노테이션이 활성화될 수 있도록 환경을 구성해준다.
OssProjApplication 클래스 내 실행 버튼을 클릭하여 Spring Server를 실행한다.
위 과정을 모두 진행하면 React, Flask, Spring 3개의 Server를 실행했으며 URL창에 localhost:3000을 입력하여 본 프로젝트 웹 사이트에 접속할 수 있다.
- 기존 프로젝트 : https://github.com/DGUFARM
- 기존 프로젝트 License : MIT License
- 현재 프로젝트 License : GNU General Public License v3.0