이 백엔드 프로젝트는 렌탈 서비스 플랫폼을 지원하기 위해 설계되었으며, 사용자 관리, 대여 아이템 관리, 주문 처리 및 커뮤니티 상호작용 등의 다양한 기능을 제공합니다.
- Java 17 (프로젝트 도구 체인에 설정됨)
- Spring Boot 3.3.5
- PostgreSQL 데이터베이스
./gradlew bootRun이 명령어를 사용해 애플리케이션을 시작할 수 있습니다. PostgreSQL이 실행 중이며 접근 가능한 상태인지 확인하십시오.
- Spring Boot 스타터: Actuator, Data JPA, Web
- 데이터베이스: PostgreSQL 드라이버
- QueryDSL: QueryDSL JPA (복잡한 쿼리용)
- 로깅: P6Spy (SQL 로깅)
- 모니터링: Micrometer with Prometheus
- 문서화: Springdoc OpenAPI
- 도메인:
User,RentalItem,Order,CommunityPost등의 주요 엔티티를 포함합니다. - 레포지토리: 데이터베이스와 상호작용하는 데이터 접근 계층입니다.
- 서비스: 비즈니스 로직을 구현합니다.
- 컨트롤러: 프론트엔드에 노출되는 API 엔드포인트입니다.
이 스키마에는 사용자 관리, 아이템 대여, 주문 처리 및 커뮤니티 상호작용과 같은 다양한 플랫폼 기능을 지원하는 users, rental_item, orders, community_post 등의 테이블이 포함되어 있습니다.
API 문서는 Springdoc OpenAPI를 사용해 생성되며 애플리케이션 실행 후 /swagger-ui.html에서 확인할 수 있습니다.
- JUnit 5: 각 서비스와 컨트롤러 레이어에 대한 유닛 및 통합 테스트를 제공합니다.
- Testcontainers: PostgreSQL Testcontainer를 사용하여 독립적인 데이터베이스 테스트 환경을 구성합니다.
보안 종속성은 미리 구성되어 있으나 현재는 주석 처리되어 있습니다. build.gradle 파일에서 주석을 해제하여 추가적인 보안 계층을 활성화할 수 있습니다.
- 데이터베이스 설정을 위한 환경 변수가 제대로 설정되어 있는지 확인하십시오.
- 각 서비스나 API의 상세 사용법과 응답 구조는 Swagger UI를 통해 참조할 수 있습니다.
프로젝트는 라이브러리 간의 호환성을 위해 Spring Boot의 종속성 관리를 사용합니다. 다양한 환경을 효과적으로 관리할 수 있는 구성 옵션이 제공됩니다.
각 엔티티에 대한 추가 세부 사항은 스키마 문서나 Swagger UI에서 제공되는 API 사양을 통해 확인할 수 있습니다.
