Skip to content

Problem-io/ProblemIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

212 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ธ Problem.io โ€” ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ํ€ด์ฆˆ ํ”Œ๋žซํผ

ProblemIO

  • Problem.io๋Š” ์ด๋ฏธ์ง€ ํ•œ ์žฅ์œผ๋กœ ์ง๊ด€์ ยท์‹œ๊ฐ์ ์ธ ํ€ด์ฆˆ๋ฅผ ๋งŒ๋“ค๊ณ  ํ’€ ์ˆ˜ ์žˆ๋Š” UGC ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.
  • Google Gemini ๊ธฐ๋ฐ˜์˜ ์ƒ์„ฑํ˜• AI(GenAI) ๊ธฐ์ˆ ์„ ๋„์ž…ํ•˜์—ฌ ํ€ด์ฆˆ ์ œ์ž‘ ๊ฒฝํ—˜์„ ํ˜์‹ ํ•˜๊ณ , ์ข‹์•„์š”ยทํŒ”๋กœ์šฐยท๋Œ“๊ธ€ ๋“ฑ SNSํ˜• ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ์ œ์ž‘์ž์™€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ (Key Features)

1) AI ์ž๋™ ์ธ๋„ค์ผ ์ƒ์„ฑ

  • Gemini 2.0 Flash ๋ชจ๋ธ ์—ฐ๋™
  • ํ€ด์ฆˆ ์ œ๋ชฉ๊ณผ ์„ค๋ช…๋งŒ ์ž…๋ ฅํ•˜๋ฉด AI๊ฐ€ ์ตœ์ ์˜ ์ธ๋„ค์ผ 2์žฅ์„ ์ฆ‰์‹œ ์ƒ์„ฑ (Cinematic/Vibrant ์Šคํƒ€์ผ)
  • ์‚ฌ์šฉ์ž๋Š” ๋งˆ์Œ์— ๋“œ๋Š” ์Šคํƒ€์ผ์„ ์„ ํƒํ•˜์—ฌ ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅ

2) ์ง๊ด€์ ์ธ ํ€ด์ฆˆ ์ œ์ž‘

  • ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐ ๋ณด๊ธฐ(๊ฐ๊ด€์‹) ์„ค์ •
  • ๋ณต์ˆ˜ ์ •๋‹ต ์ฒ˜๋ฆฌ ๋ฐ ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋ฐ˜์˜ ์•ˆ์ „ํ•œ ์ €์žฅ
  • ๊ณต๊ฐœ/๋น„๊ณต๊ฐœ ์„ค์ • ์ง€์›

3) ํ€ด์ฆˆ ํ’€์ด & ์ฆ‰์‹œ ํ”ผ๋“œ๋ฐฑ

  • ์ด๋ฏธ์ง€ ์ค‘์‹ฌ์˜ ๋ชฐ์ž…๊ฐ ์žˆ๋Š” UI
  • ์ •๋‹ต ์„ ํƒ ์‹œ ์ฆ‰์‹œ O/X ํ”ผ๋“œ๋ฐฑ ๋ฐ ํ•ด์„ค ์ œ๊ณต
  • ์ตœ์ข… ์ ์ˆ˜ ๋ฐ ์†Œ์š” ์‹œ๊ฐ„ ๊ธฐ๋ก

4) ์†Œ์…œ ์ปค๋ฎค๋‹ˆํ‹ฐ (SNS-like)

  • ์ข‹์•„์š” & ๋Œ“๊ธ€: ํ€ด์ฆˆ์— ๋Œ€ํ•œ ๋ฐ˜์‘๊ณผ ์˜๊ฒฌ ๊ณต์œ 
  • ํŒ”๋กœ์šฐ & ํ”ผ๋“œ: ๊ด€์‹ฌ ์žˆ๋Š” ์ œ์ž‘์ž๋ฅผ ํŒ”๋กœ์šฐํ•˜๊ณ  ์ƒˆ ํ€ด์ฆˆ๋ฅผ ํ”ผ๋“œ์—์„œ ํ™•์ธ
  • ๋งˆ์ดํŽ˜์ด์ง€: ๋‚ด๊ฐ€ ํ‘ผ ํ€ด์ฆˆ, ๋งŒ๋“  ํ€ด์ฆˆ, ํŒ”๋กœ์šฐ ๋‚ด์—ญ ๋“ฑ์„ ํ•œ๋ˆˆ์— ๊ด€๋ฆฌ

์•„ํ‚คํ…์ฒ˜ & ์Šคํƒ (Tech Stack)

System Architecture

