Skip to content

๐Ÿ›’ Ju(้…’)piter - React์™€ Tailwind CSS๋ฅผ ๊ธฐ๋ฐ˜ ์Šค๋งˆํŠธ ์ฃผ๋ฅ˜ ๊ฐ€๊ฒฉ๋น„๊ต ํ”Œ๋žซํผ ํ”„๋ก ํŠธ์—”๋“œ

Notifications You must be signed in to change notification settings

heeezni/jupiter-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

34 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›’ Jupiter - ์Šค๋งˆํŠธ ๊ฐ€๊ฒฉ๋น„๊ต ํ”Œ๋žซํผ

jupiter/frontend ํ”„๋กœํ† ํƒ€์ž…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋œ React ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. AI ๊ธฐ๋ฐ˜ ๊ฐ€๊ฒฉ ์˜ˆ์ธก ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ํ˜„๋Œ€์ ์ธ ์‡ผํ•‘๋ชฐ ๊ฐ€๊ฒฉ๋น„๊ต ํ”Œ๋žซํผ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ ๊ธฐ์ˆ  ์Šคํƒ

Frontend

  • React 19 - ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • Vite - ๋น ๋ฅธ ๋นŒ๋“œ ๋„๊ตฌ ๋ฐ ๊ฐœ๋ฐœ ์„œ๋ฒ„
  • Tailwind CSS v3 - ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ๋ฐ˜ CSS ํ”„๋ ˆ์ž„์›Œํฌ
  • @tanstack/react-query - ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ (API ๋ฐ์ดํ„ฐ ์บ์‹ฑ, ๋™๊ธฐํ™”, ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๋ณต์žกํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๋กœ์ง์„ ๊ฐ„์†Œํ™”)
  • Chart.js - AI ๊ฐ€๊ฒฉ ์˜ˆ์ธก ์ฐจํŠธ ์‹œ๊ฐํ™”
  • React Chart.js 2 - React์šฉ Chart.js ๋ž˜ํผ
  • React Router Dom - ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ผ์šฐํŒ…
  • Font Awesome - ์•„์ด์ฝ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • Vitest - ๋น ๋ฅธ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ

Backend (์—ฐ๋™)

  • Spring Boot - RESTful API ์„œ๋ฒ„
  • OpenAI GPT API - AI ๊ฐ€๊ฒฉ ์˜ˆ์ธก ์—”์ง„
  • Java 21 - ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ์–ธ์–ด

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐ŸŽฏ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • โœ… AI ๊ฐ€๊ฒฉ ์˜ˆ์ธก - OpenAI GPT ๊ธฐ๋ฐ˜ ๋ฏธ๋ž˜ ๊ฐ€๊ฒฉ ์˜ˆ์ธก ์ฐจํŠธ
  • โœ… ์‹ค์‹œ๊ฐ„ ๊ฐ€๊ฒฉ ๋น„๊ต - ์—ฌ๋Ÿฌ ์‡ผํ•‘๋ชฐ ๊ฐ€๊ฒฉ ํ•œ๋ˆˆ์— ๋น„๊ต
  • โœ… ๊ฐ€๊ฒฉ ํžˆ์Šคํ† ๋ฆฌ ์ถ”์  - ์‹œ๊ณ„์—ด ๊ฐ€๊ฒฉ ๋ณ€ํ™” ๋ฐ์ดํ„ฐ
  • โœ… ์Šค๋งˆํŠธ ์ƒํ’ˆ ๊ฒ€์ƒ‰ - ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ํ•„ํ„ฐ๋ง
  • โœ… ์ƒํ’ˆ ์ƒ์„ธ ์ •๋ณด - ํ‰์ , ๋ฆฌ๋ทฐ, ์ŠคํŽ™ ์ •๋ณด

๐ŸŽจ UI/UX

  • โœ… ์™„์ „ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ - ๋ชจ๋ฐ”์ผ, ํƒœ๋ธ”๋ฆฟ, ๋ฐ์Šคํฌํ†ฑ ์ง€์›
  • โœ… ํ˜„๋Œ€์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค - Tailwind CSS ๊ธฐ๋ฐ˜ ๋””์ž์ธ
  • โœ… ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ฐจํŠธ - Chart.js ๊ธฐ๋ฐ˜ ์‹œ๊ฐํ™”
  • โœ… ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ - ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ React ์ปดํฌ๋„ŒํŠธ
  • โœ… ๋ถ€๋“œ๋Ÿฌ์šด ์• ๋‹ˆ๋ฉ”์ด์…˜ - ํ˜ธ๋ฒ„ ํšจ๊ณผ ๋ฐ ํŠธ๋žœ์ง€์…˜

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

jupiter-react/
โ”œโ”€โ”€ public/                    # ์ •์  ์—์…‹ (์ด๋ฏธ์ง€, ํฐํŠธ ๋“ฑ)
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/            # ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ layout/            # ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ (ํ—ค๋”, ํ‘ธํ„ฐ)
โ”‚   โ”‚   โ”œโ”€โ”€ sections/          # ํŽ˜์ด์ง€์˜ ๊ฐ ์„น์…˜
โ”‚   โ”‚   โ”œโ”€โ”€ AlcoholPreloader.jsx    # ๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ””โ”€โ”€ PricePredictionChart.jsx # AI ๊ฐ€๊ฒฉ ์˜ˆ์ธก ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ hooks/                 # ์ปค์Šคํ…€ React ํ›… (์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋กœ์ง ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•œ ํ•จ์ˆ˜)
โ”‚   โ”‚   โ””โ”€โ”€ useFileUpload.js   # ํŒŒ์ผ ์—…๋กœ๋“œ ๊ด€๋ฆฌ ํ›…
โ”‚   โ”œโ”€โ”€ pages/                 # ๋ผ์šฐํŒ…๋  ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ (18๊ฐœ)
โ”‚   โ”‚   โ”œโ”€โ”€ Home.jsx           # ๋ฉ”์ธ ํ™ˆํŽ˜์ด์ง€
โ”‚   โ”‚   โ”œโ”€โ”€ Shop.jsx           # ์ƒํ’ˆ ๋ชฉ๋ก ํŽ˜์ด์ง€
โ”‚   โ”‚   โ”œโ”€โ”€ ProductDetail.jsx  # ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€
โ”‚   โ”‚   โ”œโ”€โ”€ Community.jsx      # ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ
โ”‚   โ”‚   โ”œโ”€โ”€ AdminPanel.jsx     # ๊ด€๋ฆฌ์ž ํŒจ๋„
โ”‚   โ”‚   โ””โ”€โ”€ ...                # ๊ธฐํƒ€ ํŽ˜์ด์ง€๋“ค
โ”‚   โ”œโ”€โ”€ services/              # API ์„œ๋น„์Šค ๊ณ„์ธต
โ”‚   โ”‚   โ”œโ”€โ”€ api.js             # ๊ธฐ๋ณธ API ํด๋ผ์ด์–ธํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ authService.js     # ์ธ์ฆ ์„œ๋น„์Šค
โ”‚   โ”‚   โ”œโ”€โ”€ adminService.js    # ๊ด€๋ฆฌ์ž ์„œ๋น„์Šค
โ”‚   โ”‚   โ””โ”€โ”€ ...                # ๊ธฐํƒ€ ์„œ๋น„์Šค๋“ค
โ”‚   โ”œโ”€โ”€ utils/                 # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”‚   โ”‚   โ”œโ”€โ”€ categoryUtils.js   # ์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ
โ”‚   โ”‚   โ””โ”€โ”€ fileUtils.js       # ํŒŒ์ผ ์ฒ˜๋ฆฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ
โ”‚   โ”œโ”€โ”€ App.jsx                # ๋ฉ”์ธ ์•ฑ ์ปดํฌ๋„ŒํŠธ (๋ผ์šฐํ„ฐ ์„ค์ •)
โ”‚   โ”œโ”€โ”€ index.css              # ์ „์—ญ CSS ์Šคํƒ€์ผ
โ”‚   โ””โ”€โ”€ index.jsx              # ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„์ž…์ 
โ”œโ”€โ”€ INTEGRATION_GUIDE.md       # ๋ฐฑ์—”๋“œ API ์—ฐ๋™ ๊ฐ€์ด๋“œ
โ”œโ”€โ”€ package.json               # ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ๋ฐ ์Šคํฌ๋ฆฝํŠธ
โ”œโ”€โ”€ tailwind.config.js         # Tailwind CSS ์„ค์ •
โ””โ”€โ”€ vite.config.ts             # Vite ์„ค์ •

๐Ÿ”ง ๊ธฐ์ˆ ์  ํŠน์ง•

React Query ๋„์ž… ์ด์œ 

  • ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ: API ํ˜ธ์ถœ, ์บ์‹ฑ, ๋™๊ธฐํ™”๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ๋ณต์žก๋„ ๊ฐ์†Œ
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”: ์ค‘๋ณต ์š”์ฒญ ๋ฐฉ์ง€, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ , ์ง€๋Šฅ์  ์บ์‹ฑ
  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜: ๋กœ๋”ฉ ์ƒํƒœ, ์—๋Ÿฌ ์ฒ˜๋ฆฌ, ์žฌ์‹œ๋„ ๋กœ์ง์„ ์ผ๊ด€๋˜๊ฒŒ ์ œ๊ณต
  • ์‹ค์‹œ๊ฐ„์„ฑ: ๊ฐ€๊ฒฉ ๋ฐ์ดํ„ฐ์˜ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ์™€ ๋™๊ธฐํ™”๊ฐ€ ์ค‘์š”ํ•œ ์‡ผํ•‘๋ชฐ ํŠน์„ฑ์— ์ ํ•ฉ

Custom Hooks (์ปค์Šคํ…€ ํ›…)

React 16.8์—์„œ ๋„์ž…๋œ ๊ธฐ๋Šฅ์œผ๋กœ, ์ปดํฌ๋„ŒํŠธ ๋กœ์ง์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ:

  • ์ƒํƒœ ๋กœ์ง ์žฌ์‚ฌ์šฉ: ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋™์ผํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๋กœ์ง ๊ณต์œ 
  • ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ: UI ๋ Œ๋”๋ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„
  • ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ: ๋กœ์ง์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ
  • ์ฝ”๋“œ ๊ฐ€๋…์„ฑ: ๋ณต์žกํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋” ์ž‘๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‹จ์œ„๋กœ ๋ถ„ํ•ด

๐Ÿค– AI ๊ฐ€๊ฒฉ ์˜ˆ์ธก ์‹œ์Šคํ…œ

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

  • ์‹ค์‹œ๊ฐ„ ์˜ˆ์ธก: OpenAI GPT ๋ชจ๋ธ์„ ํ™œ์šฉํ•œ ๊ฐ€๊ฒฉ ์˜ˆ์ธก
  • ์‹œ๊ฐํ™”: Chart.js ๊ธฐ๋ฐ˜์˜ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ฐจํŠธ
  • ํžˆ์Šคํ† ๋ฆฌ ๋ถ„์„: ๊ณผ๊ฑฐ ๊ฐ€๊ฒฉ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฏธ๋ž˜ ์˜ˆ์ธก
  • ์„ค๋ช… ์ œ๊ณต: AI๊ฐ€ ์˜ˆ์ธก ๊ทผ๊ฑฐ ์„ค๋ช… ์ œ๊ณต

๋ฐ์ดํ„ฐ ํ๋ฆ„

์ƒํ’ˆ ๊ฐ€๊ฒฉ ํžˆ์Šคํ† ๋ฆฌ โ†’ OpenAI API โ†’ AI ์˜ˆ์ธก ๊ฒฐ๊ณผ โ†’ Chart.js ์‹œ๊ฐํ™”

์ฐจํŠธ ๊ตฌ์„ฑ

  • ํŒŒ๋ž€์ƒ‰ ์‹ค์„ : ์‹ค์ œ ๊ฐ€๊ฒฉ ์ถ”์ด (๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ)
  • ๋นจ๊ฐ„์ƒ‰ ์ ์„ : AI ์˜ˆ์ธก ๊ฐ€๊ฒฉ (๋ฏธ๋ž˜ 4์ฃผ)
  • ํˆดํŒ: ๊ฐ€๊ฒฉ ์ •๋ณด ๋ฐ ์˜ˆ์ธก ๊ทผ๊ฑฐ ํ‘œ์‹œ

๐ŸŽจ ์ปค์Šคํ…€ ์ปฌ๋Ÿฌ ํ…Œ๋งˆ

  • Primary: #1a365d (๋‹คํฌ ๋ธ”๋ฃจ)
  • Secondary: #d69e2e (๊ณจ๋“œ)
  • Accent: #2d3748 (์ฐจ์ฝœ)
  • ํฐํŠธ: Open Sans

๐Ÿ”ง ๊ฐœ๋ฐœ ํ˜„ํ™ฉ

โœ… ์™„๋ฃŒ๋œ ๊ธฐ๋Šฅ

  • AI ๊ฐ€๊ฒฉ ์˜ˆ์ธก ์‹œ์Šคํ…œ
  • ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ
  • ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€
  • ๊ฐ€๊ฒฉ ๋น„๊ต ์ธํ„ฐํŽ˜์ด์Šค
  • Chart.js ๊ธฐ๋ฐ˜ ์‹œ๊ฐํ™”
  • ๋ฐฑ์—”๋“œ API ์—ฐ๋™ (์ธ์ฆ, ์–ด๋“œ๋ฏผ, ์ปค๋ฎค๋‹ˆํ‹ฐ)

๐Ÿšง ๊ฐœ๋ฐœ ์˜ˆ์ •

  • ํฌ๋กค๋ง ์‹œ์Šคํ…œ ๊ตฌ์ถ•
  • ์‹ค์‹œ๊ฐ„ ๊ฐ€๊ฒฉ ์—…๋ฐ์ดํŠธ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™
  • ์‹ค์ œ ์ƒํ’ˆ ๋ฐ์ดํ„ฐ ์ ์šฉ

๐Ÿ“– ์ƒ์„ธ ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ: INTEGRATION_GUIDE.md ์ฐธ์กฐ

About

๐Ÿ›’ Ju(้…’)piter - React์™€ Tailwind CSS๋ฅผ ๊ธฐ๋ฐ˜ ์Šค๋งˆํŠธ ์ฃผ๋ฅ˜ ๊ฐ€๊ฒฉ๋น„๊ต ํ”Œ๋žซํผ ํ”„๋ก ํŠธ์—”๋“œ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages