Skip to content

DLST316/PlanW-Backend

Repository files navigation

PlanW

상업공간 잠재력 예측을 위한 REST API 서비스

개요

PlanW는 상업공간의 잠재력을 분석하고 예측하는 머신러닝 기반 API 서비스입니다. JWT 인증을 통한 보안된 접근과 대용량 데이터 처리 기능을 제공합니다.

주요 기능

  • 상업공간 잠재력 예측: 머신러닝 모델을 통한 상업공간 성공 가능성 분석
  • JWT 기반 인증: 보안된 API 접근을 위한 토큰 기반 인증
  • 대용량 데이터 처리: CSV 파일 업로드를 통한 배치 데이터 처리
  • RESTful API: 표준 HTTP 프로토콜을 통한 API 제공

기술 스택

Backend

Spring Boot Java

Database

MySQL H2

Security

Spring Security JWT

Build Tool

Gradle

Libraries

  • Spring Data JPA: 데이터베이스 ORM
  • Spring Validation: 입력 데이터 검증
  • Apache Commons CSV: CSV 파일 처리
  • Lombok: 보일러플레이트 코드 감소

시작하기

요구사항

  • Java 17 이상
  • MySQL 8.0 이상 (운영환경)

설치 및 실행

  1. 저장소 클론
git clone https://github.com/your-username/planw.git
cd planw
  1. 애플리케이션 실행
./gradlew bootRun

기본적으로 http://localhost:8080에서 서비스가 시작됩니다.

데이터베이스 설정

운영환경에서는 application-mysql.yml을 사용하여 MySQL 데이터베이스를 설정하세요.

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/planw
    username: planw_user
    password: your_password

API 예시

인증

회원가입

POST /api/signup
Content-Type: application/json

{
  "email": "[email protected]",
  "password": "password123"
}

로그인

POST /api/login
Content-Type: application/json

{
  "email": "[email protected]",
  "password": "password123"
}

예측 API

단일 예측

GET /api/prediction?address=서울 강남구 테헤란로 123
Authorization: Bearer {jwt_token}

배치 예측 업로드 (Admin 전용)

POST /api/admin/prediction/upload
Authorization: Bearer {jwt_token}
Content-Type: multipart/form-data

file: prediction.csv

CSV 파일 형식 예시

address,predicted_rent,predicted_sales,floating_population,price_change_rate,previous_sales,latitude,longitude
서울 강남구 테헤란로 123,4000000,12000000,23000,1.03,8500000,37.501288,127.023612

개발

테스트 실행

./gradlew test

빌드

./gradlew build

라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.

기여

버그 리포트나 기능 제안은 이슈를 통해 제출해 주세요.

About

상업공간 잠재력 예측 API 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages