Skip to content

Emotion-Storage/mooi-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

441 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Emotion Storage Server

๊ฐ์ • ๊ธฐ๋ก, ๋Œ€ํ™”, ๋ฆฌํฌํŠธ, ํƒ€์ž„์บก์А ๋“ฑ ์‚ฌ์šฉ์ž ๊ฐ์ • ๊ฒฝํ—˜์„ ๋‹ค๋ฃจ๋Š” Mooi ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. Spring Boot ๊ธฐ๋ฐ˜์œผ๋กœ REST API, ์ธ์ฆ, ๋ฐฐ์น˜์„ฑ ์ž‘์—…, WebSocket ์—ฐ๋™, ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ตฌ์„ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์ˆ  ์Šคํƒ

  • Java 17
  • Spring Boot 3.4
  • Spring Web
  • Spring Data JPA
  • Spring Security / OAuth2
  • JWT
  • MySQL
  • PostgreSQL
  • Redis
  • Flyway
  • Swagger(OpenAPI)
  • WebSocket
  • Gradle

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

  • ์†Œ์…œ ๋กœ๊ทธ์ธ ๋ฐ ์ธ์ฆ ์ฒ˜๋ฆฌ
  • ๊ฐ์ • ๋Œ€ํ™” ๋ฐ ๋ถ„์„
  • ์ผ๊ฐ„ ๋ฆฌํฌํŠธ ๋ฐ ์บ˜๋ฆฐ๋” ์กฐํšŒ
  • ํƒ€์ž„์บก์А ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ
  • ๋งˆ์ดํŽ˜์ด์ง€, ์•Œ๋ฆผ, ์ถœ์„ ๊ธฐ๋Šฅ

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

src/main/java/com/example/emotion_storage
โ”œโ”€โ”€ attendance
โ”œโ”€โ”€ calendar
โ”œโ”€โ”€ chat
โ”œโ”€โ”€ global
โ”œโ”€โ”€ home
โ”œโ”€โ”€ mypage
โ”œโ”€โ”€ notification
โ”œโ”€โ”€ report
โ”œโ”€โ”€ timecapsule
โ””โ”€โ”€ user
  • global: ๊ณตํ†ต ์‘๋‹ต, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ๋ณด์•ˆ, ํ•„ํ„ฐ, ์„ค์ •, ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • user: ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ์‚ฌ์šฉ์ž ์ธ์ฆ/์ธ๊ฐ€
  • chat: ๊ฐ์ • ๋Œ€ํ™”, ๋ถ„์„, WebSocket ์—ฐ๋™
  • report: ์ผ๊ฐ„ ๋ฆฌํฌํŠธ ๊ด€๋ จ ๊ธฐ๋Šฅ
  • timecapsule: ํƒ€์ž„์บก์А ๋„๋ฉ”์ธ ๊ธฐ๋Šฅ

์‹คํ–‰ ํ™˜๊ฒฝ

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Java 17
  • Docker / Docker Compose
  • .env ํŒŒ์ผ

ํ™˜๊ฒฝ ์„ค์ •

๊ธฐ๋ณธ ํ”„๋กœํ•„์€ local์ž…๋‹ˆ๋‹ค.

  • local: MySQL ๊ธฐ๋ฐ˜ ๋กœ์ปฌ ์‹คํ–‰
  • postgres-local: PostgreSQL ๊ธฐ๋ฐ˜ ๋กœ์ปฌ ์‹คํ–‰

๋กœ์ปฌ ์‹คํ–‰ ์‹œ ์˜ˆ์‹œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜:

MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=
MYSQL_USER=
MYSQL_PASSWORD=
POSTGRES_DB=
POSTGRES_USER=
POSTGRES_PASSWORD=
REDIS_PORT=6380
JWT_SECRET=
ACCESS_TOKEN_EXPIRATION_MINUTES=
REFRESH_TOKEN_EXPIRATION_DAYS=
GOOGLE_CLIENT_IDS=
AI_WEBSOCKET_URL=ws://localhost:8000/ws/chat
AI_SERVER_BASE_URL=http://localhost:8000
DISCORD_ERROR_WEBHOOK_URL=

๋กœ์ปฌ ์ธํ”„๋ผ ์‹คํ–‰

docker compose -f docker-compose.local.yml up -d
  • MySQL: 3308
  • PostgreSQL: 5433
  • Redis: 6380

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

./gradlew bootRun

PostgreSQL ๊ธฐ์ค€์œผ๋กœ ๋กœ์ปฌ ์‹คํ–‰ํ•˜๋ ค๋ฉด:

SPRING_PROFILES_ACTIVE=postgres-local ./gradlew bootRun

ํ…Œ์ŠคํŠธ ์‹คํ–‰

./gradlew test

API ๋ฌธ์„œ

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

  • /swagger-ui/index.html

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

Flyway๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ์€ src/main/resources/db/migration ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์‚ฌํ•ญ

  • ๊ธฐ๋ณธ ํ™œ์„ฑ ํ”„๋กœํ•„์€ local์ž…๋‹ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ๋Š” Asia/Seoul ํƒ€์ž„์กด ๊ธฐ์ค€์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • AI ์„œ๋ฒ„ ๋ฐ OAuth ๊ด€๋ จ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์—†์œผ๋ฉด ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ ์ •์ƒ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

About

๐Ÿ“ฎ ๊ฐ์ •์ด ๋ชจ์ด๋Š” ๊ณณ, MOOI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages