Stock Hub๋ ๋ด๊ฐ ์ ํํ ์ข ๋ชฉ์ ๋ํ ๋งค์ ์๊ฒฌ์ ๊ณต์ ํ๋ ์ฅ์์ ๋๋ค.
๋ค๋ฅธ ์ฌ์ฉ์๋ค๋ก๋ถํฐ ๊ฒ์๊ธ์ ๋ํ ํ๊ฐ๋ฅผ ๋ฐ๋ ๊ฒ์ ๋ฌผ๋ก , ๊ฒ์๊ธ ์์ฑ ์์ ๋ถํฐ์ ์์ต๋ฅ ๋ ๋ณด์ฌ์ค์!
์ฌ๊ณ ์ถ์ ์ข ๋ชฉ์ด ์๋๋ฐ, ๋ด ์๊ฐ์ด ๋ง๋์ง ํ์ ์ด ์๋ค๋ฉด Stock Hub์ ๊ณ ์๋ค์๊ฒ ๊ฒ์ฆ์ ๋ฐ์๋ณด์์ฃ !
์จ์ด์๋ ๋ฐฉ๊ตฌ์ ์ ๋๋ฆฌ์คํธ๋ค์ด ๋ง์๊ป ๋ชฉ์๋ฆฌ๋ฅผ ๋ด๋ ๊ทธ๋ ๊น์ง ํ์ดํ ์ ๋๋ค!
2022/06/24 ~ 2022/08/05
๋ฒ ํ ์๋น์ค ๋ฐฐํฌ 2022/07/29
Name | GitHub / Contact | Position |
---|---|---|
Frontend Github Link | https://github.com/HH99-StockHub/FrontEnd | |
๋ฐํํVL | https://github.com/bigtae1007 | FE / React |
์ ์ ์ | https://github.com/sinyoung12 | FE / React |
Backend Github Link | https://github.com/HH99-StockHub/BackEnd | |
์กฐํ์ธL | https://github.com/gaius365 | BE / Spring |
๋ฌธ์คํธ | https://github.com/mjoonho | BE / Spring |
์ฃผ ํฌ | https://github.com/Joo-hui | BE / Spring |
Designer | Designer | |
์ด์์ง |
-
๊ฒ์๊ธ ์์ฑ/์ญ์ : KOSPI/KOSDAQ ์์ฅ ์ฃผ์์ ํ ๊ฐ์ง ์ ํํ์ฌ ๊ทธ ์ฃผ์์ ๋ํ ๋งค์ ์๊ฒฌ์ ๊ฒ์
-
์ฐฌ๋ฐ ํฌํ: ํ์ธ์ ๊ฒ์๊ธ์ ๋ํด ์ฐฌ์ฑ/๋ฐ๋์ ํฌํ๋ฅผ ํ์ฌ ๋๋ ์์ ํ์ฌ ๊ฐ๋ฅ
-
๋๊ธ ์์ฑ/์ญ์
-
์์ต๋ฅ ๊ธฐ๋ก: ๊ฒ์๊ธ์ด ์์ฑ ์์ ๋ถํฐ ๊ฒ์๊ธ ์กฐํ ์์ ๊น์ง์ ์์ต๋ฅ ์ ํ์
-
๊ธฐ์ฌ ํ์: ๊ฒ์๊ธ ํด๋น ์ข ๋ชฉ๋ช ์ผ๋ก ๊ฒ์ํ์ ๋ ๋์ค๋ ๋ค์ด๋ฒ ๊ธฐ์ฌ๋ฅผ ํ์
-
๋ชจ์๋ณด๊ธฐ: ๋ณธ์ธ ๋ฐ ํ ์ ์ ์ ๊ฒ์๊ธ์ ๋ชจ์๋ณด๊ธฐ
-
๊ฒ์๊ธ ๊ฒ์ : ํด๋น ํค์๋๊ฐ ๋ค์ด๊ฐ ๊ฒ์๊ธ ๊ฒ์ ๊ธฐ๋ฅ ( ๋์ด์ฐ๊ธฐ๋ก ์ค๋ณต ๊ฒ์์ด ์ ๋ ฅ ๊ฐ๋ฅ )
-
์ธ๊ธฐ๊ธ ๊ฒ์ํ ๋ฑ๋ก: 1) 3ํ ์ด์์ ์ฐฌ์ฑ ํ๋ฅผ ํ๋ + 2) 2๋ฐฐ์ ์ด์์ ์ฐฌ์ฑ/๋ฐ๋ ๋น์จ ๋ฌ์ฑ
-
์์ต์ ๊ฒ์ํ ๋ฑ๋ก: 5% ์ด์์ ์์ต๋ฅ ๋ฌ์ฑ
-
๋ชฉํ์์ต๋ฅ : ๊ฒ์๊ธ ์์ฑ ์ ๋ชฉํ์์ต๋ฅ ์ค์ (+10%, +20%, + 30%, +50%, +100%, +150%, +200%)
-
ํ์ ๋ฆฌ๋ฏธํธ: ์์ต๋ฅ ๊ธฐ๋ก์ ์ผ์ ๊ธฐ๊ฐ ํ์ ๋ฉ์ถ๋ ๊ธฐ๋ฅ (2์ฃผ, 1๊ฐ์, 3๊ฐ์, 6๊ฐ์, 1๋ , 2๋ , 3๋ )
-
๋ชฉํ ์์ต๋ฅ : ๊ฒ์๊ธ ์์ฑ ์ ๋ชฉํ์์ต๋ฅ ์ค์ (+10%, +20%, + 30%, +50%, +100%, +150%, +200%)
-
๋ฉ์ธ ๋ฐฐ๋: ์ข ํฉ ์ฃผ๊ฐ ์ง์ ์ ๋ณด๋ฅผ ๋ฐฐ๋์ ํ๋ฅด๋ ํํ๋ก ๊ฒ์
-
์ฃผ๊ฐ ์ฐจํธ: ๊ฒ์๊ธ ํด๋น ์ข ๋ชฉ์ 1๋ ์น ์ ์ฐจํธ, ์ผ๋ด์ฐจํธ ํ์
-
๋ญํฌ ์์คํ : ๊ฒ์๊ธ/๋๊ธ ์์ฑ ์ค์ ๊ณผ ์ธ๊ธฐ๊ธ ๋ฌ์ฑ ์ ์ ์ ์ ์ํ ํด์ ๋ญํฌ ์์คํ ์ ์ ์ฉ (์ ์ 0์ - ์ด๋ณด 10์ - ์ค์ 100์ - ๊ณ ์ 200์ - ์ง์กด 500์ / ๊ฒ์๊ธ ์์ฑ +30์ , ๋๊ธ ์์ฑ +5์ , ์ธ๊ธฐ๊ธ ๋ฌ์ฑ +50์ )
-
์๋ฆผ ๊ธฐ๋ฅ: ์ธ๊ธฐ๊ธ/์์ต์ ๋ฌ์ฑ, ๋๊ธ, ์ฐฌ๋ฐํฌํ ๋ฑ์ ๋ํ ์๋ฆผ
-
์ฑํ ๋ฐฉ: ๋ก๊ทธ์ธํ ์ ์ ๋ค๋ผ๋ฆฌ ํ ๋ก ํ ์ ์๋ ์ฑํ ๋ฐฉ
์ ์ฉ ๊ธฐ์ | ๊ธฐ์ ๋์ ๋ฐฐ๊ฒฝ |
---|---|
MongoDB | ์ฆ๊ถ API ์ฐ๊ฒฐ์ ์ํด Python์ ์คํํ๋ ๋ณ๋์ ์๋ฒ ํ๊ฒฝ์ ๊ตฌ์ถํ๋๋ฐ, ๋ค๋์ ์ฆ๊ถ ๋ฐ์ดํฐ๋ฅผ ๋์ ๋๋ฆฌ ํํ๋ก ์ ์ฅํ๋ ๋ฐ์๋ NoSQL์ธ MongoDB๋ฅผ ์ฌ์ฉํด์ Spring ์๋ฒ์ ์ฐ๊ฒฐํ๊ณ ์ ํ์ต๋๋ค. |
MySQL | Spring์์ ๊ตฌํํ๋ ๋ฉ์ธ ๋ก์ง์๋ 1๋N ๊ด๊ณ๊ฐ ์กด์ฌํ์ฌ ๊ด๊ณํ DB์ธ MySQL์ ์ฌ์ฉํ์ต๋๋ค. |
Nginx | HTTPS ์ฐ๊ฒฐ์ ์ํด ๋ฆฌ๋ฒ์ค ํ๋ก์๋ฅผ ์ํํด์ค ์น์๋ฒ๊ฐ ํ์ํ๊ณ , ์ถํ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์ผ๋์ ๋๋ฉด Nginx๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํ์ต๋๋ค. |
Web Socket | ์ฌ์ฉ์๋ค ๊ฐ์ ์ํํ ์ํต์ ์ํด ์ค์๊ฐ ์๋ฆผ๊ณผ ์ ์ฒด ์ฑํ ๋ฐฉ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์ ํ์ต๋๋ค. |
Python | ํค์์ฆ๊ถ api์ yahoo finance๋ฅผ ์ ์ฐํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ์ฉํ์ต๋๋ค. |
-[BackEnd] ์ถ์ฒ/๋น์ถ์ฒ ํฌํ ๋น์ ์ ์๋
`๋ฌธ์ ์ํฉ`
ํ๋์ ๊ฒ์๊ธ์ ๋๊ณ ๋์์ ์ฌ๋ฌ ๋ช
์ด์ โ์ถ์ฒ"๊ณผ โ๋น์ถ์ฒ" ํฌํ๋ฅผ ๊ณ์ ๋๋ ์ ๋ ๊ฐ๋ ์ถ์ฒ ์๋ ๋น์ถ์ฒ ์๊ฐ โ-1โ ๋ฑ
๋์ฌ ์ ์๋ ์ซ์๊ฐ ๋์ค๋ ์ํฉ์ด ๋ฒ์ด์ก์ต๋๋ค.
`๋ฌธ์ ์์ธ`
์ถ์ฒ/๋น์ถ์ฒ ํฌํ ๋ก์ง์ ๊ฒ์๊ธ์ โarticleRepositoryโ์์ ๋ถ๋ฌ์จ ํ ์ผ๋ จ์ ํ
์คํธ ๊ณผ์ ์ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๊ฑฐ์น๊ณ
โarticle.setVoteUpCount(article.getVoteUpCount() + 1)โ์ ๋ฐฉ์์ผ๋ก ์ถ์ฒ ์๋ฅผ ์
๋ฐ์ดํธ ํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ 1๋ฒ ์ฌ์ฉ์์ ๋ก์ง์ด ๋ค ๋๊ธฐ ์ ์
2๋ฒ ์ฌ์ฉ์๊ฐ ํฌํ๋ฅผ ํ๊ฒ ๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด์์ต๋๋ค.
`ํด๊ฒฐ ๋ฐฉ์`
1. Message Queue๋ฅผ ์ ์ฉํ์ฌ ์งง์ ์๊ฐ์ ๋ค์ด์ค๋ ์์ฒญ๋ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์ โ ๊ณต๋ถ ์ค
2. โvoteUpCountโ๋ฅผ ๋งค๋ด์ผ๋ก +1, -1 ์ฒ๋ฆฌํ์ง ์๊ณ โvoteUpRepositoryโ์์ ๊ด๋ จ ํฌํ ์๋ฅผ ์นด์ดํธํด์ setํ๋ ๋ฐฉ์ โ ์ฑํ ์์
-[BackEnd] ๊ฒ์๊ธฐ๋ฅ ๊ฐ์
๋ฌธ์ ์ํฉ
๊ฒ์๊ธ์ ์์ด ์ฆ๊ฐํ๊ณ ๊ฒ์๊ฒฐ๊ณผ์ ์ฐ๊ด์ฑ ๊ฒ์ฌ ์ฝ๋๊ฐ ์ถ๊ฐ๋จ์ ๋ฐ๋ผ ์ฑ๋ฅ ๊ฐ์ ์ ํ์์ฑ์ด ์๊ฒผ์ต๋๋ค.
`๋ฌธ์ ์์ธ`
1. ๊ฒ์๊ฒฐ๊ณผ ์ฐ๊ด์ฑ ๊ฒ์ฌ ๋ฐ ์ ๋ ฌ์ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถํ๋ ๋ฐ๋ณต๋ฌธ ์ฌ์ฉ๊ณผ ์ค๋ณต ๊ฒ์๊ธ ์ ๊ฑฐ ์ ๋ฐํ ํํ๋ก ๋ณํ์ค
(๊ฒ์๊ฒฐ๊ณผ์์ ์ ์ธํ ํญ๋ชฉ์๋ ์์
์ํ์ค)
2. ๊ฒ์๊ฒฐ๊ณผ ์ค๋ณต ๊ฒ์๊ธ ์ ๊ฑฐ์ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถํ๋ ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ ์ฌ์ฉ์ค
`ํด๊ฒฐ ๋ฐฉ์`
1. ์ฝ๋์ ๊ตฌ์กฐ์ ์์๋ฅผ ์กฐ์จํ์ฌ ์ฐ๊ด์ฑ ์ฐ์ ์์๋๋ก ๋ฐํ ๋ฆฌ์คํธ์ ์ ์ฅํจ
2. stream distinct๋ฅผ ํตํด ์ค๋ณต ๊ฒ์๊ธ ์ ๊ฑฐ
์ฐ๊ด์ฑ ๊ฒ์ฌ ๊ณผ์ ์์์ ์ง์ฐ์ ์๋ฐฉํ ๋ฐฉ์ ๋ชจ์์ค
API ์ค๊ณ : https://www.notion.so/be889f10852c4aed91ba2bd00b5c4f20?v=42e0adb20f9147648addf40aad7e0301