Skip to content

TEAM-ROMROM/RomRom-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

๐Ÿš€ RomRom-BE - ์ฐจ์„ธ๋Œ€ ๋ชจ๋“ˆํ˜• ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐฑ์—”๋“œ ์†”๋ฃจ์…˜

Version Build Status License Java Spring Boot

์ตœ์‹  ๋ฒ„์ „ : v1.1.20 (2025-12-02)

๐Ÿ”— ์ „์ฒด ๋ฒ„์ „ ๊ธฐ๋ก

๐Ÿ“‹ ๋ชฉ์ฐจ


โšก ํ”„๋กœ์ ํŠธ ํ•ต์‹ฌ ๊ฐ€์น˜

๐Ÿ›๏ธ ๊ฒฌ๊ณ ํ•œ ์•„ํ‚คํ…์ฒ˜

DDD + ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋กœ
๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žก์„ฑ ๊ด€๋ฆฌ

๐Ÿ“ˆ ํ™•์žฅ์„ฑ

๋ฉ€ํ‹ฐ๋ชจ๋“ˆ ๊ตฌ์กฐ๋กœ
๋ฌดํ•œํ•œ ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ

โšก ์‹ค์‹œ๊ฐ„ ํ†ต์‹ 

WebSocket + RabbitMQ๋กœ
์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง• ๊ตฌํ˜„

๐Ÿค– AI ํ†ตํ•ฉ

Vertex AI ๊ธฐ๋ฐ˜
์ง€๋Šฅํ˜• ์ถ”์ฒœ ์‹œ์Šคํ…œ

๐ŸŽฏ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

RomRom-BE๋Š” ํ˜„๋Œ€์ ์ธ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์ฐจ์„ธ๋Œ€ ๋ฐฑ์—”๋“œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)์™€ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์–ด ๋†’์€ ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•

  • โœ… ๋ชจ๋“ˆํ˜• ์„ค๊ณ„: 11๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๋„๋ฉ”์ธ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ
  • โœ… ์‹ค์‹œ๊ฐ„ ํ†ต์‹ : WebSocket + RabbitMQ ๊ธฐ๋ฐ˜ ์ฑ„ํŒ… ์‹œ์Šคํ…œ
  • โœ… AI ๊ธฐ๋ฐ˜ ์ถ”์ฒœ: Vertex AI๋ฅผ ํ™œ์šฉํ•œ ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ ์ถ”์ฒœ
  • โœ… ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: PostgreSQL + MongoDB + Redis ํ†ตํ•ฉ
  • โœ… ์™„๋ฒฝํ•œ ๋ณด์•ˆ: JWT + Spring Security ๊ธฐ๋ฐ˜ ์ธ์ฆ/์ธ๊ฐ€

๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

graph TB
    subgraph "Client Layer"
        WEB[Web Client]
        MOB[Mobile Client]
    end

    subgraph "API Gateway"
        GW[Spring Cloud Gateway]
    end

    subgraph "Application Layer"
        WEB_MODULE[RomRom-Web<br/>REST APIs]
        APP[RomRom-Application<br/>Use Cases]
    end

    subgraph "Domain Layer"
        AUTH[Auth Domain]
        MEMBER[Member Domain]
        ITEM[Item Domain]
        CHAT[Chat Domain]
        AI[AI Domain]
        NOTIF[Notification Domain]
    end

    subgraph "Infrastructure"
        PG[(PostgreSQL)]
        MG[(MongoDB)]
        RD[(Redis)]
        RMQ[RabbitMQ]
    end

    WEB --> GW
    MOB --> GW
    GW --> WEB_MODULE
    WEB_MODULE --> APP
    APP --> AUTH & MEMBER & ITEM & CHAT & AI & NOTIF
    AUTH & MEMBER & ITEM --> PG
    CHAT --> MG
    NOTIF --> RD
    CHAT --> RMQ
Loading

๐Ÿ“ฆ ๋ชจ๋“ˆ ๊ตฌ์กฐ ๋ฐ ์„ค๋ช…

๐Ÿ“Š ๋ชจ๋“ˆ ์˜์กด์„ฑ ๋งคํŠธ๋ฆญ์Šค

๋ชจ๋“ˆ๋ช… ํƒ€์ž… ์ฃผ์š” ๊ธฐ๋Šฅ ํ•ต์‹ฌ ๊ธฐ์ˆ  ์˜์กด ๋ชจ๋“ˆ
RomRom-Common ๐Ÿ”ง Core ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ Spring Boot, Swagger, QueryDSL -
RomRom-Domain-Member ๐Ÿ‘ฅ Domain ํšŒ์› ๊ด€๋ฆฌ, ์œ„์น˜ ์„œ๋น„์Šค JPA, PostGIS Common
RomRom-Domain-Auth ๐Ÿ” Domain JWT ์ธ์ฆ, ๋ณด์•ˆ Spring Security, JWT Common, Member
RomRom-Domain-Item ๐Ÿ“ฆ Domain ์ƒํ’ˆ, ๊ฑฐ๋ž˜, ์ข‹์•„์š” JPA, Hibernate Common, Member
RomRom-Domain-Chat ๐Ÿ’ฌ Domain ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… WebSocket, RabbitMQ, MongoDB Common, Auth, Item
RomRom-Domain-AI ๐Ÿค– Domain AI ์ถ”์ฒœ, ์ž„๋ฒ ๋”ฉ Vertex AI, PG Vector Common, Item
RomRom-Domain-Notification ๐Ÿ”” Domain ํ‘ธ์‹œ ์•Œ๋ฆผ FCM, Redis Common, Member
RomRom-Domain-Storage ๐Ÿ’พ Domain ํŒŒ์ผ ๊ด€๋ฆฌ FTP, SMB, S3 Common
RomRom-Domain-Report ๐Ÿšจ Domain ์‹ ๊ณ  ๊ด€๋ฆฌ JPA Common, Member, Item
RomRom-Application โš™๏ธ App ์œ ์Šค์ผ€์ด์Šค ์กฐ์ • Spring All Domains
RomRom-Web ๐ŸŒ Web REST API Spring MVC, WebSocket Application

๐Ÿ”— ๋ชจ๋“ˆ ์ƒ์„ธ ์„ค๋ช…

๐Ÿ”ง RomRom-Common (๊ณตํ†ต ๋ชจ๋“ˆ)

  • ์ฑ…์ž„: ๋ชจ๋“  ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ณตํ†ต ๊ธฐ๋Šฅ ์ œ๊ณต
  • ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ:
    • BaseEntity, BaseTimeEntity - JPA ์—”ํ‹ฐํ‹ฐ ๋ฒ ์ด์Šค
    • GlobalExceptionHandler - ํ†ตํ•ฉ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
    • SwaggerConfig - API ๋ฌธ์„œํ™” ์„ค์ •
    • FileService - FTP/SMB/S3 ํŒŒ์ผ ์ฒ˜๋ฆฌ
    • Suh Libraries ํ†ตํ•ฉ - ๋กœ๊น…, ๋žœ๋ค ์—”์ง„, API ๋กœ๊ทธ

๐Ÿ’ฌ RomRom-Domain-Chat (์ฑ„ํŒ… ๋„๋ฉ”์ธ) - NEW!

  • ์ฑ…์ž„: ์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง• ๋ฐ ์ฑ„ํŒ…๋ฐฉ ๊ด€๋ฆฌ
  • ์ฃผ์š” ๊ธฐ๋Šฅ:
    • WebSocket ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ 
    • RabbitMQ๋ฅผ ํ†ตํ•œ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋ง
    • MongoDB ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ์ง€ ์ €์žฅ
    • STOMP ํ”„๋กœํ† ์ฝœ ์ง€์›
  • ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ:
    • ChatRoom - ์ฑ„ํŒ…๋ฐฉ ์—”ํ‹ฐํ‹ฐ (PostgreSQL)
    • ChatMessage - ๋ฉ”์‹œ์ง€ ์—”ํ‹ฐํ‹ฐ (MongoDB)
    • WebSocketConfig - WebSocket ์„ค์ •
    • RabbitMqConfig - ๋ฉ”์‹œ์ง€ ํ ์„ค์ •

๐Ÿ’ก ํ•ต์‹ฌ ๊ธฐ๋Šฅ

๐ŸŽฏ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ ์„ค๋ช…
๐Ÿค– AI ๊ธฐ๋ฐ˜ ์ƒํ’ˆ ์ถ”์ฒœ Vertex AI๋ฅผ ํ™œ์šฉํ•œ ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ์œผ๋กœ ์‚ฌ์šฉ์ž ๋งž์ถคํ˜• ์ƒํ’ˆ ์ถ”์ฒœ
๐Ÿ’ฌ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… WebSocket + RabbitMQ ๊ธฐ๋ฐ˜์˜ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ
๐Ÿ“ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค PostGIS๋ฅผ ํ™œ์šฉํ•œ ์ง€๋ฆฌ ๊ณต๊ฐ„ ๊ฒ€์ƒ‰ ๋ฐ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ
๐Ÿ”” ํ‘ธ์‹œ ์•Œ๋ฆผ Firebase Cloud Messaging์„ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ์ „์†ก
๐Ÿ” ๋ณด์•ˆ ์ธ์ฆ JWT ํ† ํฐ ๊ธฐ๋ฐ˜์˜ Stateless ์ธ์ฆ ์‹œ์Šคํ…œ
๐Ÿ“Š ๊ฑฐ๋ž˜ ๊ด€๋ฆฌ ์ƒํ’ˆ ๋“ฑ๋ก, ๊ฑฐ๋ž˜ ์š”์ฒญ, ์ƒํƒœ ์ถ”์  ๋“ฑ ์™„๋ฒฝํ•œ ๊ฑฐ๋ž˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ

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

๐Ÿ“Š ๊ธฐ์ˆ  ์Šคํƒ ์ƒ์„ธ

์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ์ˆ  ์šฉ๋„ ๋ฐ ํŠน์ง•
๐ŸŽจ ํ”„๋ ˆ์ž„์›Œํฌ Spring Boot 3.4.x ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ
Spring Security ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ณด์•ˆ ๋ฐ ์ธ์ฆ/์ธ๊ฐ€
Spring Data JPA ORM ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ณ„์ธต
Spring WebSocket ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ 
๐Ÿ’พ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค PostgreSQL + PostGIS ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ + ์ง€๋ฆฌ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
MongoDB ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ (์ฑ„ํŒ… ๋ฉ”์‹œ์ง€) ์ €์žฅ
Redis ์บ์‹ฑ, ์„ธ์…˜ ๊ด€๋ฆฌ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ
PG Vector ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ ์ €์žฅ ๋ฐ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰
๐Ÿ”„ ๋ฉ”์‹œ์ง• RabbitMQ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค, ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ
STOMP WebSocket ๋ฉ”์‹œ์ง• ํ”„๋กœํ† ์ฝœ
FCM ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ ์•Œ๋ฆผ
๐Ÿค– AI/ML Google Vertex AI ํ…์ŠคํŠธ ์ž„๋ฒ ๋”ฉ, AI ๋ชจ๋ธ ์„œ๋น™
Hibernate Vector ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ ORM ๋งคํ•‘
์ž„๋ฒ ๋”ฉ ์„œ๋น„์Šค ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ ๋ฐ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜
๐Ÿ”ง ๊ฐœ๋ฐœ๋„๊ตฌ Gradle 8.x ๋ฉ€ํ‹ฐ๋ชจ๋“ˆ ๋นŒ๋“œ ๊ด€๋ฆฌ
Swagger/OpenAPI API ๋ฌธ์„œ ์ž๋™ ์ƒ์„ฑ
Flyway ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

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

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

  • Java 17+
  • Gradle 8.x
  • Docker & Docker Compose
  • PostgreSQL 14+
  • MongoDB 6+
  • Redis 7+
  • RabbitMQ 3.12+

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

# 1. ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/TEAM-ROMROM/RomRom-BE.git
cd RomRom-BE

# 2. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •
cp .env.example .env
# .env ํŒŒ์ผ ์ˆ˜์ •

# 3. ์ธํ”„๋ผ ์‹คํ–‰ (Docker Compose)
docker-compose up -d

# 4. ๋นŒ๋“œ
./gradlew clean build

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

๐Ÿ“š ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ

์ฃผ์š” ๋ฌธ์„œ

๊ฐœ๋ฐœ ๊ทœ์น™

  1. ๋ธŒ๋žœ์น˜ ์ „๋žต: Git Flow (main, develop, feature/, hotfix/)
  2. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€: Conventional Commits ๊ทœ์•ฝ ์ค€์ˆ˜
  3. ์ฝ”๋“œ ๋ฆฌ๋ทฐ: ๋ชจ๋“  PR์€ ์ตœ์†Œ 1๋ช… ์ด์ƒ์˜ ๋ฆฌ๋ทฐ ํ•„์š”
  4. ํ…Œ์ŠคํŠธ: ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ 80% ์ด์ƒ ์œ ์ง€

๐Ÿ“Š API ๋ฌธ์„œ

Swagger UI ์ ‘๊ทผ

ํ™˜๊ฒฝ URL
Production https://api.romrom.xyz/docs/swagger
Test https://api.test.romrom.xyz/docs/swagger
Local http://localhost:8080/docs/swagger

์ฃผ์š” API ์—”๋“œํฌ์ธํŠธ

๋„๋ฉ”์ธ ๊ฒฝ๋กœ ์„ค๋ช…
Auth /api/v1/auth/** ์ธ์ฆ/์ธ๊ฐ€ ๊ด€๋ จ
Member /api/v1/members/** ํšŒ์› ๊ด€๋ฆฌ
Item /api/v1/items/** ์ƒํ’ˆ ๊ด€๋ฆฌ
Chat /api/v1/chat/** ์ฑ„ํŒ… ๊ด€๋ฆฌ
WebSocket /ws WebSocket ์—ฐ๊ฒฐ
Notification /api/v1/notifications/** ์•Œ๋ฆผ ๊ด€๋ฆฌ

Made with โค๏ธ by TEAM-ROMROM

๐ŸŒ Website | ๐Ÿ“ง Contact | ๐Ÿ“– Documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5