Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Realtime Chat Platform

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ํ”Œ๋žซํผ. ์ €์žฅ์†Œ๋Š” ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

.
โ”œโ”€โ”€ backend/    Spring Boot 4 + Kotlin (REST API, JWT ์ธ์ฆ, MySQL/Redis)
โ””โ”€โ”€ frontend/   Vue 3 + Vite SPA

์‚ฌ์ „ ์š”๊ตฌ

  • JDK 17
  • Node.js 18+ (LTS ๊ถŒ์žฅ)
  • Docker / Docker Compose (MySQL ยท Redis ๊ธฐ๋™์šฉ)

Backend (backend/)

Spring Boot 4 + Kotlin. :8080์—์„œ ๋™์ž‘ํ•˜๋ฉฐ ์ธ์ฆ/ํšŒ์› REST API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

1. ์ธํ”„๋ผ ๊ธฐ๋™ (MySQL ยท Redis)

cd backend
cp .env.example .env   # ํ•„์š” ์‹œ ๊ฐ’ ์ˆ˜์ •
docker compose up -d

docker-compose.yml์ด MySQL 8.4(:3306)์™€ Redis 7.4(:6379)๋ฅผ ๋„์›๋‹ˆ๋‹ค.

2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰

cd backend
./gradlew bootRun

โ†’ http://localhost:8080

๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ(jar)๋กœ ์‹คํ–‰ํ•˜๋ ค๋ฉด:

cd backend
./gradlew build
java -jar build/libs/realtime-chat-platform-0.0.1-SNAPSHOT.jar

ํ™˜๊ฒฝ๋ณ€์ˆ˜

application.yaml์€ ์•„๋ž˜ ๊ฐ’์„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ด„ํ˜ธ๋Š” ๊ธฐ๋ณธ๊ฐ’).

๋ณ€์ˆ˜ ์„ค๋ช… ๊ธฐ๋ณธ๊ฐ’
MYSQL_HOST / MYSQL_PORT MySQL ์ ‘์† localhost / 3306
MYSQL_DATABASE DB ์ด๋ฆ„ rtchat
MYSQL_USER / MYSQL_PASSWORD DB ๊ณ„์ • rtchat / rtchatpassword
REDIS_HOST / REDIS_PORT Redis ์ ‘์† localhost / 6379
JWT_SECRET_KEY JWT ์„œ๋ช… ํ‚ค (๊ฐœ๋ฐœ์šฉ ๊ธฐ๋ณธ๊ฐ’ ๋‚ด์žฅ)
JWT_EXPIRATION ํ† ํฐ ๋งŒ๋ฃŒ(๋ถ„) 3000

MySQL/Redis ๊ด€๋ จ ๊ธฐ๋ณธ๊ฐ’์€ backend/.env.example ๋ฐ docker-compose.yml๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” API

๋ฉ”์„œ๋“œ ๊ฒฝ๋กœ ์„ค๋ช…
POST /member/sign-up ํšŒ์›๊ฐ€์ž…
POST /member/sign-in ๋กœ๊ทธ์ธ โ†’ JWT ํ† ํฐ ๋ฐœ๊ธ‰
GET /member/list ํšŒ์› ๋ชฉ๋ก (์ธ์ฆ ํ•„์š”, Authorization: Bearer <token>)

CORS๋Š” http://localhost:3000(ํ”„๋ก ํŠธ์—”๋“œ dev ์„œ๋ฒ„)๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.


Frontend (frontend/)

Vue 3 + Vite SPA. :3000์—์„œ ๋™์ž‘ํ•˜๋ฉฐ ๋ฐฑ์—”๋“œ(:8080) API์— ์—ฐ๋™๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰

cd frontend
npm install
npm run dev

โ†’ http://localhost:3000

ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ / ๋ฏธ๋ฆฌ๋ณด๊ธฐ:

cd frontend
npm run build     # dist/ ์ƒ์„ฑ
npm run preview

ํ™˜๊ฒฝ๋ณ€์ˆ˜

frontend/.env

VITE_API_BASE_URL=http://localhost:8080

ํ™”๋ฉด / ํ๋ฆ„

  • /sign-up ํšŒ์›๊ฐ€์ž… โ†’ POST /member/sign-up
  • /sign-in ๋กœ๊ทธ์ธ โ†’ POST /member/sign-in, ๋ฐ›์€ token์„ localStorage์— ์ €์žฅ
  • /members ํšŒ์›๋ชฉ๋ก โ†’ GET /member/list (axios ์ธํ„ฐ์…‰ํ„ฐ๊ฐ€ Authorization: Bearer <token> ์ž๋™ ์ฒจ๋ถ€)

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ frontend/README.md ์ฐธ๊ณ .


๋น ๋ฅธ ์‹œ์ž‘ (์ „์ฒด)

# 1) ๋ฐฑ์—”๋“œ ์ธํ”„๋ผ
cd backend && cp .env.example .env && docker compose up -d

# 2) ๋ฐฑ์—”๋“œ (์ƒˆ ํ„ฐ๋ฏธ๋„)
cd backend && ./gradlew bootRun

# 3) ํ”„๋ก ํŠธ์—”๋“œ (์ƒˆ ํ„ฐ๋ฏธ๋„)
cd frontend && npm install && npm run dev

์ดํ›„ http://localhost:3000 ์ ‘์†.

About

๐Ÿ’ปWebSocket ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์„ ์ตํžˆ๊ธฐ ์œ„ํ•œ ์ฑ„ํŒ… ํ”Œ๋žซํผ ํ•™์Šต ์ €์žฅ์†Œ

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages