Skip to content

Latest commit

ย 

History

146 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฌ FillMate - Backend

AI ๊ธฐ๋ฐ˜ ์˜ํ™” ํ•ด์„ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค
2025 MJU SW Contest ์ถœํ’ˆ์ž‘ | ๊ต๋‚ด ์ฐฝ์˜์ SWํ”„๋กœ๊ทธ๋žจ๊ฒฝ์ง„๋Œ€ํšŒ ์šฐ์ˆ˜์ƒ ์ˆ˜์ƒ

FillMate๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์˜ํ™”์˜ ์ˆจ๊ฒจ์ง„ ์˜๋ฏธ๋ฅผ ํƒ๊ตฌํ•˜๊ณ , AI ์ฑ—๋ด‡ "ํ•„๋ฆฌ" ์™€ ๋Œ€ํ™”ํ•˜๋ฉฐ ์˜ํ™” ํ•ด์„์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.


๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

์˜ํ™”๋ฅผ ๋ณธ ํ›„ ๊ถ๊ธˆํ–ˆ๋˜ ์žฅ๋ฉด, ๊ฐ๋…์˜ ์˜๋„, ์ˆจ๊ฒจ์ง„ ๋ฉ”์‹œ์ง€๋ฅผ AI์™€ ํ•จ๊ป˜ ํƒ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋“ค์€ ์ž์‹ ๋งŒ์˜ ํ•ด์„์„ ๊ณต์œ ํ•˜๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๊ด€์ ์„ ํ†ตํ•ด ์˜ํ™”๋ฅผ ๋” ๊นŠ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Œ€ ํšจ๊ณผ

  1. ์‚ฌ์šฉ์ž ์ฐธ์—ฌ์™€ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ โ€” ์˜ํ™”์— ๋Œ€ํ•œ ์ž์‹ ์˜ ํ•ด์„์„ ๊ณต์œ ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๊ด€์ ์˜ ํ•ด์„์„ ์ ‘ํ•˜๋ฉฐ ์ฐธ์—ฌ๊ฐ๊ณผ ๋งŒ์กฑ๊ฐ์„ ์ฆ๋Œ€
  2. AI ๊ธฐ๋ฐ˜ ๋Œ€ํ™”ํ˜• ์„œ๋น„์Šค โ€” ๊ถ๊ธˆํ•œ ์˜ํ™” ์žฅ๋ฉด์— ๋Œ€ํ•ด AI๊ฐ€ ์ฆ‰๊ฐ์ ์ธ ํ•ด์„์„ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐœ์ธ ๋งž์ถคํ˜• ํ•ด์„ ์ถ”์ฒœ ๋ฐ ์ž๋™ ์š”์•ฝ ๊ธฐ๋Šฅ ์ œ๊ณต
  3. ์˜ํ™”์˜ ์˜๋ฏธ ํƒ๊ตฌ โ€” ๋‹ค์–‘ํ•œ ๊ด€์ ์—์„œ ์˜ํ™”์˜ ์ˆจ๊ฒจ์ง„ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ์•„๋‚ด๋Š” ํ•ด์„์˜ ์žฌ๋ฏธ์™€ ๊นŠ์ด ์ œ๊ณต

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

๋ถ„๋ฅ˜ ๊ธฐ์ˆ 
Application Framework Spring Boot, FastAPI
Security & Auth Spring Security, JWT
Data & Relational DB MySQL, Amazon RDS
Cache & Session Redis
Streaming & Messaging Kafka
AI/LLM Orchestration LangChain
Container & Registry Docker, Amazon ECR
Compute & Hosting Amazon EC2
CI/CD GitHub Actions

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

AWS ์„œ๋ฒ„ ๊ตฌ์ถ•

Client โ†’ (SSL/TLS) โ†’ ALB โ†’ EC2 (Spring Boot + Kafka) โ†’ Amazon RDS
                              โ†“
                        EC2 (FastAPI + Redis)
  • HTTPS ๋ณด์•ˆ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ALB(Application Load Balancer) ์‚ฌ์šฉ
  • EC2 2๋Œ€ ๊ตฌ์„ฑ: Spring Boot ๊ธฐ๋ฐ˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ + FastAPI ๊ธฐ๋ฐ˜ AI ์„œ๋ฒ„
  • ๋ฐ์ดํ„ฐ ์ €์žฅ์€ Amazon RDS (MySQL) ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ

CI/CD ํŒŒ์ดํ”„๋ผ์ธ

Developer โ†’ GitHub (push) โ†’ GitHub Actions (run) โ†’ Docker (build) โ†’ ECR (push)
                                                                        โ†“
                                                                   EC2 (compose up)
  • GitHub push ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ GitHub Actions๊ฐ€ ์ž๋™์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ
  • Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  Amazon ECR์— ํ‘ธ์‹œ
  • EC2์—์„œ docker compose up์œผ๋กœ ์ž๋™ ๋ฐฐํฌ

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

src/main/java/com/example/sw_be/
โ”œโ”€โ”€ domain/
โ”‚   โ”œโ”€โ”€ aiChat/            # AI ์ฑ—๋ด‡ (ํ•„๋ฆฌ) ์ฑ„ํŒ… ๊ธฐ๋Šฅ
โ”‚   โ”‚   โ”œโ”€โ”€ controller/
โ”‚   โ”‚   โ”œโ”€โ”€ dto/
โ”‚   โ”‚   โ”œโ”€โ”€ entity/
โ”‚   โ”‚   โ”œโ”€โ”€ repository/
โ”‚   โ”‚   โ””โ”€โ”€ service/
โ”‚   โ”œโ”€โ”€ aiChatRoom/        # AI ์ฑ„ํŒ…๋ฐฉ ๊ด€๋ฆฌ
โ”‚   โ”‚   โ”œโ”€โ”€ controller/
โ”‚   โ”‚   โ”œโ”€โ”€ dto/
โ”‚   โ”‚   โ”œโ”€โ”€ entity/
โ”‚   โ”‚   โ”œโ”€โ”€ repository/
โ”‚   โ”‚   โ””โ”€โ”€ service/
โ”‚   โ”œโ”€โ”€ movie/             # ์˜ํ™” ์ •๋ณด ๊ด€๋ฆฌ
โ”‚   โ”‚   โ”œโ”€โ”€ controller/
โ”‚   โ”‚   โ”œโ”€โ”€ dto/
โ”‚   โ”‚   โ”œโ”€โ”€ entity/
โ”‚   โ”‚   โ”œโ”€โ”€ repository/
โ”‚   โ”‚   โ””โ”€โ”€ service/
โ”‚   โ””โ”€โ”€ user/              # ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ
โ”‚       โ”œโ”€โ”€ entity/
โ”‚       โ”œโ”€โ”€ repository/
โ”‚       โ””โ”€โ”€ service/
โ”œโ”€โ”€ global/
โ”‚   โ”œโ”€โ”€ common/            # ๊ณตํ†ต ์‘๋‹ต, ํŽ˜์ด์ง• ์œ ํ‹ธ
โ”‚   โ”œโ”€โ”€ config/            # ์„ค์ • ํด๋ž˜์Šค
โ”‚   โ””โ”€โ”€ security/          # Spring Security ์„ค์ •
โ””โ”€โ”€ SwBeApplication.java

๐Ÿ”— ์ฃผ์š” API

๐ŸŽฌ Movie API

Method Endpoint ์„ค๋ช…
GET /api/movie/list ์˜ํ™” ๋ฆฌ์ŠคํŠธ ์กฐํšŒ (ํŽ˜์ด์ง•)
GET /api/movie/{id} ์˜ํ™” ์ƒ์„ธ ์กฐํšŒ
GET /api/movie/search ์˜ํ™” ์ œ๋ชฉ ๊ฒ€์ƒ‰

๐Ÿค– AI Chat API

Method Endpoint ์„ค๋ช…
POST /api/chats/{aiChatRoom-Id} AI ์ฑ„ํŒ… ์ „์†ก (์ผ๋ฐ˜ ์ฑ„ํŒ… / ์ œ๋ชฉ ๊ฒ€์ƒ‰)
POST /api/analysis ์‚ฌ์šฉ์ž ํ•ด์„ ๋ฐ์ดํ„ฐ LLM์— ์ถ”๊ฐ€

๐Ÿ’ฌ AI ChatRoom API

Method Endpoint ์„ค๋ช…
POST /api/ai-chatroom ์ƒˆ AI ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ
GET /api/ai-chatroom/{id}/history ์ฑ„ํŒ…๋ฐฉ ๋Œ€ํ™” ๋‚ด์—ญ ์กฐํšŒ
GET /api/ai-chatroom/recent ์ตœ๊ทผ ์ฑ„ํŒ…๋ฐฉ ์กฐํšŒ

โš™๏ธ ์‹คํ–‰ ๋ฐฉ๋ฒ•

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

  • Java 17+
  • Docker & Docker Compose
  • MySQL 8.0+
  • Redis
  • Kafka

๋กœ์ปฌ ์‹คํ–‰

# 1. ๋ ˆํฌ์ง€ํ† ๋ฆฌ ํด๋ก 
git clone https://github.com/your-org/fillmate-backend.git
cd fillmate-backend

# 2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
cp .env.example .env
# .env ํŒŒ์ผ์— DB, Redis, Kafka ๋“ฑ ์„ค์ • ์ž…๋ ฅ

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

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

Docker ๋นŒ๋“œ & ์‹คํ–‰

# ์ด๋ฏธ์ง€ ๋นŒ๋“œ
docker build -t fillmate-backend .

# ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
docker run -p 8080:8080 fillmate-backend

๐Ÿ“‹ Git ์ปจ๋ฒค์…˜

Branch ์ „๋žต

  • main โ€” ๋ฐฐํฌ ๋ธŒ๋žœ์น˜
  • develop โ€” ๊ฐœ๋ฐœ ํ†ตํ•ฉ ๋ธŒ๋žœ์น˜
  • feat/๊ธฐ๋Šฅ๋ช… โ€” ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜

Issue Template

## ๐Ÿ“Œ Description
- [ ] ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ์„ค๋ช…

PR Template

## ๐ŸŒฑ ๊ด€๋ จ ์ด์Šˆ
- close : #์ด์Šˆ๋ฒˆํ˜ธ

## ๐Ÿ“Œ ์ž‘์—… ๋‚ด์šฉ ๋ฐ ํŠน์ด์‚ฌํ•ญ
## ๐Ÿ“ ์ฐธ๊ณ ์‚ฌํ•ญ
## ๐Ÿ“š ๊ธฐํƒ€

๐Ÿ† ์ˆ˜์ƒ

  • 2025 MJU ๊ต๋‚ด ์ฐฝ์˜์ SWํ”„๋กœ๊ทธ๋žจ๊ฒฝ์ง„๋Œ€ํšŒ ์šฐ์ˆ˜์ƒ โ€” ๋ช…์ง€๋Œ€ํ•™๊ต

About

๐ŸŽฌ FillMate - AI ๊ธฐ๋ฐ˜ ์˜ํ™” ํ•ด์„ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages