TRENDSHIFT DEEP-DIVE · 2026.05.21 · simplifaisoul/osiris

OSIRIS —
오픈소스 Palantir, 항공·위성·CCTV·재난을 한 지도에

8일 전 등장 → 1.1k stars · 211 forks. "오픈소스 Palantir 대안"으로 X(Twitter)·Reddit에서 바이럴. Next.js 16 + MapLibre GL + WebGL. 1만+ 실시간 항공기, 2000+ 위성·ISS, 1400+ CCTV 라이브 스트림, 지진·산불·원전·기상 모니터링, GDELT 분쟁 지역, 24/7 뉴스 라이브. "브라우저 안에 내장된 RECON Toolkit": 포트 스캔·DNS·WHOIS·SSL·IP intel·CVE 매칭까지.

0먼저, "Palantir이 뭔지"부터

왜 "오픈소스 Palantir 대안"이라는 한 문장이 — 8일에 1.1k stars를 모았나.

Palantir Technologies는 — 미국 정부·정보기관·군이 쓰는 데이터 분석 플랫폼을 만드는 회사. 2003년 페이팔 마피아 출신 Peter Thiel이 창업. CIA·FBI·국방부·이민세관집행국(ICE)이 — 자기 다양한 데이터를 한 지도·대시보드에 합쳐 "이 사람·이 차량·이 화물"을 추적하는 도구. "국가의 감시 도구의 정수"로 종종 비판 대상.

OSIRIS는 — "그 Palantir 스타일 대시보드를 — 오픈소스로 만든다"는 도전. 단, 정부 데이터를 쓸 수 없으니 — 공개된 OSINT(Open-Source Intelligence) 데이터만 사용. 1만+ 항공기는 ADS-B(공개 항공기 트랜스폰더), 위성은 NORAD(공개), CCTV는 인터넷에 공개된 스트림, 지진은 USGS, 분쟁은 GDELT. 모두 — 합법적이고 공개된 데이터 소스의 통합.

그 결과 — 한 WebGL 지도에 — 거의 신처럼 위에서 내려다보는 대시보드. X(Twitter)에서 한 사용자가 "CIA 도구처럼 보인다"고 트윗 → 바이럴 → 8일 만에 1.1k stars. "누구나 가질 수 있는 감시 능력"이라는 — 강력하고 양면적인 매혹.

용어
OSINT (Open-Source Intelligence)
신문·SNS·공공 데이터베이스·항공기 트랜스폰더 같은 — "누구나 합법적으로 접근 가능한 공개 정보"로 정보 분석을 하는 분야. 첩보 영화의 "비밀 도청"이 아니라 — 이미 공개된 점들을 연결해 패턴을 본다. 우크라이나 전쟁에서 — Bellingcat·OSINT 트위터 계정들이 — 정규 정보기관보다 빠르게 사건을 분석한 케이스가 유명.
용어
ADS-B (Automatic Dependent Surveillance–Broadcast)
항공기가 — "내가 여기 있어, 이 고도, 이 속도"를 위성·지상 수신기에 broadcast하는 프로토콜. 안전을 위해 — 거의 모든 상업/사적 항공기가 송신. flightradar24·FlightAware의 데이터 원천. OSIRIS도 ADS-B Exchange 같은 데이터 소스에서 가져옴.
용어
NORAD TLE / Two-Line Element
위성 위치를 — 두 줄 텍스트 포맷으로 표현한 데이터. NORAD(북미항공우주방위사령부)가 공개. 2000+ 위성 + ISS의 실시간 위치를 — 이 TLE로 계산. OSIRIS의 위성 레이어 본질.
용어
GDELT (Global Database of Events, Language, and Tone)
전 세계 뉴스를 — 실시간으로 파싱해 "사건·장소·관련 인물"을 구조화한 거대 데이터셋. 매 15분 업데이트. 분쟁·시위·외교 사건의 패턴 분석에. OSIRIS의 — /api/gdelt 엔드포인트가 이 데이터 노출.
용어
MapLibre GL + WebGL
Mapbox에서 fork된 오픈소스 지도 라이브러리. WebGL로 — GPU에서 직접 렌더링. 1만+ 마커가 한 지도에 떠 있어도 60fps 유지. OSIRIS의 핵심 시각 엔진. "DOM 기반 지도였다면 — 100개 마커에서 이미 버벅거렸을".

