Realtime은 사람들과 온라인으로 자유롭게 실시간으로 소통하고 싶은 사용자를 위한 커뮤니티 서비스입니다.
게시글 작성, 댓글 작성을 통해 내 이야기를 나누고 다른 사용자의 이야기에 공감해보세요.
- WebSocket 기반 실시간 댓글 조회 및 댓글 작성 기능
- 로컬 캐시 Caffeine을 활용하여 빠른 최신 게시글 목록, 게시글 상세 조회 및 게시글 작성 기능
- Spring Security & JWT & Redis 기반의 안전하고 확장성 높은 사용자 인증 절차
- Rate Limiting으로 과도한 요청 혹은 공격으로부터 시스템 보호
- 서버 로컬 디스크에 업로드된 파일을 링크 기반으로 조회 및 출력
application
├── exception
├── mapper
├── service
└── util
domain
├── converter
├── dto
├── event
├── exception
├── model
└── repository
global
├── config
├── exception
├── filter
├── provider
└── util
infrastructure
├── config
├── disk
├── exception
├── persistence
└── redis
presentation
├── controller
├── dto
├── util
└── validation-
저장소 클론
git clone https://github.com/GY102912/realtime-backend.git cd mywiki-backend -
프로젝트 루트에 .env 파일 작성
# MySQL MYSQL_URL=jdbc:mysql://localhost:3306/your_schema?serverTimezone=Asia/Seoul&characterEncoding=UTF-8 MYSQL_USER_NAME=your_user_name MYSQL_PASSWORD=your_password # Redis REDIS_HOST=localhost REDIS_PORT=6379 # JWT JWT_SECRET=openssl rand -base64 32 명령어 결과값 -
MySQL & Redis 실행
-
CommunityApplication 실행
./gradlew bootRun
- Spring Boot 3.x
- Spring Security, JWT(JJWT)
- WebSocket (STOMP, SockJS)
- Spring Data JPA, QueryDSL
- Redis, Caffeine
- Bucket4j (Rate Limiting)
- MySQL 8.0
- SpringDoc OpenAPI (Swagger UI)