Claude Code로 실행 가능한 오픈 소스 하늘 카메라를 만들었습니다. 어젯밤에 유성 17개를 포착해서 일어나기 전에 분류까지 끝냈네요.
I built an open source sky camera that Claude Code can actually run. Last night it caught 17 meteors and had them sorted before I woke up.
핵심 요약
Claude Code를 활용해 유성을 자동으로 감지하고 분류하는 오픈 소스 하늘 카메라 시스템을 구축했습니다.
- 자동화 시스템 — Claude Code가 유성 감지, 데이터셋 구축, 모델 재학습을 직접 수행함
- 하드웨어 구성 — RTSP 카메라와 라즈베리 파이, 대용량 저장 장치를 활용해 24시간 촬영
- MCP 서버 활용 — Claude가 가이드와 규칙을 직접 학습하여 오류 없이 워크플로우를 실행함
- 커뮤니티 확장 — 여러 대의 카메라를 연동하여 유성 위치를 삼각 측량하는 네트워크를 꿈꿈

예전에는 하늘 카메라로 유성을 찾으려면 밤새 찍힌 영상을 몇 시간씩 돌려보면서, 일일이 프레임을 따고, 라벨링하고, 모델을 재학습시키고, 그러다 모든 별을 유성으로 인식하면 다시 처음부터 시작해야 했음. 그래서 Claude가 그 귀찮은 짓을 대신하게 하려고 openskycam을 만들었다.
이건 4K 카메라로 하늘을 24시간 내내 녹화해서 자기 디스크에 저장하는 방식임. 워크플로우가 프레임을 샘플링해서 탐지 모델을 돌리고, 탐지된 것들을 추적(움직이는 물체 vs 고정된 물체)으로 연결한 다음, 유성, 비행기, 고정된 불빛 같은 카테고리로 분류함. 웹사이트에서 하는 모든 작업은 API 호출로도 가능하고, MCP 서버도 있어서 Claude Code가 이 모든 걸 알아서 조종할 수 있음.
Claude가 하는 일
- 야간 워크플로우를 구축해서 영상이 들어올 때마다 매일 밤 자동으로 돌아가게 함
- 들어온 영상들을 검토하면서, 탐지된 것들을 하나하나 확인해서 승인하거나 거절함
- 모델이 자꾸 별을 비행 물체라고 우기길래, 내가 승인한 탐지 데이터로 데이터셋을 만들어서 재학습시켰음. 학습 안 했던 날에도 별 때문에 오작동하는 비율이 절반에서 7%로 줄었고, 유성 탐지율은 여전히 90%를 유지 중임
- 매일 아침 쓰레기 같은 데이터는 다 버리고 건질 만한 것만 문자로 보내줌. 구름 낀 밤에는 눈치껏 아무 말도 안 함
Claude Code와 잘 돌아가게 만든 비결
-
MCP 서버가 자체 가이드랑 스킬(워크플로우 만들기, 탐지 결과 찾기, 변경 사항 검증하기)을 내장하고 있어서, Claude가 내 프롬프트가 아니라 서버에서 직접 규칙을 배움
-
안전장치는 프롬프트가 아니라 서버에서 강제로 적용함: 키 생성 권한은 아무도 못 갖고, 삭제할 때는 미리보기를 보여주고 확인을 받아야 하며, 수정할 때도 최신 버전을 덮어쓰는 대신 에러를 띄움
-
설정은 알아서 돌아감:
npm run setup -- --yes를 치면 .env에서 필요한 걸 다 읽어오고, 빠진 설정이 있으면 그 이름을 띄우고 멈춤. Cloudflare 터널이랑 로그인 앱, API 키 만드는 건 사람이 직접 해야 함 -
make check로 아키텍처 검사를 해서 Claude가 코드를 엉뚱한 레이어에 처박으면 바로 실패하게 만듦
영상은 하룻밤 동안 찍힌 건데, 밤 10시부터 새벽 4시 30분까지 유성이랑 비행기가 탐지된 순간들을 다 모아놓은 거임.
관련 저장소
- openskycam (카메라, 탐지, 그리고 Claude가 쓰는 도구들):