1한 줄 요약

전체 글의 핵심 메시지.

한 줄로 말하면

"공개 OSINT 데이터 12개 + WebGL 지도 + RECON Toolkit — 그 합쳐진 모습이 '오픈소스 Palantir'"

이 레포의 본질은 — 새 데이터 소스가 아니다. 항공·위성·CCTV·뉴스 데이터는 — 다 이전부터 있었다. 오로지 — "한 화면에 합쳐 보는 경험"이 새롭다. Palantir의 가치도 거기 있다 — 데이터 자체보다, 그것을 한 시야에 모으는 디자인.

그래서 8일 만에 1.1k stars는 — "이런 게 누구나 만들 수 있다는 깨달음"의 폭발. 정부 만의 권력이 — 한 명의 인디 개발자에 의해 — 오픈소스로 풀어진 듯한 인상. 양면적이지만 — 강력하다.

2왜 8일에 1.1k stars인가

바이럴 폭발의 정확한 메커니즘.

① "오픈소스 Palantir"라는 한 문장. 트위터 헤드라인용으로 — 완벽. "Palantir가 뭔지" 모르는 사람도 "정부가 쓰는 무서운 거"라는 직감. 즉시 클릭. 영어·중국어 양쪽에서 폭발. "미국 시뮬레이션을 한 명이 만들었다"의 서사.

② 시각적 충격. 1만+ 항공기가 — 실시간 3D 지구본에. 2000+ 위성 + ISS. 1400+ CCTV 라이브. 첫 30초 데모만 봐도 — "이게 정부 도구 아니야?"의 의심. "마우스를 비행기에 호버하면 — 어떤 회사·어떤 노선"도 다 나온다.

③ RECON Toolkit의 추가 magic. 단순 시각화가 아니라 — 브라우저 안에서 — 포트 스캔·DNS·WHOIS·SSL·CVE 매칭까지. "정보 수집 → 공격 가능성 평가"를 한 도구로. "Kali Linux의 핵심 기능들이 — 우아한 UI로".

④ 빠른 fork 확산 = 트래픽 신호. 211 forks · 1.1k stars 비율은 — 보통 0.05 이하인데 OSIRIS는 0.19. "코드를 자기 노트북에 받아 돌려보고 싶다"의 강한 욕구. fork 클론도 — stepw66/Clone-osiris, inde5media/osiris-Palantir 등 — 다수 등장.

⑤ 도덕적 논쟁의 양면성. "감시 도구의 민주화 → 시민 무기"라는 긍정 시각 + "스토커·범죄자에게 무기" 부정 시각이 동시. 어느 쪽 진영이든 — "빠르게 글을 써야 한다". 토론은 별을 만든다.

3기술 스택 — 의외로 표준적

강력해 보이는 것에 비해 — 부품은 일반 모던 웹.

3-1. 프론트엔드 (가장 큰 부분)

Next.js 16 (App Router·React Server Components·Server Actions), TypeScript, MapLibre GL JS(지도 렌더링), WebGL(GPU 가속), Custom CSS Design System, Tailwind CSS v4(스타일), Framer Motion(애니메이션), Lucide React(아이콘). "2026년 모던 웹 풀스택의 기본 구성".

3-2. 백엔드 (Next.js API routes)