Backend

  • Core: Spring Boot 3.5, JDK 17
  • Security: Spring Security + JWT (Stateless Authentication)
  • Persistence: MyBatis (Complex Query Control), MySQL
  • AI Service: Google Gemini 2.0 Flash (via GMS), Caffeine Cache (Temporary Image Storage)
  • Infra: AWS S3 (Image Storage), Google SMTP (Email Auth)

Frontend

  • Framework: Vue 3 + Vite
  • State Management: Pinia (Store)
  • UI Component: PrimeVue, Tailwind CSS (Custom)
  • Network: Axios (Interceptors for Auto-JWT Injection)

DB

DB_ERD

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

ProblemIO/
โ”œโ”€ frontend/       # Vue 3 + Vite Client
โ”‚  โ”œโ”€ src/api      # API Services (Axios)
โ”‚  โ”œโ”€ src/components
โ”‚  โ”‚  โ”œโ”€ layout    # Header, NavBar, Sidebar
โ”‚  โ”‚  โ”œโ”€ common    # Shared UI Components
โ”‚  โ”‚  โ”œโ”€ quiz      # Quiz Playing Widgets
โ”‚  โ”‚  โ””โ”€ comment   # Comment & Reply System
โ”‚  โ”œโ”€ src/views    # Page Routings
โ”‚  โ”‚  โ”œโ”€ auth      # Login / Register
โ”‚  โ”‚  โ”œโ”€ quiz      # List / Create / Solve / Result
โ”‚  โ”‚  โ”œโ”€ user      # Profile / MyPage
โ”‚  โ”‚  โ””โ”€ challenge # Ranking & Challenge
โ”‚  โ””โ”€ src/stores   # Pinia Stores (Auth, Quiz, User)
โ”œโ”€ backend/        # Spring Boot Server
โ”‚  โ”œโ”€ src/main/java/com/problemio
โ”‚  โ”‚  โ”œโ”€ ai       # Gemini Client & Thumbnail Service โœจ
โ”‚  โ”‚  โ”œโ”€ quiz     # Quiz CRUD & Like
โ”‚  โ”‚  โ”œโ”€ submission # Scoring & Ranking
โ”‚  โ”‚  โ”œโ”€ user     # Auth & Profile & Follow
โ”‚  โ”‚  โ””โ”€ global   # Config, Exception, Security, S3
โ”‚  โ””โ”€ resources/mapper # MyBatis XML Mappers
โ””โ”€ README.md       # Project Documentation

์‚ฌ์šฉ์ž ํ๋ฆ„

1. ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ (Authentication)

  1. ํšŒ์›๊ฐ€์ž…: ์ด๋ฉ”์ผ, ๋‹‰๋„ค์ž„, ๋น„๋ฐ€๋ฒˆํ˜ธ(๋ณต์žก๋„ ๊ฒ€์ฆ) ์ž…๋ ฅ ํ›„ ๊ฐ€์ž….
  2. ๋กœ๊ทธ์ธ: ๊ฐ€์ž…ํ•œ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜์—ฌ JWT(Access/Refresh) ํ† ํฐ ๋ฐœ๊ธ‰.
  3. ํ”„๋กœํ•„ ์„ค์ •: ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋‹‰๋„ค์ž„ ์ˆ˜์ • ๋ฐ ์•„๋ฐ”ํƒ€/ํ…Œ๋งˆ ์•„์ดํ…œ ์žฅ์ฐฉ.

2. AI ํ€ด์ฆˆ ์ œ์ž‘ (Creation Flow)

  1. ํ€ด์ฆˆ ๋งŒ๋“ค๊ธฐ ์ง„์ž…: ์ œ๋ชฉ๊ณผ ์„ค๋ช…์„ ์ž…๋ ฅ.
  2. AI ์ธ๋„ค์ผ ์ƒ์„ฑ: "AI ์ธ๋„ค์ผ ์ƒ์„ฑ" ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ, Gemini๊ฐ€ 2๊ฐ€์ง€ ์Šคํƒ€์ผ(Cinematic/Vibrant)์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ์•ˆ.
  3. ์ธ๋„ค์ผ ์„ ํƒ: ๋งˆ์Œ์— ๋“œ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ์—…๋กœ๋“œ.
  4. ๋ฌธ์ œ ์ถœ์ œ: ๋ฌธ์ œ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐ ์ •๋‹ต(๋ณต์ˆ˜ ๊ฐ€๋Šฅ) ์„ค์ • ํ›„ ์ตœ์ข… ๋ฐœํ–‰.

3. ํ€ด์ฆˆ ํ’€์ด ๋ฐ ์†Œ์…œ (Play & Social)

  1. ํ€ด์ฆˆ ํ’€์ด: ๋ฉ”์ธ ํ”ผ๋“œ์—์„œ ํ€ด์ฆˆ ์„ ํƒ -> ์ด๋ฏธ์ง€ ํ™•์ธ ํ›„ ์ •๋‹ต ์ž…๋ ฅ -> ์ฆ‰์‹œ ์ฑ„์ (O/X).
  2. ๊ฒฐ๊ณผ ํ™•์ธ: ๋ชจ๋“  ๋ฌธํ•ญ ํ’€์ด ํ›„ ์ตœ์ข… ์ ์ˆ˜์™€ ์†Œ์š” ์‹œ๊ฐ„ ํ™•์ธ.
  3. ์†Œ์…œ ์ƒํ˜ธ์ž‘์šฉ: "์ข‹์•„์š”" ํด๋ฆญ ๋ฐ ๋Œ“๊ธ€ ์ž‘์„ฑ์œผ๋กœ ์ œ์ž‘์ž์™€ ์†Œํ†ต.
  4. ํŒ”๋กœ์šฐ: ๊ด€์‹ฌ ์žˆ๋Š” ์ œ์ž‘์ž๋ฅผ ํŒ”๋กœ์šฐํ•˜์—ฌ ํ”ผ๋“œ ๊ตฌ๋….

4. ์ฑŒ๋ฆฐ์ง€ ๋ฐ ๋žญํ‚น (Challenge & Competition)

  1. ์ฑŒ๋ฆฐ์ง€ ์ฐธ์—ฌ: ์ง„ํ–‰ ์ค‘์ธ ํƒ€์ž„์–ดํƒ ์ฑŒ๋ฆฐ์ง€ ์ž…์žฅ.
  2. ๊ฒฝ์Ÿ: ์ œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ๋น ๋ฅด๊ฒŒ ์ •๋‹ต ๋งžํžˆ๊ธฐ.
  3. ๋žญํ‚น ํ™•์ธ: ์ ์ˆ˜ > ์‹œ๊ฐ„ > ์ œ์ถœ์ผ์‹œ ์ˆœ์œผ๋กœ ์‚ฐ์ •๋œ ์‹ค์‹œ๊ฐ„ ์ˆœ์œ„ํ‘œ(Leaderboard) ํ™•์ธ.

5. ๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ (Admin - Optional)

  1. ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ: ๋ถ€์ ์ ˆํ•œ ํ€ด์ฆˆ ์ˆจ๊น€(Hide) ์ฒ˜๋ฆฌ.
  2. ์ฑŒ๋ฆฐ์ง€ ์ƒ์„ฑ: ๊ธฐ์กด ํ€ด์ฆˆ๋ฅผ ์„ ํƒํ•˜์—ฌ ๊ธฐ๊ฐ„ ํ•œ์ • ์ฑŒ๋ฆฐ์ง€ ์ด๋ฒคํŠธ ๊ฐœ์„ค.
  3. ๋Œ“๊ธ€ ๊ด€๋ฆฌ: ์•…์„ฑ ๋Œ“๊ธ€ ์‚ญ์ œ ์กฐ์น˜.

์‹ค์ œ ์„œ๋น„์Šค ํ™”๋ฉด

1. ๋ฉ”์ธ ํ™”๋ฉด

  • ๋‹คํฌ ๋ชจ๋“œ Home_Dark
  • ๋ผ์ดํŠธ ๋ชจ๋“œ Home_Light
  • ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ Sign-Up and Login

2. ๋งˆ์ดํŽ˜์ด์ง€

  • ๋งˆ์ดํŽ˜์ด์ง€ ์ง„์ž… ๋ฐ ์œ ์ €๋ณ„ ํ…Œ๋งˆ ์„ค์ • My_Page_Theme_Change

3. ํ€ด์ฆˆ ์ œ์ž‘

  • AI ๊ธฐ๋ฐ˜ ๋‚˜๋งŒ์˜ ์ธ๋„ค์ผ ์ œ์ž‘
    AI_Thumbnail

  • ํ€ด์ฆˆ ์ œ์ž‘ Quiz_Create Quiz_Editor

4. ํ€ด์ฆˆ ์ง„์ž… ๋ฐ ํ’€๊ธฐ

Quiz_Play

5. ๋Œ“๊ธ€ ์ž‘์„ฑ

Comment

6. ๋žญํ‚น

Ranking

7. ๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ

Admin

8. ์ฑŒ๋ฆฐ์ง€

  • ํƒ€์ž„์–ดํƒ Challenge

ํšŒ๊ณ  ๋ฐ ์ถ”ํ›„ ๊ฐœ์„  ์‚ฌํ•ญ

๊น€์˜๊ทœ

  • DB ์„ค๊ณ„ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ฃผ๋„
  • Mono Repo ๊ธฐ๋ฐ˜ Front/Back ์ „๋ฐ˜ ๊ฐœ๋ฐœ ์ฐธ์—ฌ
  • Quiz ์ƒ์„ฑยท์ œ์ถœยท์ฑ„์  ๋กœ์ง ๋ฐ ๋น„ํšŒ์› ํ”Œ๋ ˆ์ด/๋Œ“๊ธ€ ํ”Œ๋กœ์šฐ ๊ตฌํ˜„
  • ์‹ค์‹œ๊ฐ„ ๋žญํ‚น ์‹œ์Šคํ…œ ์„ค๊ณ„ยท๊ตฌํ˜„
  • AI ๊ธฐ๋ฐ˜ ํ€ด์ฆˆ ์ธ๋„ค์ผ ์ƒ์„ฑ ๊ธฐ๋Šฅ ๋„์ž…
  • ์„œ๋น„์Šค ์ „๋ฐ˜ Light/Dark ํ…Œ๋งˆ UI ์‹œ์Šคํ…œ ๊ตฌํ˜„

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋А๋‚€ ์ ์€ ๊ธฐ์ˆ  ์„ ํƒ์ด ๊ณง ์„ค๊ณ„ ์‚ฌ๊ณ ๋ฐฉ์‹์„ ๋ฐ”๊พผ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.
์ด์ „๊นŒ์ง€๋Š” JPA ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•ด์™”๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ์ฒด ์ค‘์‹ฌ ์„ค๊ณ„์™€ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘, ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์˜์กดํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์ด ์ต์ˆ™ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” MyBatis๋ฅผ ์ฒ˜์Œ์œผ๋กœ ๋ณธ๊ฒฉ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฟผ๋ฆฌ ํ•œ ์ค„์ด ๊ณง ์„ฑ๋Šฅ๊ณผ ์ง๊ฒฐ๋˜๋Š” ํ™˜๊ฒฝ์„ ์ง์ ‘ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
DB ์„ค๊ณ„์™€ ์ธ๋ฑ์Šค ์ „๋žต์„ ๋จผ์ € ๊ณ ๋ฏผํ•˜์ง€ ์•Š์œผ๋ฉด ์กฐํšŒ ์„ฑ๋Šฅ์ด ์ฆ‰์‹œ ๋ฌธ์ œ๋กœ ๋“œ๋Ÿฌ๋‚ฌ๊ณ , ์ด๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ์ดํ„ฐ ํ๋ฆ„๊ณผ ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ณ„ํš์„ ๊นŠ์ด ์ดํ•ดํ•˜๋ ค๋Š” ํƒœ๋„๋กœ ์ด์–ด์กŒ๋‹ค. ํŠนํžˆ Quiz ์ œ์ถœยท์ฑ„์ , ์‹ค์‹œ๊ฐ„ ๋žญํ‚น๊ณผ ๊ฐ™์ด ํŠธ๋ž˜ํ”ฝ์ด ์ง‘์ค‘๋˜๋Š” ์˜์—ญ์—์„œ๋Š” JPA์˜ ์ถ”์ƒํ™”๋ณด๋‹ค MyBatis์˜ ๋ช…์‹œ์„ฑ์ด ๋” ํฐ ์žฅ์ ์œผ๋กœ ๋А๊ปด์กŒ๋‹ค.
๋˜ํ•œ Mono Repo ํ™˜๊ฒฝ์—์„œ ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ํ•จ๊ป˜ ๋‹ค๋ฃจ๋ฉฐ, ๋‹จ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋„˜์–ด ๋น„ํšŒ์› ํ”Œ๋กœ์šฐ, ํ…Œ๋งˆ ์‹œ์Šคํ…œ, AI ๊ธฐ๋Šฅ ๋„์ž…๊นŒ์ง€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ „๋ฐ˜์„ ๊ณ ๋ คํ•œ ๊ฐœ๋ฐœ์˜ ์ค‘์š”์„ฑ์„ ์ฒด๊ฐํ–ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๋‹จ์ˆœํžˆ ๊ธฐ์ˆ ์„ ์ ์šฉํ•œ ๊ฒฝํ—˜์ด ์•„๋‹ˆ๋ผ, ์™œ ์ด ๊ธฐ์ˆ ์„ ์„ ํƒํ•ด์•ผ ํ•˜๋Š”์ง€ ์Šค์Šค๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ์ „ํ™˜์ ์ด์—ˆ๋‹ค.

