# ShadowBroker - 전 세계 15개 실시간 데이터 피드를 통합한 OSINT 대시보드

> Clean Markdown view of GeekNews topic #27351. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27351](https://news.hada.io/topic?id=27351)
- GeekNews Markdown: [https://news.hada.io/topic/27351.md](https://news.hada.io/topic/27351.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-10T08:33:00+09:00
- Updated: 2026-03-10T08:33:00+09:00
- Original source: [github.com/BigBodyCobain](https://github.com/BigBodyCobain/Shadowbroker)
- Points: 18
- Comments: 5

## Summary

전 세계 항공기·선박·위성·분쟁·CCTV 등 15개 실시간 데이터를 하나의 **지리정보 기반 인터페이스**로 통합한 **ShadowBroker**는 공개 OSINT 소스를 활용해 다중 도메인 활동을 단일 지도에서 시각화합니다. **Next.js·MapLibre GL·FastAPI**로 구성되어 분석가와 연구자가 항공·해상·우주·지정학 데이터를 한눈에 조망할 수 있으며, **Docker 기반 자동 배포**로 자가 호스팅 환경 구축도 간단합니다.  
  
다만.. 첫 커밋 zip파일안에 **./frontend/.env.local과 ./backend/.env가 유출**되어 있었다고 합니다. 바이브 코딩의 폐해인걸 까요?  
관련 댓글 때문에 웃었어요. "그래서 이름이 OSINT(Open Source Intelligence)인 것임. 모든 게 공개되어 있음"

## Topic Body

- **항공기, 선박, 위성, 지진, 분쟁, CCTV, GPS 교란** 등 다양한 실시간 데이터를 하나의 **지리정보 기반 인터페이스**로 통합  
- **Next.js**, **MapLibre GL**, **FastAPI**, **Python**으로 구축되어 분석가와 연구자가 **전 지구적 활동을 단일 화면에서 시각화** 가능  
- **항공·해상·우주·지정학·감시·신호 정보** 등 6개 주요 영역의 세부 추적 기능을 제공하며, 각 레이어는 개별적으로 제어 가능  
- **Docker/Podman** 기반의 손쉬운 배포와 **API 연동 자동화**로 자가 호스팅 및 개발 환경 설정이 간단  
- 모든 데이터는 **공개 OSINT 소스**에서 수집되며, **교육 및 연구 목적**으로만 사용 가능함을 명시  

---

### 개요
- **ShadowBroker**는 다중 도메인 **실시간 오픈소스 정보(Real-Time OSINT)** 대시보드로, 수십 개의 공개 데이터 피드를 통합하여 **단일 다크맵 인터페이스**에 표시  
  - 항공기, 선박, 위성, 지진, 분쟁 지역, CCTV 네트워크, GPS 교란, 지정학적 사건 등을 실시간으로 추적  
- **Next.js**, **MapLibre GL**, **FastAPI**, **Python**으로 구성되어 있으며, 분석가·연구자·OSINT 애호가를 위한 시각화 도구로 설계  

### 주요 활용 사례
- **억만장자 개인 제트기** 추적  
- **위성 궤도 통과** 모니터링  
- **전 세계 해상 교통** 감시  
- **GPS 교란 지역** 탐지  
- **지진 및 재난** 실시간 관측  

### 기능 요약

#### 🛩️ 항공 추적 (Aviation Tracking)
- **OpenSky Network**를 통한 약 5,000대 이상의 상업 항공 실시간 위치 표시  
- **개인·군용 항공기** 별도 분류 및 **소유자 정보 포함 비즈니스 제트기** 추적  
- **비행 궤적 누적**, **선회 탐지**, **지상 상태 표시** 등 세부 기능 지원  
- 항공기 종류별 **정확한 SVG 아이콘** 제공  

#### 🚢 해상 추적 (Maritime Tracking)
- **aisstream.io WebSocket**을 통한 25,000여 척의 선박 실시간 데이터  
- **선박 유형별 색상 구분**(화물, 유조선, 여객선, 군함 등)  
- **미 해군 항모 11척**의 OSINT 기반 위치 추정 및 **GDELT 뉴스 스크래핑 자동화**  
- **크루즈·여객선 전용 레이어**, **줌 레벨별 클러스터 표시** 지원  

#### 🛰️ 우주·위성 (Space & Satellites)
- **CelesTrak TLE + SGP4** 기반 2,000개 이상 위성의 실시간 궤도 표시  
- 임무 유형별 색상 구분: 군사정찰(적색), SAR(청록), SIGINT(백색), 항법(청색), 조기경보(자홍), 상업영상(녹색), 우주정거장(금색)  

#### 🌍 지정학·분쟁 (Geopolitics & Conflict)
- **GDELT** 기반 최근 8시간 내 약 1,000건의 분쟁 사건 집계  
- **DeepState Map**의 우크라이나 전선 실시간 데이터  
- **SIGINT/RISINT 뉴스 피드** 및 **지역 정보 패널** 제공  
  - 국가 인구·수도·언어·통화·면적, 정부 형태, 국가 수반 정보(Wikidata), Wikipedia 요약 포함  

#### 📷 감시 (Surveillance)
- **2,000개 이상 교통 CCTV** 실시간 스트림 통합  
  - 런던(TfL), 오스틴(TxDOT), 뉴욕(NYC DOT), 싱가포르(LTA) 등  
- **자동 피드 감지 및 렌더링**, **줌 기반 클러스터 표시** 지원  

#### 📡 신호 정보 (Signal Intelligence)
- **GPS 교란 탐지**: 항공기 NAC-P 값 분석을 통한 간섭 지역 시각화  
- **라디오 인터셉트 패널**: 무전 감청형 UI 제공  

#### 🌐 추가 레이어
- **USGS 지진 데이터(24시간)**, **일·야 경계선 표시**, **실시간 금융시장 지수**, **거리·방위 측정 도구** 포함  

### 시스템 구조
- **Frontend (Next.js)**: MapLibre GL 기반 2D WebGL 지도, SIGINT 뉴스 피드, 제어 패널, 시장·라디오 모듈  
- **Backend (FastAPI)**: 다수의 데이터 소스(OpenSky, adsb.lol, CelesTrak, USGS, GDELT, CCTV 등)에서 주기적 수집  
- REST API를 통해 60~120초 간격으로 프론트엔드에 데이터 전달  

### 데이터 소스 및 API
| 출처 | 데이터 | 갱신 주기 | API 키 |
|------|---------|-----------|--------|
| OpenSky Network | 상업·개인 항공기 | 약 60초 | 선택 |
| adsb.lol | 군용 항공기 | 약 60초 | 불필요 |
| aisstream.io | 선박 위치 | 실시간 | 필요 |
| CelesTrak | 위성 궤도 | 약 60초 | 불필요 |
| USGS | 지진 | 약 60초 | 불필요 |
| GDELT | 분쟁 사건 | 약 6시간 | 불필요 |
| DeepState Map | 우크라이나 전선 | 약 30분 | 불필요 |
| TfL, TxDOT, NYC DOT, LTA | 교통 CCTV | 약 5분 | 일부 필요 |
| RestCountries, Wikidata, Wikipedia | 국가·지도 정보 | 요청 시 | 불필요 |

### 설치 및 실행

#### Docker/Podman 기반
- `git clone` 후 `./compose.sh up -d` 명령으로 자동 실행  
- 기본 포트: 프론트엔드 `3000`, 백엔드 `8000`  
- 환경 변수 `NEXT_PUBLIC_API_URL`로 포트 재설정 가능  

#### 코드 수정용 개발 환경
- **Node.js 18+**, **Python 3.10~3.12** 필요  
- `aisstream.io` API 키 필수, `OpenSky`, `LTA` 키 선택  
- `npm run dev`로 프론트·백엔드 동시 실행  

### 데이터 레이어 제어
- 항공기, 위성, 선박, 지진, CCTV, 분쟁, GPS 교란 등 **모든 레이어 개별 토글 가능**  
- 기본 활성화: 상업·군용 항공기, 위성, 항모, 지진, 분쟁, GPS 교란, 일·야 경계  

### 성능 최적화
- **Gzip 압축(92%)**, **ETag 캐싱**, **뷰포트 컬링**, **클러스터 렌더링**, **좌표 정밀도 축소(소수점 5자리)** 등으로 대규모 실시간 데이터 처리 효율화  
- **React.memo** 및 **디바운스(300ms)** 적용으로 렌더링 부하 최소화  

### 환경 변수
- 필수: `AIS_API_KEY`  
- 선택: `OPENSKY_CLIENT_ID`, `OPENSKY_CLIENT_SECRET`, `LTA_ACCOUNT_KEY`  

### 면책 및 라이선스
- 모든 데이터는 **공개 OSINT 소스** 기반이며, **비공개·기밀 정보 사용 없음**  
- **군사·정보 목적 사용 금지**, **교육·연구용 한정**  
- 각 API 제공자의 **이용 약관 준수 필요**  

### 프로젝트 구조
- **backend/**: FastAPI 앱, 데이터 수집 스케줄러, CCTV·항모·분쟁 데이터 처리  
- **frontend/**: Next.js 기반 지도·패널·필터·뉴스·시장·라디오 컴포넌트 구성  
- **docker-compose.yml**, **compose.sh** 등 자동 배포 스크립트 포함  

### 요약
- ShadowBroker는 **전 세계 실시간 OSINT 데이터를 통합 시각화하는 오픈소스 플랫폼**  
- **항공·해상·우주·지정학·감시·신호** 등 다중 영역을 하나의 지도에서 분석 가능  
- **Docker 기반 손쉬운 배포**, **고성능 렌더링**, **공개 데이터만 사용**  
- **보안·정보 분석 연구자 및 스타트업 데이터 엔지니어**에게 유용한 실시간 인텔리전스 도구

## Comments



### Comment 52748

- Author: ryudaewan
- Created: 2026-03-10T11:33:09+09:00
- Points: 1

쉐도우브로커! 오랫만에 메스이펙트 2를 떠올렸습니다. https://masseffect.fandom.com/wiki/Shadow_Broker_(enemy)

### Comment 52744

- Author: xguru
- Created: 2026-03-10T11:04:59+09:00
- Points: 1

해커뉴스 댓글보고 빵터졌네요   
  
"첫 커밋 zip파일안에 ./frontend/.env.local과 ./backend/.env가 유출되어 있었음"  
  
"그래서 이름이 OSINT(Open Source Intelligence)인 것임. 모든 게 공개되어 있음"

### Comment 52768

- Author: girr311
- Created: 2026-03-10T16:12:06+09:00
- Points: 1
- Parent comment: 52744
- Depth: 1

다운 받아보니 진짜로 있네요

### Comment 52761

- Author: zihado
- Created: 2026-03-10T15:16:27+09:00
- Points: 1
- Parent comment: 52744
- Depth: 1

ㅋㅋ 아 이건 좀 웃기네요 ㅋㅋㅋ

### Comment 52726

- Author: neo
- Created: 2026-03-10T08:33:00+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47300102) 
- 실제로 아무 조치를 취할 수 없는 데이터를 이렇게 **과도하게 인식**하는 게 바람직한 일인지, 아니면 단지 **스트레스와 자기효능감 저하**로 이어지는 길인지 궁금함  

- 일부 geojson을 **실시간 타일**로 최적화하는 작업이 정말 재미있고 몰입감 있는 프로젝트였음  
  이런 프로젝트들 봤는지 궁금함 → [PMTiles](https://github.com/protomaps/PMTiles), [Martin](https://github.com/maplibre/martin)
  - 두 프로젝트 모두 정말 좋아함. 현재 **ShadowBroker**는 실시간 레이더 트래킹(60초마다 FastAPI 백엔드에서 MapLibre로 GeoJSON 스트리밍)에 최적화되어 있음  
    그래서 지도 위에서 거의 **60fps 애니메이션** 수준의 부드러운 움직임을 얻고 있음  
    나중에 **PostGIS** 기반으로 항공 및 AIS 데이터를 아카이빙하게 되면 Martin으로 옮기는 게 좋겠지만, 실시간 타깃 때문에 타일 캐시를 계속 무효화해야 해서 지금은 과한 선택임  
  - **Protomaps**는 국가 단위 지도를 간단히 제공할 때도 유용함. CLI에 필요한 기능이 거의 다 들어있음 → [Protomaps CLI 문서](https://docs.protomaps.com/pmtiles/cli)  
    예전에 농업 프로젝트에 이걸 세팅해서 잘 썼음  

- 이 프로젝트가 [monitor-the-situation.com](https://monitor-the-situation.com/)과 비슷해 보임  

- “ShadowBroker is a real-time, full-spectrum geospatial intelligence dashboard”라는 설명은 조금 과장된 듯함  
  “Air and Space domain awareness” 같은 표현이 더 정확할 것 같음  
  **Geospatial intelligence**는 보통 위성 이미지 기반의 정보 수집을 의미하고, “spectrum”은 **빛의 스펙트럼**을 가리키는 경우가 많음  

- 첫 커밋의 `ShadowBroker_v0.1.zip` 안에 `./frontend/.env.local`과 `./backend/.env`가 **유출**되어 있었음  
  - 그래서 이름이 **OSINT**(Open Source Intelligence)인 것임. 모든 게 공개되어 있음  
  - 진짜 OSINT는 **댓글 속에 있다**는 농담을 던짐  
  - 왜 그걸 확인했는지 궁금함  

- 이 프로젝트 멋짐. [이 링크](https://curves-voluntary-livecam-sandra.trycloudflare.com/)가 떠오름  
  - 나도 비슷한 걸 만들고 있었음 → [cimple-gis 프로젝트](https://github.com/blue-monads/potato-apps/tree/master/cimple-gis)  
    완성해야 하는데 아직 시간이 없음  
  - 클릭하기 **위험해 보였지만 괜찮았음**  

- 멋진 **데이터 집계**임. 다만 피드 파이프라인에 **staleness 신호**를 추가하면 좋겠음  
  일부 소스(특히 위협 피드)는 업데이트 주기가 몇 초가 아니라 몇 시간 단위라서, 각 소스의 **마지막 업데이트 시각**을 표시하면 데이터 신선도 판단에 도움이 될 것임  

- 정말 멋짐. 공유해줘서 고마움.  
  하루에 몇 시간씩 한 달 정도 돌린다면 **API 비용**이 얼마나 나올지 궁금함. 감당 가능한 수준인지 알고 싶음  
  - 전부 **무료**라고 함  

- 아주 멋진 프로젝트임. 다만 개념, 피드, 디자인 전반이 [worldmonitor.app](https://www.worldmonitor.app/)을 많이 떠올리게 함  
  참고로 그쪽도 이미 **라이브 서비스**로 배포되어 있음
