๋ ธ๋๋ฅผ ๊ฒ์ํ๊ณ ๋๋ง์ ํ๋ ์ด๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด ๊ณต์ ํ ์ ์๋ ์น ์๋น์ค์ ๋๋ค.
songs/
โโโ front-end/ # React + TypeScript + Vite ํ๋ก ํธ์๋
โโโ back-end/ # Spring Boot 4.0.3 + Groovy ๋ฐฑ์๋
โโโ song-crawling/ # Python ํฌ๋กค๋ง ์คํฌ๋ฆฝํธ
- ๊ตฌ๊ธ OAuth2 ๋ก๊ทธ์ธ (Google ๊ณ์ ์ผ๋ก ์์ ๋ก๊ทธ์ธ, JWT ๋ฐ๊ธ)
- ๋ ธ๋ ๊ฒ์
- ๋ด ํ๋ ์ด๋ฆฌ์คํธ ๊ด๋ฆฌ (์์ฑ ยท ์์ ยท ์ญ์ )
- ํ๋ ์ด๋ฆฌ์คํธ ๊ณต์ (๊ณต๊ฐ/๋น๊ณต๊ฐ)
- ๊ณก์ ๊ฐ์ฌ / ๋ฉ๋ชจ ์ถ๊ฐ
| ๊ตฌ๋ถ | ๊ธฐ์ |
|---|---|
| ํ๋ก ํธ์๋ | React 18 + TypeScript + Vite + shadcn/ui + Tailwind CSS |
| ๋ฐฑ์๋ | Spring Boot 4.0.3 + Groovy + Spring Security + JPA |
| DB | PostgreSQL (์ ์ , ํ๋ ์ด๋ฆฌ์คํธ) + MongoDB (๋ ธ๋ ๋ฐ์ดํฐ, ์์ ) |
| ์ธ์ฆ | Google OAuth2 + JWT |
| ํฌ๋กค๋ฌ | Python 3 |
1. ํ๋ก ํธ โ GET /oauth2/authorization/google
2. ๊ตฌ๊ธ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ (Spring Security ์๋ ์ฒ๋ฆฌ)
3. ๊ตฌ๊ธ ๋ก๊ทธ์ธ ์๋ฃ โ GET /login/oauth2/code/google (Spring Security ์ฒ๋ฆฌ)
4. CustomOAuth2UserService โ DB์ ์ ์ ์ ์ฅ/์กฐํ
5. OAuth2SuccessHandler โ JWT ๋ฐ๊ธ
6. ํ๋ก ํธ /oauth2/callback?token=JWT ๋ก ๋ฆฌ๋ค์ด๋ ํธ
7. ํ๋ก ํธ์์ JWT๋ฅผ localStorage์ ์ ์ฅ
๋ฐฑ์๋
- IntelliJ์์
BackEndSpringbootApplication์คํ - ํฌํธ: 8080
ํ๋ก ํธ์๋
cd front-end
npm install
npm run dev- ํฌํธ: 5173
ํฌ๋กค๋ฌ
cd song-crawling
pip install -r requirements.txt
python crawling.py