Skip to content

DRS-SingSongGame/SingSongGame-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SingSong Game Backend

์‹ค์‹œ๊ฐ„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ๋…ธ๋ž˜ ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„

Spring Boot ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ๊ฒŒ์ž„ ์„œ๋ฒ„


๐Ÿ”— Links


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

๐ŸŽฎ ์‹ค์‹œ๊ฐ„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„

๋‹ค์–‘ํ•œ ๊ฒŒ์ž„ ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์‹œ์Šคํ…œ

๐Ÿ† ์‹ค์‹œ๊ฐ„ ์ ์ˆ˜ ์‹œ์Šคํ…œ & ๋žญํ‚น

  • Glicko ๋ ˆ์ดํŒ… ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์˜ MMR ๊ณ„์‚ฐ
  • ํ‹ฐ์–ด ์‹œ์Šคํ…œ (์ƒˆ๋‚ด๊ธฐ ~ ์ „์„ค)
  • ๋น ๋ฅธ ์ •๋‹ต์œผ๋กœ ๋†’์€ ์ ์ˆ˜ ํš๋“

๐Ÿ’ฌ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์‹œ์Šคํ…œ

  • ๋กœ๋น„ ์ฑ„ํŒ…: ์ „์ฒด ์‚ฌ์šฉ์ž ๋Œ€์ƒ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
  • ๋ฐฉ ์ฑ„ํŒ…: ๊ฒŒ์ž„ ๋ฐฉ ๋‚ด ํ”Œ๋ ˆ์ด์–ด ๊ฐ„ ์ฑ„ํŒ…
  • ๊ฒŒ์ž„ ์ค‘ ์ฑ„ํŒ…: ๊ฒŒ์ž„ ์ง„ํ–‰ ์ค‘ ์‹ค์‹œ๊ฐ„ ์†Œํ†ต

๐ŸŽฒ ๋น ๋ฅธ ๋งค์นญ ์‹œ์Šคํ…œ

MMR ๊ธฐ๋ฐ˜ ์ž๋™ ๋งค์นญ์œผ๋กœ ๋น„์Šทํ•œ ์‹ค๋ ฅ์˜ ํ”Œ๋ ˆ์ด์–ด๋“ค๊ณผ ๊ฒŒ์ž„

๐Ÿ” OAuth2 ์ธ์ฆ

์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ํ†ตํ•œ ๊ฐ„ํŽธํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ

๐ŸŽฏ ๊ฒŒ์ž„ ๋ชจ๋“œ

ํ‚ค์‹ฑ์œ : ํ‚ค์›Œ๋“œ์— ๋งž๋Š” ๋…ธ๋ž˜๋ฅผ 10์ดˆ๊ฐ„ ๋ถˆ๋Ÿฌ์„œ ์ ์ˆ˜๋ฅผ ํš๋“ํ•˜๋Š” ๊ฒŒ์ž„

๋žœ๋ค ๋…ธ๋ž˜ ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„: ํ‚ค์›Œ๋“œ์— ๋งž๋Š” ๋žœ๋ค์˜ ๋…ธ๋ž˜๋ฅผ ์žฌ์ƒํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๋งž์ถ”๋Š” ๊ฒŒ์ž„

AI TTS ๊ฒŒ์ž„: TTS๊ฐ€ ์ฝ์–ด์ฃผ๋Š” ๊ฐ€์‚ฌ๋กœ ๋…ธ๋ž˜ ์ œ๋ชฉ ๋งž์ถ”๊ธฐ


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

Back-end

Spring Boot Spring Security Spring Data JPA FastAPI

Database

MySQL Redis

External Services

Google Kakao OAuth2 ACR CLOUD

DevOps

AWS Docker Gradle


๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ

ํ™˜๊ฒฝ ์š”๊ตฌ์‚ฌํ•ญ

  • Java 17+
  • MySQL 8.0+
  • Redis 6.0+

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

# ๋ ˆํฌ์ง€ํ† ๋ฆฌ ํด๋ก 
git clone https://github.com/DRS-SingSongGame/SingSongGame-BE.git
cd SingSongGame-BE

# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (.env ํŒŒ์ผ ์ƒ์„ฑ, ๋ฐฐํฌ ์‹œ์—๋Š” Github Secrets ์‚ฌ์šฉ)
JWT_SECRET_KEY=your-jwt-secret-key
KAKAO_CLIENT_ID=your-kakao-client-id
KAKAO_CLIENT_SECRET=your-kakao-client-secret
DB_URL=jdbc:mysql://localhost:3306/singsong
DB_USERNAME=your-db-username
DB_PASSWORD=your-db-password
REDIS_HOST=localhost
REDIS_PORT=6379

# ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ
./gradlew build

# ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰
./gradlew bootRun

Docker๋กœ ์‹คํ–‰

# Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰
docker build -t singsong-backend .
docker run -p 8080:8080 singsong-backend

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

src/main/java/SingSongGame/BE/
โ”œโ”€โ”€ auth/                    # OAuth2 ์ธ์ฆ ์‹œ์Šคํ…œ
โ”œโ”€โ”€ chat/                    # ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์‹œ์Šคํ…œ
โ”œโ”€โ”€ in_game/                 # ๊ฒŒ์ž„ ๋กœ์ง ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ
โ”œโ”€โ”€ quick_match/             # ๋น ๋ฅธ ๋งค์นญ ์‹œ์Šคํ…œ
โ”œโ”€โ”€ room/                    # ๊ฒŒ์ž„ ๋ฐฉ ๊ด€๋ฆฌ
โ”œโ”€โ”€ song/                    # ๋…ธ๋ž˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
โ”œโ”€โ”€ user/                    # ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ
โ”œโ”€โ”€ ai_game/                 # AI TTS ๊ฒŒ์ž„ ๋ชจ๋“œ
โ”œโ”€โ”€ online/                  # ์˜จ๋ผ์ธ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ
โ”œโ”€โ”€ redis/                   # Redis ๊ตฌ๋…์ž ๋ฐ ์„ค์ •
โ”œโ”€โ”€ common/                  # ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ
โ”œโ”€โ”€ config/                  # ์Šคํ”„๋ง ์„ค์ •
โ””โ”€โ”€ exception/               # ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๐ŸŽฎ ๊ฒŒ์ž„ ํ”Œ๋กœ์šฐ

1. ์‚ฌ์šฉ์ž ์ธ์ฆ

์นด์นด์˜ค ๋กœ๊ทธ์ธ โ†’ JWT ํ† ํฐ ๋ฐœ๊ธ‰ โ†’ ์‚ฌ์šฉ์ž ์„ธ์…˜ ์ƒ์„ฑ

2. ๊ฒŒ์ž„ ๋งค์นญ

๋น ๋ฅธ ๋งค์นญ ์š”์ฒญ โ†’ MMR ๊ธฐ๋ฐ˜ ๋งค์นญ โ†’ ๊ฒŒ์ž„ ๋ฐฉ ์ƒ์„ฑ โ†’ ํ”Œ๋ ˆ์ด์–ด ๋ฐฐ์น˜

3. ๊ฒŒ์ž„ ์ง„ํ–‰

๊ฒŒ์ž„ ์‹œ์ž‘ โ†’ ๋ฌธ์ œ ์ถœ์ œ โ†’ ์ •๋‹ต ์ œ์ถœ โ†’ ์ ์ˆ˜ ๊ณ„์‚ฐ โ†’ ๋‹ค์Œ ๋ฌธ์ œ

4. ๊ฒŒ์ž„ ์ข…๋ฃŒ

์ตœ์ข… ์ ์ˆ˜ ๊ณ„์‚ฐ โ†’ MMR ์—…๋ฐ์ดํŠธ โ†’ ํ‹ฐ์–ด ๋ณ€๋™ โ†’ ๊ฒฐ๊ณผ ์ €์žฅ

๐Ÿ“š API ๋ฌธ์„œ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ›„ ๋‹ค์Œ URL์—์„œ API ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • Swagger UI: http://localhost:8080/api/swagger-ui.html

๐Ÿงช ํ…Œ์ŠคํŠธ

# ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰
./gradlew test

# ํŠน์ • ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์‹คํ–‰
./gradlew test --tests "TestClassName"

๐ŸŒ ๋ฐฐํฌ

Production ํ™˜๊ฒฝ ์„ค์ •

# Production ํ”„๋กœํŒŒ์ผ๋กœ ์‹คํ–‰
java -jar -Dspring.profiles.active=prod build/libs/BE-0.0.1-SNAPSHOT.jar

๐Ÿ‘ฅ ํŒ€ ์ •๋ณด

Team DRS

์ด ํ”„๋กœ์ ํŠธ๋Š” ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ 8๊ธฐ Team DRS์—์„œ ๊ฐœ๋ฐœํ•œ ์‹ค์‹œ๊ฐ„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๋…ธ๋ž˜ ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5