2.9 KiB
2.9 KiB
Dabeeo Detection API
Dabeeo 변화 탐지 시스템을 위한 백엔드 API 서버
📋 프로젝트 소개
dabeeo-detection-api는 공간 데이터의 변화를 탐지하고 관리하기 위한 RESTful API 서버입니다. JTS(Java Topology Suite)를 활용한 지오메트리 데이터 처리와 PostgreSQL을 통한 공간 데이터 저장을 지원합니다.
🛠️ 기술 스택
| Category | Technology |
|---|---|
| Language | Java 21 |
| Framework | Spring Boot 3.5.7 |
| Database | PostgreSQL (with PostGIS) |
| ORM | Spring Data JPA + Hibernate |
| Query | QueryDSL 5.0.0 (Jakarta) |
| Geospatial | JTS (Java Topology Suite) + GeoJSON |
| Connection Pool | HikariCP |
| Build Tool | Gradle 8.x |
| Monitoring | Spring Boot Actuator |
| Container | Docker + Docker Compose |
| CI/CD | Jenkins |
🚀 시작하기
필수 요구사항
- Java 21 (JDK 21)
- PostgreSQL 12+ (PostGIS 확장 필요)
- Gradle 8.x (또는 Gradle Wrapper 사용)
- Docker & Docker Compose (선택사항)
로컬 환경 설정
- 저장소 클론
https://kamco.git.gs.dabeeo.com/MVPTeam/DABEEO-DETECTION-APPLICATION.git
- 데이터베이스 설정
PostgreSQL 데이터베이스를 준비하고 src/main/resources/application-local.yml을 생성:
spring:
config:
activate:
on-profile: local
datasource:
url: jdbc:postgresql://localhost:5432/dabeeo_detection_dev
username: your_username
password: your_password
참고:
application-local.yml은.gitignore에 포함되어 있어 Git에 커밋되지 않습니다.
- 빌드 및 실행
# 빌드
./gradlew build
# 실행 (local 프로파일)
./gradlew bootRun
# 또는 JAR 파일로 실행
java -jar build/libs/ROOT.jar
서버가 시작되면 http://localhost:8080 에서 접근 가능합니다.
⚙️ 프로파일 설정
애플리케이션은 환경별로 다른 설정을 사용합니다:
| 프로파일 | 환경 | 포트 | 설정 파일 |
|---|---|---|---|
local |
로컬 개발 | 8080 | application.yml (기본) |
dev |
개발 서버 | 7100 | application-dev.yml |
prod |
운영 서버 | 8080 | application-prod.yml |
프로파일 활성화
# 개발 환경으로 실행
./gradlew bootRun --args='--spring.profiles.active=dev'
# JAR 실행 시
java -jar build/libs/ROOT.jar --spring.profiles.active=dev
🧪 테스트
# 전체 테스트 실행
./gradlew test
# 특정 테스트 클래스 실행
./gradlew test --tests com.kamco.cd.kamcoback.KamcoBackApplicationTests
# 테스트 리포트 확인
open build/reports/tests/test/index.html
📦 빌드
# 전체 빌드 (테스트 포함)
./gradlew clean build
# 테스트 제외 빌드 (CI/CD에서 사용)
./gradlew clean build -x test
# JAR 파일만 생성
./gradlew bootJar
빌드된 JAR 파일: build/libs/ROOT.jar