Skip to content

Latest commit

ย 

History

History
213 lines (167 loc) ยท 8.16 KB

README.md

File metadata and controls

213 lines (167 loc) ยท 8.16 KB

FinWise

๐Ÿ’ป Tech Stack

Backend

FastAPI Python KoalaNLP Hyper-GNN TF-IDF KeyBERT DeBERTa JAVA

Database

MongoDB

Frontend

React D3.js

Chrome Extension

HTML JavaScript CSS


ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

FinWise๋Š” Linear Hyper-GNN์„ ์ด์šฉํ•˜์—ฌ ๊ฒฝ์ œ ๊ธฐ์‚ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘, ๋ถ„๋ฅ˜, ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ง๊ด€์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๊ฒฝ์ œ ๊ด€๋ จ ์ •๋ณด๋ฅผ chrome exetension์„ ํ†ตํ•ด ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ตœ์‹  ๊ธฐ์ˆ  ์Šคํƒ์ธ FastAPI, React, MongoDB ๋ฐ D3.js๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

image

Team

FinWise ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์€ ๊ณ ๋ ค๋Œ€ํ•™๊ต ์ง€๋Šฅ์ •๋ณด ์†Œํ”„ํŠธ์›จ์–ด ์•„์นด๋ฐ๋ฏธ 5๊ธฐ 1์กฐ์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


ํŒ€์› : ๊ถŒ์ˆ˜ํ˜„


ํŒ€์› : ๊น€๊ธˆํ™˜


ํŒ€์› : ๋ฐ•์„œํ˜„


ํŒ€์› : ์ด์ค€ํ˜


ํŒ€์› : ์กฐ์ฐฝํฌ


ํŒ€์› : ์ฐจ์‹œํ˜„

์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

image

1. FastAPI (๋ฐฑ์—”๋“œ)

  • ๊ธฐ์‚ฌ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ
    • ๋‰ด์Šค ๊ธฐ์‚ฌ๋ฅผ ์›น์—์„œ ํฌ๋กค๋งํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘.
    • KoalaNLP์™€ KSS๋ฅผ ํ™œ์šฉํ•œ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ.
  • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
    • ๋™์‹œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•ด HGNN(Heterogeneous Graph Neural Network) ์ ์šฉ.
    • PMI์™€ HGNN์„ ์‚ฌ์šฉํ•ด ๊ธฐ์‚ฌ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์ถ”์ถœ.
    • TF-IDF, KeyBERT, DeBERTa๋กœ ์ฃผ์š” ๋…ธ๋“œ๋ฅผ ์„ ์ •ํ•ด ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ.

2. MongoDB (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)

  • ๊ด€๊ณ„ ๋ฐ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ.
  • ๋ˆ„์ ๋œ ๊ธฐ์‚ฌ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ ์š”์ฒญ ๋ฐ ์ œ๊ณต.

3. ํ”„๋ก ํŠธ์—”๋“œ

  • ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ
    • URL์„ ์ „์†กํ•˜์—ฌ ๋ฐฑ์—”๋“œ์™€ ํ†ต์‹ .
    • D3.js ๊ธฐ๋ฐ˜ ์‹œ๊ฐํ™”๋ฅผ ์ œ๊ณต.
  • React ํ”„๋ก ํŠธ์—”๋“œ
    • ๊ฐœ์ธํ™”๋œ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹œ๊ฐ์ ์œผ๋กœ ์ œ๊ณต.
    • ๋ˆ„์ ๋œ ๊ธฐ์‚ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž ์ด๋™ ๊ฒฝ๋กœ ์ƒ์„ฑ.

์ฃผ์š” ๊ธฐ๋Šฅ

  1. ์‹ค์‹œ๊ฐ„ ๋‰ด์Šค ํฌ๋กค๋ง ๋ฐ ๋ถ„์„

    • ๊ฒฝ์ œ ๊ธฐ์‚ฌ ์›น ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜์—ฌ ์ต์Šคํ…์…˜ ์‹คํ–‰ ์‹œ NLP & HGNN ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•ด ๋ถ„์„.
    • ๋ฌธ์žฅ ๋ถ„๋ฆฌ ๋ฐ ํ‚ค์›Œ๋“œ ์ถ”์ถœ.
  2. ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ

    • ๊ธฐ์‚ฌ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„.
    • ๋…ธ๋“œ ์ค‘์š”๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฃผ์š” ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐํ™”.
  3. D3.js๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

    • ๋ถ„์„๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์ง๊ด€์ ์ธ ์ •๋ณด ์ œ๊ณต.
  4. ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ

    • ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ๊ณ  ์žˆ๋Š” ๊ธฐ์‚ฌ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ๊ฐํ™”.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ์—ด๊ธฐ.
  2. "๊ฐœ๋ฐœ์ž ๋ชจ๋“œ" ํ™œ์„ฑํ™”.
  3. "์••์ถ• ํ•ด์ œ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ" ์„ ํƒ.
  4. ์ œ๊ณต๋œ ํด๋” ์„ ํƒ.

FastAPI

FastAPI๋Š” FinWise ๋ฐฑ์—”๋“œ์˜ ์ฃผ์š” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋น ๋ฅด๊ณ  ์ง๊ด€์ ์ธ API ์„ค๊ณ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Ubuntu 22.04 LTS์—์„œ Certbot์„ ์ด์šฉํ•œ HTTPS ์ธ์ฆ์„œ ๋ฐœ๊ธ‰

Docker ์„ค์น˜ ๋ฐ ์‹คํ–‰

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ

docker build -t finwise-backend .

์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

docker run -d --name finwise-backend -p 8000:8000 -v /etc/letsencrypt:/etc/letsencrypt finwise-backend

React + Vite

React์™€ Vite ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋œ ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋น ๋ฅธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ HMR(Hot Module Replacement)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋œ ์ฃผ์š” ํ”Œ๋Ÿฌ๊ทธ์ธ

  • @vitejs/plugin-react: Babel์„ ์‚ฌ์šฉํ•œ Fast Refresh ์ œ๊ณต.
  • @vitejs/plugin-react-swc: SWC๋ฅผ ์‚ฌ์šฉํ•œ Fast Refresh ์ œ๊ณต.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

โ”œโ”€โ”€ Backend
โ”‚   โ”œโ”€โ”€ main.py                # FastAPI ์—”๋“œํฌ์ธํŠธ ์ •์˜
โ”‚   โ”œโ”€โ”€ models                 # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ ์ •์˜
โ”‚   โ”œโ”€โ”€ utils                  # ์ „์ฒ˜๋ฆฌ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ Frontend
โ”‚   โ”œโ”€โ”€ public
โ”‚   โ”œโ”€โ”€ src
โ”‚   โ”‚   โ”œโ”€โ”€ components         # React ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ pages              # ํŽ˜์ด์ง€ ์ •์˜
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ chrome_extension
โ”‚   โ”œโ”€โ”€ manifest.json          # ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์„ค์ •
โ”‚   โ”œโ”€โ”€ popup.html             # ํŒ์—… UI
โ”‚   โ”œโ”€โ”€ background.js          # ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šคํฌ๋ฆฝํŠธ
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ README.md                  # ํ”„๋กœ์ ํŠธ ์„ค๋ช… ํŒŒ์ผ
โ””โ”€โ”€ ...

์‚ฌ์šฉ ๊ธฐ์ˆ 

  • ๋ฐฑ์—”๋“œ: FastAPI, Python(3.8.10), KoalaNLP, HGNN, TF-IDF, KeyBERT, DeBERTa, JAVA(21)
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: MongoDB
  • ํ”„๋ก ํŠธ์—”๋“œ: React, D3.js
  • ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ: HTML, JavaScript, CSS

์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•

1. ๋ฐฑ์—”๋“œ

cd Backend
pip install -r requirements.txt
uvicorn main:app --reload

2. ํ”„๋ก ํŠธ์—”๋“œ

cd Frontend
npm install
npm start

3. ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ

  1. chrome_extension ํด๋”๋ฅผ ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ ๊ฒฝ๋กœ๋กœ ์„ค์ •.
  2. ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ํ™œ์„ฑํ™”.

๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋งํฌ

FinWise GitHub


์ฐธ๊ณ  ์‚ฌํ•ญ

  • inisw5th_G1_FinWise_Trial&Error ํด๋”๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ œ์™ธ๋œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋ฐ ์ฐธ๊ณ  ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

plus-alpha

  1. ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํฌํฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค (git checkout -b feature/์ƒˆ๋กœ์šด๊ธฐ๋Šฅ).
  3. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค (git commit -m 'Add ์ƒˆ๋กœ์šด๊ธฐ๋Šฅ').
  4. ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค (git push origin feature/์ƒˆ๋กœ์šด๊ธฐ๋Šฅ).
  5. Pull Request๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.