Spring Boot 3.x + Java 17 + Gradle 기반의 습관 관리 앱 백엔드 서버입니다.
- Spring Boot 3.2.0
- Java 17
- Gradle
- MySQL
- JWT (io.jsonwebtoken)
- Firebase Admin SDK
- Spring Security
- 일반 회원가입/로그인 (이메일 + 비밀번호)
- 카카오 소셜 로그인
- JWT 기반 인증
- Todo 생성
- 오늘의 Todo 조회
- 특정 날짜 Todo 조회
- Todo 완료 처리
- FCM 푸시 알림
- 알림 설정 (2시간/4시간/일일 간격)
- 스케줄러 기반 반복 알림
com.jakbu
├─ config # 설정 클래스 (Security, Firebase, JPA)
├─ controller # REST API 컨트롤러
├─ service # 비즈니스 로직
├─ repository # 데이터 접근 계층
├─ domain # 엔티티 및 Enum
│ ├─ enums
├─ dto # 데이터 전송 객체
├─ util # 유틸리티 (JWT)
└─ exception # 예외 처리
spring:
datasource:
url: jdbc:mysql://localhost:3306/jakbu
username: root
password: your_password
jwt:
secret: your-secret-key-minimum-256-bits
expiration: 86400000
firebase:
config-path: firebase-admin.json- Firebase Console에서 서비스 계정 키를 다운로드
firebase-admin.json파일을 프로젝트 루트에 배치application.yml의firebase.config-path에 경로 설정
MySQL 데이터베이스 jakbu를 생성하세요:
CREATE DATABASE jakbu CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;POST /auth/signup- 회원가입POST /auth/login- 로그인POST /auth/kakao- 카카오 로그인
POST /todo- Todo 생성GET /todo/today- 오늘의 Todo 조회GET /todo/date?date=2025-01-01- 특정 날짜 Todo 조회POST /todo/{id}/done- Todo 완료 처리
POST /notification/token- FCM 토큰 저장POST /notification/setting- 알림 설정 저장GET /notification/setting- 알림 설정 조회
./gradlew bootRun또는
./gradlew build
java -jar build/libs/jakbu-0.0.1-SNAPSHOT.jar- Java 17 이상
- MySQL 8.0 이상
- Firebase 프로젝트 및 서비스 계정 키