์ตœ์œคํ˜

  • Front/Back ๊ธฐ์ดˆ ๊ตฌ์กฐ ์„ค๊ณ„
  • Mono Repo ๊ธฐ๋ฐ˜ Front/Back ์ „๋ฐ˜ ๊ฐœ๋ฐœ ์ฐธ์—ฌ
  • User / Admin / Challenge / Follow ๋“ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์ด๋ฉ”์ผ ์ธ์ฆ ๊ธฐ๋ฐ˜ ํšŒ์›๊ฐ€์ž…ยท๋กœ๊ทธ์ธ ๊ตฌํ˜„
  • Admin ํŽ˜์ด์ง€ ๋ฐ ์‚ฌ์šฉ์ž UI(Popover, My Page) ๊ตฌํ˜„
  • ์ฑŒ๋ฆฐ์ง€ ๋ชจ๋“œ ๋ฐ ์ฑŒ๋ฆฐ์ง€ ๋žญํ‚น ํ‘œ์‹œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฐ€์žฅ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ๋ถ€๋ถ„์€ JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ๊ตฌ์กฐ๋ฅผ ์‹ค์ œ ์„œ๋น„์Šค ํ๋ฆ„์— ์ ์šฉํ•ด ๋ณธ ๊ฒฝํ—˜์ด์—ˆ๋‹ค.
๋‹จ์ˆœํžˆ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, ์ด๋ฉ”์ผ ์ธ์ฆ์„ ํฌํ•จํ•œ ํšŒ์›๊ฐ€์ž… ๋‹จ๊ณ„๋ถ€ํ„ฐ ํ† ํฐ ๋ฐœ๊ธ‰, ์ธ์ฆ ์ƒํƒœ ์œ ์ง€๊นŒ์ง€ ์ „ ๊ณผ์ •์„ ์„ค๊ณ„ํ•˜๋ฉฐ ์ธ์ฆ ๋กœ์ง์ด ์„œ๋น„์Šค ์ „๋ฐ˜์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
ํŠนํžˆ Front์™€ Back์„ ํ•จ๊ป˜ ๋‹ค๋ฃจ๋Š” Mono Repo ํ™˜๊ฒฝ์—์„œ, ์ธ์ฆ ์ƒํƒœ์— ๋”ฐ๋ผ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ๊ณผ ํ™”๋ฉด์ด ๋‹ฌ๋ผ์ง€๋Š” ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋ณด์•ˆ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋™์‹œ์— ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๋ฐฐ์› ๋‹ค.
๋˜ํ•œ Admin, Challenge, Follow์™€ ๊ฐ™์€ ๋„๋ฉ”์ธ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ ๊ถŒํ•œ์— ๋”ฐ๋ฅธ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ์˜ ์ค‘์š”์„ฑ์„ ๋А๊ผˆ๊ณ , JWT๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ธ์ฆ ์ •๋ณด๊ฐ€ ๊ฐ ๋„๋ฉ”์ธ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์กฐ๋ฅผ ๋งž์ถ”๋Š” ๊ณผ์ •์ด ์˜๋ฏธ ์žˆ์—ˆ๋‹ค.
์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๋‹จ์ˆœํ•œ ๋กœ๊ทธ์ธ ์ˆ˜๋‹จ์ด ์•„๋‹Œ, ์„œ๋น„์Šค ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ๊ด€ํ†ตํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ๋กœ ๋ฐ”๋ผ๋ณด๋Š” ์‹œ๊ฐ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ๋‹ค.

ํ–ฅํ›„ ๊ณ„ํš

  • ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง•/์••์ถ•์œผ๋กœ ๋กœ๋”ฉ ์†๋„ ๊ฐœ์„ 

  • WebSocket์„ ์ด์šฉํ•œ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ๋ฐ ๋žญํ‚น ํ™˜๊ฒฝ ๊ฐœ์„ 

  • ์ƒ์„ฑํ˜• AI๋ฅผ ์ด์šฉํ•œ ํ€ด์ฆˆ ์ž๋™ ์ƒ์„ฑ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

  • Docker๋ฅผ ํ™œ์šฉํ•œ ์ƒˆ๋กœ์šด ์•„ํ‚คํ…์ฒ˜ ๋„์ž…

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors