e304a841ed
fix: OSINT 기사 중복 수집 방지 + MapLibre symbol layer race condition 해소
...
- OsintCollector: title 기반 24h 중복 체크 추가 (GDELT/Google News)
- ShipLayer: hover를 feature-state로 분리하여 setData 빈도 감소
- ShipLayer: ships-korean-label 조건부 마운트 → visibility 제어로 변경
2026-03-19 10:19:06 +09:00
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
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
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
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
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
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
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
512020d6bb
feat: 백엔드 Spring Boot + DB 스키마 + Python 분석서버 스켈레톤
...
- backend/: Spring Boot 3.2 + Java 17, Google OAuth + JWT 인증
- AuthController/Service/Filter: id_token 검증 + gcsc.co.kr 도메인 제한
- JPA Entity: users, login_history
- 수집기 placeholder: GDELT, Google News, CENTCOM, Aircraft
- ArticleClassifier: 프론트엔드 분류 정규식 이식
- 프로파일: local / prod (PostgreSQL 211.208.115.83:5432/kcgdb)
- database/: 초기 스키마 (events, news, osint, users, login_history)
- prediction/: FastAPI placeholder (향후 해양 분석)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 13:54:58 +09:00