S&P Global 선박/해운 데이터 수집 배치 시스템
Go to file
2026-04-07 14:27:50 +09:00
.claude chore: 팀 워크플로우 초기화 2026-04-07 14:26:17 +09:00
.gitea/workflows Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
.githooks chore: 팀 워크플로우 초기화 2026-04-07 14:26:17 +09:00
.mvn Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
docs docs: 릴리즈 노트 업데이트 2026-04-07 14:26:54 +09:00
frontend Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
src/main Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
.editorconfig Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
.gitattributes Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
.gitignore chore: 팀 워크플로우 초기화 2026-04-07 14:26:17 +09:00
.sdkmanrc Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
CLAUDE.md Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
package-lock.json Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
pom.xml Remove unused bypass/screening code, update frontend favicon and title 2026-04-07 09:49:38 +09:00
README.md Update README to reflect project rename from snp-batch-validation to snp-collector 2026-04-07 10:03:43 +09:00

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

  1. 프론트엔드 빌드: Terminal 탭에서 cd frontend && npm run build
  2. Maven 패키징: Maven 패널 → Lifecycle → package
    • VM Options: -DskipTests -Dskip.npm -Dskip.installnodenpm
    • 또는 Run Configuration → Maven → Command line에 clean package -DskipTests -Dskip.npm -Dskip.installnodenpm

로컬 실행

터미널

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 자동 설치 스킵