AI ๊ธฐ๋ฐ ์ํ ํด์ ์ปค๋ฎค๋ํฐ ์๋น์ค
2025 MJU SW Contest ์ถํ์ | ๊ต๋ด ์ฐฝ์์ SWํ๋ก๊ทธ๋จ๊ฒฝ์ง๋ํ ์ฐ์์ ์์
FillMate๋ ์ฌ์ฉ์๊ฐ ์ํ์ ์จ๊ฒจ์ง ์๋ฏธ๋ฅผ ํ๊ตฌํ๊ณ , AI ์ฑ๋ด "ํ๋ฆฌ" ์ ๋ํํ๋ฉฐ ์ํ ํด์์ ๋๋ ์ ์๋ ์ปค๋ฎค๋ํฐ ์๋น์ค์
๋๋ค.
์ํ๋ฅผ ๋ณธ ํ ๊ถ๊ธํ๋ ์ฅ๋ฉด, ๊ฐ๋
์ ์๋, ์จ๊ฒจ์ง ๋ฉ์์ง๋ฅผ AI์ ํจ๊ป ํ๊ตฌํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ค์ ์์ ๋ง์ ํด์์ ๊ณต์ ํ๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ๊ด์ ์ ํตํด ์ํ๋ฅผ ๋ ๊น์ด ์ดํดํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ฐธ์ฌ์ ์ฝํ
์ธ ์์ฑ โ ์ํ์ ๋ํ ์์ ์ ํด์์ ๊ณต์ ํ๊ณ , ๋ค์ํ ๊ด์ ์ ํด์์ ์ ํ๋ฉฐ ์ฐธ์ฌ๊ฐ๊ณผ ๋ง์กฑ๊ฐ์ ์ฆ๋
AI ๊ธฐ๋ฐ ๋ํํ ์๋น์ค โ ๊ถ๊ธํ ์ํ ์ฅ๋ฉด์ ๋ํด AI๊ฐ ์ฆ๊ฐ์ ์ธ ํด์์ ์ ๊ณตํ๋ฉฐ, ๊ฐ์ธ ๋ง์ถคํ ํด์ ์ถ์ฒ ๋ฐ ์๋ ์์ฝ ๊ธฐ๋ฅ ์ ๊ณต
์ํ์ ์๋ฏธ ํ๊ตฌ โ ๋ค์ํ ๊ด์ ์์ ์ํ์ ์จ๊ฒจ์ง ๋ฉ์์ง๋ฅผ ์ฐพ์๋ด๋ ํด์์ ์ฌ๋ฏธ์ ๊น์ด ์ ๊ณต
๋ถ๋ฅ
๊ธฐ์
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
๐ ์์คํ
์ํคํ
์ฒ
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) ๋ฅผ ํตํด ๊ด๋ฆฌ
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
Method
Endpoint
์ค๋ช
GET
/api/movie/list
์ํ ๋ฆฌ์คํธ ์กฐํ (ํ์ด์ง)
GET
/api/movie/{id}
์ํ ์์ธ ์กฐํ
GET
/api/movie/search
์ํ ์ ๋ชฉ ๊ฒ์
Method
Endpoint
์ค๋ช
POST
/api/chats/{aiChatRoom-Id}
AI ์ฑํ
์ ์ก (์ผ๋ฐ ์ฑํ
/ ์ ๋ชฉ ๊ฒ์)
POST
/api/analysis
์ฌ์ฉ์ ํด์ ๋ฐ์ดํฐ LLM์ ์ถ๊ฐ
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 build -t fillmate-backend .
# ์ปจํ
์ด๋ ์คํ
docker run -p 8080:8080 fillmate-backend
main โ ๋ฐฐํฌ ๋ธ๋์น
develop โ ๊ฐ๋ฐ ํตํฉ ๋ธ๋์น
feat/๊ธฐ๋ฅ๋ช
โ ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ธ๋์น
## ๐ Description
- [ ] ๊ตฌํํ ๊ธฐ๋ฅ ์ค๋ช
## ๐ฑ ๊ด๋ จ ์ด์
- close : #์ด์๋ฒํธ
## ๐ ์์
๋ด์ฉ ๋ฐ ํน์ด์ฌํญ
## ๐ ์ฐธ๊ณ ์ฌํญ
## ๐ ๊ธฐํ
2025 MJU ๊ต๋ด ์ฐฝ์์ SWํ๋ก๊ทธ๋จ๊ฒฝ์ง๋ํ ์ฐ์์ โ ๋ช
์ง๋ํ๊ต