사용자 맞춤형 정책 정보 제공 백엔드 API
소득분위 기반 정책 추천 및 북마크 기능을 제공하는 RESTful API 서버
- Java 17
- Spring Boot 4.0.0
- Spring Data JPA
- MySQL
- Springdoc OpenAPI (Swagger)
src/main/java/com/example/pickyback
├── domain
│ ├── user # 사용자 관리
│ ├── policy # 정책 정보
│ └── bookmark # 북마크 기능
└── global
├── config # 설정
├── dto # 공통 응답 형식
├── entity # 공통 엔티티
└── exception # 예외 처리
- 사용자 정보 조회/수정
- 소득분위 관리
- 정책 목록 조회 (페이징)
- 정책 상세 조회
- 카테고리별 정책 조회
- 소득분위별 맞춤 정책 추천
- 조회수 증가
- 북마크 추가/삭제
- 북마크된 정책 목록 조회
- 메인 화면 데이터 (소득분위별 추천 + 카테고리별 정책)
GET /api/user/{userId}- 사용자 정보 조회POST /api/user/{userId}- 사용자 정보 수정
GET /api/post/{policyId}- 정책 상세 조회GET /api/post- 전체 정책 목록GET /api/post/bookmarked- 북마크된 정책 목록GET /api/post/income- 소득분위별 정책 추천GET /api/category/{category}- 카테고리별 정책 목록
POST /api/post/{policyId}/bookmark- 북마크 추가DELETE /api/post/{policyId}/bookmark- 북마크 삭제
GET /api/home- 홈 화면 데이터
src/main/resources/application.yml 또는 application.properties 파일 생성
spring:
datasource:
url: jdbc:mysql://localhost:3306/pickyback
username: your-username
password: your-password
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true./gradlew bootRunhttp://localhost:8080/swagger-ui/index.html
./gradlew build{
"status": 200,
"success": true,
"message": "요청이 성공했습니다.",
"data": {},
"timestamp": "2024-01-01T10:00:00"
}{
"status": 400,
"success": false,
"message": "에러 메시지",
"data": null,
"timestamp": "2024-01-01T10:00:00"
}