S&P Global 선박/해운 데이터 수집 배치 시스템
|
All checks were successful
Build and Deploy SNP Collector / build-and-deploy (push) Successful in 33s
|
||
|---|---|---|
| .claude | ||
| .gitea/workflows | ||
| .githooks | ||
| .mvn | ||
| docs | ||
| frontend | ||
| src/main | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .sdkmanrc | ||
| CLAUDE.md | ||
| package-lock.json | ||
| pom.xml | ||
| README.md | ||
SNP Collector (snp-collector)
S&P Maritime API에서 선박/항만/사건 데이터를 수집하여 PostgreSQL에 저장하는 해양 데이터 배치 시스템. React 기반 관리 UI 포함.
기술 스택
- Java 17, Spring Boot 3.2.1, Spring Batch 5.1.0
- PostgreSQL, Quartz Scheduler, Caffeine Cache
- React 19 + Vite + Tailwind CSS 4 (관리 UI)
- frontend-maven-plugin (프론트엔드 빌드 통합)
사전 요구사항
| 항목 | 버전 | 비고 |
|---|---|---|
| JDK | 17 | .sdkmanrc 참조 (sdk env) |
| Maven | 3.9+ | |
| Node.js | 20+ | 프론트엔드 빌드용 |
| npm | 10+ | Node.js에 포함 |
빌드
주의: frontend-maven-plugin의 Node 호환성 문제로, 프론트엔드와 백엔드를 분리하여 빌드합니다.
터미널
# 1. 프론트엔드 빌드
cd frontend && npm install && npm run build && cd ..
# 2. Maven 패키징 (프론트엔드 빌드 스킵)
mvn clean package -DskipTests -Dskip.npm -Dskip.installnodenpm
빌드 결과: target/snp-collector-1.0.0.jar
IntelliJ IDEA
- 프론트엔드 빌드: Terminal 탭에서
cd frontend && npm run build - Maven 패키징: Maven 패널 → Lifecycle →
package- VM Options:
-DskipTests -Dskip.npm -Dskip.installnodenpm - 또는 Run Configuration → Maven → Command line에
clean package -DskipTests -Dskip.npm -Dskip.installnodenpm
- VM Options:
로컬 실행
터미널
mvn spring-boot:run -Dspring-boot.run.profiles=local
IntelliJ IDEA
Run Configuration → Spring Boot:
- Main class:
com.snp.batch.SnpCollectorApplication - Active profiles:
local
서버 배포
# 1. 빌드 (위 빌드 절차 수행)
# 2. JAR 전송
scp target/snp-collector-1.0.0.jar {서버}:{경로}/
# 3. 실행
java -jar snp-collector-1.0.0.jar --spring.profiles.active=dev
접속 정보
| 항목 | URL |
|---|---|
| 관리 UI | http://localhost:8041/snp-collector/ |
| Swagger | http://localhost:8041/snp-collector/swagger-ui/index.html |
프로파일
| 프로파일 | 용도 | DB |
|---|---|---|
local |
로컬 개발 | 개발 DB |
dev |
개발 서버 | 개발 DB |
prod |
운영 서버 | 운영 DB |
Maven 빌드 플래그 요약
| 플래그 | 용도 |
|---|---|
-DskipTests |
테스트 스킵 |
-Dskip.npm |
npm install/build 스킵 |
-Dskip.installnodenpm |
Node/npm 자동 설치 스킵 |