꿈틀 서비스의 백엔드 서비스입니다.
동화 생성 요청, 게임 진행, 음성 처리, 단어 추출, 인증을 담당하는 Spring Boot 서버입니다.
- Language: Java 21
- Framework: Spring Boot 3.5.6
- Database: MySQL
- Cache: Redis
- Message Broker: Kafka
- Storage: AWS S3
- Auth: JWT
- Media: FFmpeg
src/main/java/com/capstone/kkumteul
├── domain
│ ├── auth
│ ├── fairytale
│ ├── game
│ ├── kafka
│ ├── user
│ ├── vocab
│ └── voice
├── global
│ ├── client
│ ├── config
│ ├── constant
│ ├── entity
│ ├── exception
│ ├── jwt
│ ├── response
│ └── security
└── KkumteulApplication.java
auth: 회원가입, 로그인, JWT 인증user: 프로필 조회 및 수정fairytale: 동화 생성, 조회, SSE 구독game: 동화 기반 게임 진행voice: 음성 업로드 및 변환vocab: 단어 추출 및 저장kafka: 비동기 이벤트 처리
src/main/resources 디렉토리와 application.properties 설정 파일을 생성한 뒤 필요한 값을 설정합니다.
# Database
spring.datasource.url=jdbc:mysql://localhost:3306/kkumteul
spring.datasource.username=root
spring.datasource.password=your-password
# Redis
spring.data.redis.host=localhost
spring.data.redis.port=6379
# JWT
jwt.secret=your-jwt-secret-key
jwt.expiration=86400000
# Kafka
KAFKA_URL=localhost:9092
FAIRYTALE_GENERATION=fairytale_generate
TTS_MODELING=tts_modeling
VOCAB_EXTRACTED_GROUP_ID=kkumteul-vocab
# FastAPI
fastapi.base-url=http://localhost:8000
# AWS S3
AWS_S3_BUCKET_NAME=your-s3-bucket-name
# Vocab fallback
vocab.fallback-threshold-seconds=300서버 실행:
./gradlew bootRun테스트 실행:
./gradlew test
./gradlew kafkaBrokerTestdocker-compose.yml 기준 서비스:
backendredisfastapinginx
환경변수:
BACKEND_IMAGEFASTAPI_IMAGE
| type | name | description |
|---|---|---|
feat |
feat/#ISSUE_NUM |
⚡️ 새로운 기능 추가 |
fix |
fix/#ISSUE_NUM |
🐛 버그 수정 |
docs |
docs/#ISSUE_NUM |
📝 문서 수정 |
refactor |
refactor/#ISSUE_NUM |
💫 리팩토링 |
test |
test/#ISSUE_NUM |
🧪 테스트 코드 작성 |
chore |
chore/#ISSUE_NUM |
🛠️ 빌드, 패키지 관련 수정 |
perf |
perf/#ISSUE_NUM |
🪄 성능 개선 |
ci |
ci/#ISSUE_NUM |
🔄 CI 관련 수정 |
cd |
cd/#ISSUE_NUM |
🔄 CD 관련 수정 |
revert |
revert/#ISSUE_NUM |
|
docker |
docker/#ISSUE_NUM |
🐳 도커 파일 관련 작업 |
| branch | role |
|---|---|
main |
- 최종 배포용 브랜치 - dev 브랜치에서 안정화 버전만 병합 |
develop |
- 개발용 브랜치 - 자유롭게 병합 |