6c54500c70
feat: 센서 그래프 실데이터 + 선박 모달 UI 개선 + KST/UTC 라디오
...
- SensorChart: 백엔드 실데이터(지진/기압) + 동적 x축 시간 + 히스토리 10M/30M/1H/3H/6H
- LiveControls: KST/UTC 토글 → 라디오 버튼 그룹
- ShipLayer: 모달 고정크기(300px), 드래그 가능, S&P Global 다중사진 슬라이드
- 선박 모달 CSS 통일 (태그 스타일, 2컬럼 그리드, 긴 값 단독행)
- 센서 API: hours→min 파라미터 (기본 2880=48h), 인증 예외 처리
- useIranData/useKoreaData: 센서 10분 polling + 선박 60분 초기/6분 incremental merge
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 09:23:45 +09:00
7fabe16f4f
Merge remote-tracking branch 'origin/main' into develop
2026-03-18 08:58:09 +09:00
c9f295288c
fix(deploy): SSH set -e 제거 + curl fallback ( #49 )
...
Deploy KCG / deploy (push) Successful in 1m14s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:45:33 +09:00
7b05598714
fix(deploy): SSH 디버그 + printf 키 저장 ( #48 )
...
Deploy KCG / deploy (push) Failing after 1m12s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:42:19 +09:00
6182a79ae4
fix(deploy): SSH 호스트 내부 IP 고정 (signal-batch 패턴) ( #47 )
...
Deploy KCG / deploy (push) Failing after 1m11s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:38:49 +09:00
5d01b0e6e5
fix(deploy): gateway 감지 ip → /proc/net/route ( #46 )
...
Deploy KCG / deploy (push) Failing after 1m15s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:35:17 +09:00
db8334b08e
fix(deploy): SSH 호스트 IP 동적 감지 + health check 개선 ( #45 )
...
Deploy KCG / deploy (push) Failing after 1m6s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:31:34 +09:00
1549adafc7
fix(deploy): health check + PressureCollector 중복 방지 ( #44 )
...
Deploy KCG / deploy (push) Failing after 1m12s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:25:52 +09:00
c63af7abe0
fix(frontend): 컴포넌트 import 경로 수정 (vite build 실패 해결) ( #43 )
...
Deploy KCG / deploy (push) Failing after 1m43s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:21:45 +09:00
81cd094c56
fix(frontend): 컴포넌트 import 경로 수정 (vite build 실패 해결) ( #42 )
...
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:21:42 +09:00
606083dce9
Merge pull request 'release: 2026-03-18.2 (8건 커밋)' ( #41 ) from develop into main
Deploy KCG / deploy (push) Failing after 16s
2026-03-18 08:18:42 +09:00
d87ce089c5
docs: 릴리즈 노트 정리 (2026-03-18) ( #40 )
...
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:17:52 +09:00
4b41ed0d9d
feat: 지진파(USGS) + 기압(Open-Meteo) 수집기 + DB 테이블 설계 ( #39 )
...
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:15:45 +09:00
0fd32081b0
refactor(frontend): 패키지 구조 리팩토링 + UI 버그 수정 ( #38 )
...
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 07:41:19 +09:00
9f3eb4814a
Merge pull request 'chore: main → develop 동기화' ( #37 ) from main into develop
2026-03-18 06:56:08 +09:00
351a7c6466
fix(deploy): SSH 호스트 IP 수정 (Docker bridge gateway) ( #36 )
...
Deploy KCG / deploy (push) Failing after 1m39s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 06:52:22 +09:00
282adff6a7
fix(deploy): SSH 기반 백엔드 자동 재시작 ( #35 )
...
Deploy KCG / deploy (push) Failing after 1m8s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 06:34:24 +09:00
49c493b9da
fix(deploy): CI에서 직접 백엔드 서비스 재시작 ( #33 )
...
Deploy KCG / deploy (push) Failing after 1m6s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 06:13:35 +09:00
fe1de4bf51
fix(deploy): 배포 자동화 + 수집기 모니터링 + 이란 signal-batch 연동 ( #32 )
...
Deploy KCG / deploy (push) Successful in 1m10s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 05:46:55 +09:00
80f8beba16
Merge pull request 'fix(deploy): application-prod.yml 코드 내장 + 외부 설정 참조 제거' ( #31 ) from hotfix/prod-config-inline into develop
2026-03-18 04:38:46 +09:00
ef342769d4
fix(deploy): application-prod.yml 코드 내장 + 외부 설정 참조 제거
...
- application-prod.yml을 .gitignore에서 제거, 환경변수 참조 방식으로 코드에 포함
- deploy.yml에 DB_PASSWORD secret 추가
- systemd에서 -Dspring.config.additional-location 제거
- 서버 외부 application-prod.yml 의존 해소
2026-03-18 04:38:25 +09:00
f5984a2832
Merge pull request 'fix(backend): ddl-auto validate → none' ( #29 ) from hotfix/ddl-auto-none into develop
2026-03-18 04:30:49 +09:00
42e50c3b58
fix(backend): ddl-auto validate → none (PostGIS geometry 타입 검증 실패 해결)
2026-03-18 04:30:32 +09:00
ed9a2e3233
Merge pull request 'release: 2026-03-18 (8건 커밋)' ( #28 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m7s
2026-03-18 04:18:10 +09:00
a5a1c89f6f
Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-18)' ( #27 ) from chore/release-prep-6 into develop
2026-03-18 04:17:22 +09:00
f39948557a
docs: 릴리즈 노트 정리 (2026-03-18)
2026-03-18 04:16:52 +09:00
326df4c69b
Merge pull request 'feat(backend): OSINT/Satellite 수집기 + Caffeine 캐시 통일 + REST API' ( #26 ) from feature/backend-collectors into develop
2026-03-18 04:10:31 +09:00
dee52c33d5
docs: 릴리즈 노트 업데이트
2026-03-18 04:09:13 +09:00
69b2aeb3b3
feat(backend): OSINT/Satellite 수집기 + Caffeine 캐시 통일 + REST API
...
- OSINT: GDELT + Google News RSS 수집기 (@Scheduled 2분)
- Satellite: CelesTrak TLE 수집기 (@Scheduled 10분)
- Caffeine 캐시 TTL 2일 (Aircraft 포함 전체 통일)
- 프론트: 백엔드 API 우선 호출 + CelesTrak/GDELT fallback
2026-03-18 04:04:18 +09:00
0c78ad8bb8
feat(db): ships/osint/satellites 테이블 생성 + 샘플 데이터 적재
...
- ship_positions: AIS/signal-batch 선박 위치 이력 (PostGIS)
- osint_feeds: GDELT/Google News/CENTCOM 피드 (UNIQUE 중복방지)
- satellite_tle: CelesTrak TLE 위성 궤도 데이터
- 샘플: 중동 함정 16척, 한국 해역 8척, OSINT 17건, 위성 11기
2026-03-18 02:59:54 +09:00
f40a0789a2
fix(db): 002 마이그레이션 search_path에 public 추가 (PostGIS 타입 참조)
2026-03-18 02:39:40 +09:00
819575fcaf
Merge pull request 'fix(ci): JDK 21 설치 — Adoptium Temurin APT 저장소 사용' ( #25 ) from hotfix/ci-jdk21-install into main
Deploy KCG / deploy (push) Successful in 1m8s
2026-03-17 16:58:51 +09:00
82a48f186b
Merge pull request 'fix(ci): JDK 21 설치 — Adoptium Temurin APT 저장소 사용' ( #24 ) from hotfix/ci-jdk21-install into develop
2026-03-17 16:58:51 +09:00
985315d147
fix(ci): JDK 21 설치 — Adoptium Temurin APT 저장소 사용
...
node:24(Debian bookworm) 기본 apt에 openjdk-21 없음.
Adoptium GPG 키 + 저장소 추가 후 temurin-21-jdk 설치.
2026-03-17 16:58:26 +09:00
ddc7d542dc
Merge pull request 'release: 2026-03-17.5 (5건 커밋)' ( #23 ) from develop into main
Deploy KCG / deploy (push) Failing after 23s
2026-03-17 16:56:54 +09:00
1ad5939a31
Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-17.5)' ( #22 ) from chore/release-prep-5 into develop
2026-03-17 16:56:14 +09:00
2abe119d8f
docs: 릴리즈 노트 정리 (2026-03-17.5)
2026-03-17 16:55:51 +09:00
b30740dd1a
Merge pull request 'feat(aircraft): 항공기 백엔드 수집기 구현 + 프론트엔드 전환' ( #21 ) from feature/aircraft-backend-collector into develop
2026-03-17 16:53:50 +09:00
910d664eb0
docs: 릴리즈 노트 업데이트
2026-03-17 16:52:27 +09:00
1e4c51e76b
feat(aircraft): 항공기 백엔드 수집기 구현 + 프론트엔드 전환
...
- Airplanes.live / OpenSky @Scheduled 수집기 (60초 주기)
- 인메모리 캐시 + PostGIS DB 적재 (향후 리플레이용)
- GET /api/aircraft?region=iran|korea REST API
- 프론트엔드 LIVE→백엔드 API, REPLAY→샘플 전용
- JDK 17→21 업그레이드 (pom, sdkmanrc, CI/CD, systemd)
2026-03-17 16:50:17 +09:00
1a0827d6a8
Merge pull request 'release: 2026-03-17.5 — .env 빈 secrets 수정' ( #20 ) from develop into main
Deploy KCG / deploy (push) Successful in 55s
2026-03-17 16:05:57 +09:00
a984494fad
Merge pull request 'fix(ci): .env 빈 secrets 기록 방지' ( #19 ) from chore/release-prep-4 into develop
2026-03-17 16:05:47 +09:00
3931c23939
fix(ci): .env에 빈 secrets 기록 방지 (JWT_SECRET 빈 값 문제)
2026-03-17 16:05:30 +09:00
36d5a90131
Merge pull request 'release: 2026-03-17.4 — UI 브랜딩 + 배포 설정 + 폴링 조정' ( #18 ) from develop into main
Deploy KCG / deploy (push) Successful in 55s
2026-03-17 16:00:00 +09:00
841f32810b
Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-17.4)' ( #17 ) from chore/release-prep-4 into develop
2026-03-17 15:59:59 +09:00
a2ece61f14
docs: 릴리즈 노트 정리 (2026-03-17.4)
2026-03-17 15:59:41 +09:00
e72d061e65
Merge pull request 'feat(frontend): UI 브랜딩 + 배포 설정 + 폴링 주기 조정' ( #16 ) from feature/ui-branding into develop
2026-03-17 15:58:57 +09:00
fb5b0fa935
docs: 릴리즈 노트 업데이트
2026-03-17 15:58:38 +09:00
5abbe1ded7
fix(frontend): 항공기 API 폴링 주기 15초/25초 → 60초 (Rate Limit 대응)
2026-03-17 15:51:36 +09:00
7cde0c57d8
feat(frontend): UI 브랜딩 개선 + 배포 설정 정리
...
- 로그인 화면: kcg.svg 로고 적용 (이모지 교체)
- 헤더 우측: 사용자 프로필/이름 + 로그아웃 버튼 추가
- 브라우저 탭: favicon → kcg.svg, 제목 → kcg-dashboard-demo
- 프로덕션 빌드: console/debugger 자동 제거
- CORS: CorsFilter 최우선 순위 등록 (AuthFilter 이전)
- deploy.yml: secrets → .env 파일로 배포
- systemd/nginx: 경로 /devdata/services/kcg/ 반영
2026-03-17 15:50:05 +09:00