3D 방 꾸미기와 커뮤니티 경험을 제공하는 Spring Boot 백엔드.
- 회원/인증: Spring Security + JWT 기반 인증/인가
- 커뮤니티: 게시글/댓글 및 이미지 업로드
- 3D 도메인: 룸/모델/도면 관리 및 관련 관리자 기능
- 추천/AI 연동: 추천 파이프라인 연동을 위한 도메인 및 메시지 처리
- 실시간: WebSocket 및 RabbitMQ 기반 메시징
| 영역 | 기술 |
|---|---|
| Backend | Java 17, Spring Boot 4, Spring MVC |
| Security | Spring Security, JWT (jjwt) |
| Data | Spring Data JPA, MySQL 8 |
| Messaging | WebSocket, RabbitMQ |
| Storage | AWS S3 (spring-cloud-aws) |
| API Docs | springdoc-openapi (Swagger UI) |
| Build/Deploy | Gradle, Docker, Nginx |
| Etc | Lombok, ImageIO WebP |
- JDK 17
- Docker Desktop (MySQL, RabbitMQ) 또는 로컬 설치
- (선택) AWS S3 자격 증명
- 인프라 기동 (MySQL, RabbitMQ)
docker-compose up -d- 애플리케이션 실행
# Windows
./gradlew.bat bootRun
# macOS/Linux
./gradlew bootRun- 확인
- Swagger UI: http://localhost:8080/swagger-ui/index.html
- RabbitMQ 관리 UI: http://localhost:15672
- 기본 설정: src/main/resources/application.yml
- Docker 환경: src/main/resources/application-docker.yml
- S3 설정: src/main/resources/application-s3.yml
- MySQL:
localhost:3307/ DB:myroom - RabbitMQ:
localhost:5672 - 업로드 경로:
C:/uploads/
- MySQL:
mysql:3306 - RabbitMQ:
rabbitmq:5672 - 업로드 경로:
/tmp/uploads
S3 사용 시
spring.cloud.aws.credentials를 환경 변수로 주입하는 방식을 권장합니다.
image/ # 아키텍처 및 기능 플로우 다이어그램
src/
main/
java/com/example/myroom/
admin/ # 관리자 기능
domain/ # auth, member, post, comment, image, recommand, room3D, socket 등
global/ # config, exception, jwt, service, util
MyroomApplication.java
resources/
application.yml
application-docker.yml
application-s3.yml
logback.xml
test/
java/com/example/myroom/