모든 데이터는 — Next.js의 /api/* 라우트로 노출. 10+ 엔드포인트:

/api/flights         항공기 위치 (ADS-B 기반)
/api/satellites      위성 위치 (NORAD TLE 계산)
/api/earthquakes     지진 모니터링 (USGS)
/api/cctv            공개 CCTV 스트림 디렉토리
/api/news            뉴스 라이브 스트림
/api/fires           산불·열대저기압 (NASA FIRMS)
/api/maritime        선박 추적 (AIS)
/api/gdelt           분쟁·시위 (GDELT)
/api/weather         극단 기상 (NOAA·OpenWeather)
/api/scanner         포트 스캔·DNS·WHOIS·CVE 매칭 (서버 측)

3-3. RECON Toolkit (백엔드의 보안 위험 영역)

이 부분이 — "단순 시각화" vs "능동 정찰 도구"의 경계선. 포트 스캔(Nmap 호환 시도), DNS 조회, WHOIS, SSL/TLS 인증서 검사, IP 인텔, CVE(공개 취약점) 매칭 — 다 서버에서 실행. "브라우저 UI지만 — 실제로는 정찰 작업"이 일어난다. 사용자 도메인·IP를 입력하면 — "공격 가능성을 평가하는 데 쓸 수도 있다"는 점.

3-4. 데이터 소스 - 외부 API들

ADS-B Exchange / OpenSky Network(항공), CelesTrak(위성 TLE), USGS(지진), NASA FIRMS(산불), GDELT(분쟁), 다양한 CCTV 디렉토리 사이트. 모두 공개 API이지만 — rate limit·키 필요·ToS 제약이 따로따로. 운영은 — 매우 복잡한 작업.

4아키텍처 심화 분석

"많은 데이터 소스를 — 한 WebGL 지도로"의 디자인 패턴.

[클라이언트 (브라우저)]
   │ React + MapLibre GL + WebGL
   │  - HUD 패널 (레이어 토글: 항공·위성·CCTV·지진·...)
   │  - RECON Toolkit (도메인·IP 입력)
   │
   │ Server Actions / fetch
   ▼
[Next.js Server (Vercel deploy)]
   │
   │ ┌─── 캐싱 / Rate-limit / WebSocket?
   ▼ ▼
[API Routes — 10+ 데이터 소스 어댑터]
   │
   ├─→ ADS-B Exchange API (항공)
   ├─→ CelesTrak (위성 TLE)
   ├─→ USGS Earthquake API
   ├─→ NASA FIRMS (산불)
   ├─→ GDELT (분쟁)
   ├─→ Public CCTV directories
   ├─→ News stream APIs
   └─→ ... 등

[RECON Toolkit 백엔드]
   ├─→ Port scanner (TCP scan)
   ├─→ DNS resolver
   ├─→ WHOIS lookup
   ├─→ SSL/TLS inspector
   ├─→ IP geolocation
   └─→ CVE database (NVD)

핵심 설계 결정 4가지

결정 1
"WebGL 렌더링 — DOM 마커 X"

일반 지도 라이브러리(예: Leaflet)는 — DOM 마커 1000개부터 버벅. MapLibre GL은 — 마커를 GPU 셰이더로 그린다. 1만+ 항공기가 — 60fps 유지. "왜 OSIRIS가 빠르게 보이나"의 핵심 답.

결정 2
"API 라우트 = 어댑터 패턴"

각 데이터 소스는 — /api/<source>/route.ts 한 파일. 외부 API의 다른 인증·포맷·rate-limit을 — Next.js 라우트 안에서 흡수. 클라이언트는 — 통일된 GeoJSON 또는 JSON 응답만 받는다. "외부 API 변경 시 — 한 파일만 수정".

결정 3
"HUD-style UI"

전통 대시보드(좌측 사이드바·상단 헤더) X. 대신 — 지도 위에 떠 있는 반투명 패널들(HUD). 게임 인터페이스 느낌. 레이어 토글, 검색, RECON 도구 — 다 떠 있는 위젯. "시각적 충격"의 큰 부분.

결정 4 (위험)
"RECON 도구를 서버에서 실행"

포트 스캔·DNS·WHOIS — 클라이언트가 직접 못 한다(CORS·브라우저 제약). 그래서 — 서버에서 대리 실행. 이건 위험: ① 사용자가 — 자기가 권한 없는 IP를 스캔 가능 ② 서버 운영자는 — 대량 스캔의 책임자가 됨. "오픈소스로 배포 = 책임도 분산"이라는 입장이지만 — 법적 회색지대.

5디렉토리 구조 해부

표준 Next.js 16 + 명확한 레이어 분리.

osiris/
├── src/                       ← 소스 루트
│   ├── app/                   ← Next.js 16 App Router
│   │   ├── api/               ← 데이터 어댑터 (10+)
│   │   │   ├── flights/route.ts
│   │   │   ├── satellites/route.ts
│   │   │   ├── earthquakes/route.ts
│   │   │   ├── cctv/route.ts
│   │   │   ├── news/route.ts
│   │   │   ├── fires/route.ts
│   │   │   ├── maritime/route.ts
│   │   │   ├── gdelt/route.ts
│   │   │   ├── weather/route.ts
│   │   │   └── scanner/route.ts   ← RECON 도구
│   │   ├── layout.tsx
│   │   └── page.tsx               ← 메인 지도 UI
│   ├── components/            ← UI 컴포넌트 (평면 배치)
│   │   ├── OsirisMap.tsx      - MapLibre 지도 컨테이너
│   │   ├── LayerPanel.tsx     - 레이어 토글 패널
│   │   ├── OsintPanel.tsx     - OSINT 정보 패널
│   │   ├── IntelFeed.tsx      - 인텔 피드
│   │   └── SearchBar.tsx      - 검색 UI
│   └── lib/                   ← 비즈니스 로직
│       ├── ai-engine.ts       - AI 분석 엔진
│       ├── osint-utils.ts     - OSINT 유틸리티
│       ├── sanctions.ts       - 제재 목록 조회
│       ├── stealthFetch.ts    - 스텔스 fetch 래퍼
│       ├── ssrf-guard.ts      - SSRF 방어
│       └── sdk/               - 외부 서비스 SDK 래퍼
├── public/                    ← 정적 자원
├── Dockerfile                 ← 자체 호스팅용 (node:22-alpine)
├── docker-compose.yml
├── next.config.ts
├── tsconfig.json
├── package.json
└── README.md

주목할 점: Dockerfile + docker-compose이 있다 — Vercel 없이 — 자기 서버·NAS에서 그대로 자체 호스팅 가능. "우리 회사 사내 OSINT 도구"로 변신할 수 있다는 가능성.

6학습 포인트 — 코드 + 윤리 양쪽

기술적 가치와 — 무엇을 만들 것인가의 질문.

6-1. 다중 데이터 소스 통합 — 어댑터 패턴의 실전

10+ 외부 API를 — 통일된 GeoJSON으로 변환. 각 라우트의 코드가 — "한 파일에 한 어댑터"의 모범 답안. 외부 API 변경 시 — 그 파일만 수정. 자기 대시보드 프로젝트(Slack·Linear·GitHub 등 통합)에 그대로 적용 가능.

6-2. MapLibre GL + WebGL — 대규모 시각화

1만+ 마커가 — 60fps. 어떻게? WebGL 셰이더로 GPU에 일임. 이게 — "DOM 기반 차트"에서 "GPU 기반 시각화"로의 다리. 자기 회사의 대량 데이터 대시보드(IoT 센서 1만+ 추적, 큰 그래프 시각화)에 그대로 응용.

6-3. Next.js 16 App Router + Server Actions

이 레포는 — 2026 Next.js 16의 거의 모든 최신 기능을 사용. App Router, Server Components, Server Actions, Edge Runtime. "한 풀스택 프로젝트의 살아있는 베스트 프랙티스"를 — 한 곳에서.

6-4. OSINT 기술의 입문

OSINT는 — 저널리스트·연구자·법무·인권 단체에 가치 있는 합법 기술. 우크라이나 전쟁 — Bellingcat의 OSINT 분석이 — 정부보다 빠르게 진실을 폭로. OSIRIS의 코드를 정독하면 — 합법 OSINT 도구를 — 어떻게 만드는지의 청사진. 자기가 — 좋은 목적의 OSINT(예: 환경 감시·인권 감시) 도구를 만들 수 있다.

6-5. 윤리적 트레이드오프의 사례 학습

RECON Toolkit은 — "양면적 도구"의 정확한 사례. 자기 서버 보안 점검에는 합법·필요. 그러나 — 다른 사람 서버 스캔은 — 사법 영역(컴퓨터 보안법). 이 레포가 — 그 경계에 너무 가깝다. "오픈소스로 만들면 — 누가 쓸지 통제 못 한다"의 책임 문제. 자기 도구를 만들 때 — 이 트레이드오프를 의식할 시각을 얻는다.

7시스템 요구사항

실행 환경 + 운영 비용.

로컬 개발

Node.js 22+ + 빠른 인터넷

Node.js 22+ + npm/pnpm. npm run devlocalhost:3000. 첫 실행 시 — 각 데이터 소스 API에 한 번씩 요청 → 캐시 채움. 각 API 키 발급 필요(OpenSky, OpenWeather, NASA FIRMS 등 — 대부분 무료).

자체 호스팅 (Docker)

VPS 4 vCPU · 8GB RAM 정도

docker compose up -d로 — 한 박스에서. Vercel 무료 티어로 — 개인 데모는 충분. 트래픽이 늘면 — VPS 또는 자체 NAS. 대량 API 호출이 발생하므로 — 각 외부 API의 rate limit 주의.

법적 고려
"RECON Toolkit을 — 인터넷에 노출 X"

자기 서버에 — RECON 활성으로 노출하면 — 익명의 누군가가 자기 서버를 통해 — 다른 서버를 스캔한다. 법적 책임이 운영자에게. macOS 컴퓨터 보안법 / 한국 정보통신망법 위반 가능. 데모를 — 자기 인증된 IP/도메인만 입력 가능하게 제한 — 또는 — RECON 기능을 끄고 호스팅.

8직접 해볼 수 있는 실습 과제

난이도별 4개. 윤리적 고려 포함.

난이도 ★ (1시간)

"공식 데모 — osirisai.live에서 30분"

저자가 운영하는 — 공식 데모 사이트에서. 항공·위성·CCTV 레이어를 켜고 — 자기 도시 위에 무엇이 있는지. 이미 5분이면 — "와, 우리 동네 위로 매일 비행기 50대가 지나가는구나"의 깨달음. 로컬 설치 없이 — UI/UX 체험만.

난이도 ★★ (반나절)

"로컬 클론 + 한 데이터 어댑터 정독"

레포 fork → 로컬 실행. app/api/flights/route.ts 또는 app/api/earthquakes/route.ts를 — 한 줄씩 정독. 외부 API 호출 → 변환 → 클라이언트 응답의 흐름이 — 어떻게 한 50줄로 구현되는지. 자기 도메인에 — 같은 패턴 적용 가능.

난이도 ★★★ (2~3일)

"11번째 데이터 레이어 — 자기 관심사로"

예: 한국 한정 — "실시간 미세먼지", "한강 수위", "지하철 운행 현황", "공공 와이파이". 새 /api/<source> 라우트 추가. MapLibre 레이어로 — 시각화. HUD에 토글. "우리 동네 버전 OSIRIS"가 완성. 포트폴리오에 강력.

난이도 ★★★★ (1주 — 의식적)

"좋은 OSINT 도구 만들기 — 환경 또는 인권"

OSIRIS의 코드를 베이스로 — 의식적으로 "좋은 목적의 OSINT 도구"를 만든다. 예: "전 세계 산림 벌채 실시간 추적"(Global Forest Watch API), "권위주의 정부의 시위 진압 추적"(GDELT 필터링), "기후 위기 가시화"(NASA·NOAA 통합). "감시 도구 vs 시민 도구"의 차이는 — 누가·왜 만드느냐".

9관련 기술·윤리 심화 로드맵

기술 + OSINT + 책임감 있는 도구 만들기.

트랙 A — 대규모 시각화

WebGL·deck.gl·MapLibre 마스터

MapLibre의 — 커스텀 셰이더, layer 시스템, 카메라 컨트롤. deck.gl(Uber 산하) — 같은 영역의 React 친화 라이브러리. "1만+ 데이터 포인트의 60fps 시각화"가 자기 손에. IoT·금융 대시보드 시장의 핵심 기술.

트랙 B — Next.js 16 풀스택

App Router · Server Actions · Edge Runtime

OSIRIS는 — 2026 Next.js의 거의 모든 최신 기능을 활용. 한 줄씩 정독하면 — "풀스택 Next.js의 베스트 프랙티스"를 흡수.

트랙 C — OSINT 윤리·실무

Bellingcat 가이드 + OSINT Framework

Bellingcat은 — 세계 1순위 OSINT 단체. 그들의 공개 가이드·강의를 정독. "합법적이고 윤리적인 OSINT의 방법". OSINT Framework(osintframework.com)에서 — 도구 카탈로그. "수상한 도구 vs 시민 도구"의 차이를 — 실무 사례로.

트랙 D — 책임 있는 도구 설계

"이 도구가 어떻게 악용될 수 있나" 시나리오

자기가 만드는 도구가 — 어떻게 stalker·범죄·국가 감시에 쓰일 수 있는지. "악용 시나리오 매트릭스"를 디자인 단계에 작성. mitigation 설계. "한 명의 개발자가 사회에 미치는 영향"을 — OSIRIS의 케이스로 깊이 체감.

10핵심 키워드 사전

OSINT·감시·기술 용어.

용어
Palantir
미국의 — 정부·정보기관용 데이터 분석 회사. 2003년 창업. CIA·FBI·국방부·이민세관집행국(ICE) 고객. 한국에선 — 검찰·국정원 도구 의혹. 양면적 평판. OSIRIS의 한 줄 마케팅 — "Palantir 대안"의 무게.
용어
Bellingcat
2014년 영국에서 시작 — "오픈소스 정보로 진실 폭로"의 시민 저널리즘. MH17(말레이시아 항공기 격추) 책임자 추적, 푸틴 측 인사 신원 확인 등 정규 언론을 — OSINT만으로 앞섰다. OSINT 윤리의 모범.
용어
CVE (Common Vulnerabilities and Exposures)
공개된 — 소프트웨어 취약점 표준 식별자(예: CVE-2024-12345). NVD(미국 National Vulnerability Database)가 운영. RECON Toolkit이 — 발견된 서비스 버전에 — 알려진 CVE를 매칭. "이 서버는 CVE-X에 취약하다"의 자동 판정.
용어
NORAD / CelesTrak
위성 추적의 표준 데이터 소스. NORAD는 — 군 기관이지만, 위성 추적 데이터를 공개. CelesTrak이 — 시민 친화 인터페이스로 제공. OSIRIS의 — 2000+ 위성 레이어의 원천.
용어
AIS (Automatic Identification System)
선박의 — ADS-B 버전. 상업 선박이 — 자기 위치·속도·목적지를 broadcast. OSIRIS의 /api/maritime가 — 이 데이터 통합. "전 세계 화물선·유조선·요트의 실시간 지도".
용어
Active Recon vs Passive Recon
Passive: 공개 정보만 (검색, WHOIS, DNS). Active: 대상 서버에 직접 요청 (포트 스캔, vulnerability scan). 법적 무게가 다름. OSIRIS의 RECON Toolkit은 — 둘 다 포함. Active는 — 권한 없이 하면 거의 모든 국가에서 위법.

11참고 링크

레포·관련 자료·윤리 자료.

레포 본체: github.com/simplifaisoul/osiris

공식 데모: osirisai.live

TrendShift: trendshift.io/repositories/30463

OSINT 학습: Bellingcat 가이드 · OSINT Framework

데이터 소스: OpenSky Network(항공), CelesTrak(위성), GDELT(분쟁).

한 줄 핵심

"공개 데이터의 통합이 — 어떻게 권력의 도구가 되거나 시민의 도구가 되는지의 살아있는 사례"

  1. 먼저 공식 데모를 보라. 30분 만에 — Palantir 스타일의 능력이 무엇인지 직감.
  2. 코드를 정독. 다중 API 어댑터 패턴 + WebGL 시각화 + Next.js 16 최신 기능의 — 한 패키지 살아있는 학습 자료.
  3. RECON 기능에 — 법적·윤리적 경계가 있다는 것을 의식. 자기 서버 외엔 — 절대 활성화 X.
  4. 좋은 목적의 OSINT 도구를 — 같은 패턴으로. 환경·인권·시민 감시 — 같은 기술이 — 정반대 가치.
  5. "무엇을 만들 것인가"의 질문을 — 코딩 전에. OSIRIS는 — 그 질문의 강력한 자극제.

분석 대상: simplifaisoul/osiris · TrendShift 20위(2026.05.21) · 1.1k stars · 8 days old · TypeScript · 작성: 유행레포정리 프로젝트