# WiFi로 벽 너머가 보인다 — 카메라 없는 인물 감지 OSS 『RuView』를 ESP32로 시험하다 > WiFi 반사(CSI)로 카메라 없이 사람의 존재·호흡·자세를 추정하는 Rust 제 OSS 『RuView』. 9달러 ESP32-S3로 만드는 구조, Docker로 시험하는 방법, esp-csi와의 차이를 정리합니다. Date: 2026-07-21 Tags: WiFi, ESP32, CSI, Rust, OSS, 센싱 --- ![WiFi 신호의 반사로 벽 너머 사람의 자세를 감지하는 RuView 이미지](https://img.wiredxeco.com/wiredxeco/ruview-wifi-esp32/hero.webp) 카메라를 전혀 쓰지 않고, 방 안을 날아다니는 WiFi 전파만으로 사람의 존재·호흡수·심박수, 나아가 몸의 자세까지 추정한다. SF 같은 이야기지만, 이것을 **9달러짜리 마이컨과 OSS**로 재현할 수 있는 데까지 와 있습니다. 그 중심에 있는 것이 [`ruvnet/RuView`](https://github.com/ruvnet/RuView) — 6만을 넘는 스타를 모은 Rust 제 WiFi 센싱 플랫폼입니다. ESP32-S3를 센서 노드로 삼아 WiFi 전파의 「반사 패턴」을 해석하고, 영상을 전혀 갖지 않은 채 공간의 상태를 읽어냅니다. 이 글에서는 RuView의 구조와 아키텍처, 실제 시험 방법, 그리고 유사 OSS(espressif/esp-csi, WirelessEye)와의 차이를 정리합니다. 「내 프로젝트에 채택해야 할까」를 판단할 재료를 제공하는 것이 목적입니다. ## 왜 카메라 없이 사람이 「보이는가」 열쇠는 **CSI(Channel State Information / 채널 상태 정보)** 입니다. WiFi 전파는 송신기에서 수신기까지 일직선으로 도달하는 것이 아닙니다. 벽·가구·그리고 인체에 부딪혀 반사되어, 여러 경로를 거쳐 수신기에 도달합니다. 이 「어느 주파수의 전파가, 얼마나 감쇠하고, 얼마나 위상이 어긋나 도달했는가」를 세밀하게 기록한 것이 CSI입니다. - **사람이 움직인다** → 반사 경로가 바뀐다 → CSI의 파형이 변화한다 - **사람이 호흡한다** → 흉곽이 밀리 단위로 오르내린다 → CSI에 주기적인 미소 변동이 실린다 - **사람이 특정 자세를 취한다** → 반사 패턴에 고유한 「지문」이 나타난다 즉 WiFi 라우터는 전파를 내보내고 있는 것만으로 **이미 방을 「비추고」 있습니다**. RuView는 그 반사광(전파)을 읽어내는 수신 센서라는 위치에 있습니다. 카메라처럼 영상을 갖지 않기 때문에, 프라이버시 측면에서의 거부감이 압도적으로 작다는 것이 최대의 이점입니다. ## RuView의 아키텍처 RuView는 크게 3개 층으로 나뉩니다. ### 1. 센서 노드(ESP32-S3) **9달러짜리 ESP32-S3**가 CSI의 원시 데이터를 뱉어내는 역할을 담당합니다. ESP32 계열은 칩 레벨에서 CSI 취득 API를 가지고 있기 때문에, 전용 SDR(소프트웨어 정의 무선) 장비를 사지 않아도 시판되는 저렴한 마이컨으로 WiFi 센싱의 입구에 설 수 있습니다. 바로 이 점이 이 분야의 민주화를 단숨에 진전시켰습니다. ### 2. 처리 엔진(Rust) 원시 CSI는 노이즈투성이입니다. RuView의 본체는 Rust로 쓰인 신호 처리·추론 엔진으로, 여기서 다음을 수행합니다. - 노이즈 제거·위상 보정 등의 전처리 - 호흡·심박 같은 주기 성분의 추출 - 자세·존재 감지를 위한 특징량 계산과 모델 추론 Rust를 택한 것은 실시간성과 메모리 안전성의 양립을 노린 것이겠지요. 엣지에서 상시 돌리는 신호 처리에는 이치에 맞는 선택입니다. ### 3. 시각화·API 층 추정 결과를 대시보드나 API를 통해 외부로 내보내는 층입니다. Docker로 한꺼번에 띄울 수 있기 때문에, 우선 손 안에서 전체상을 파악하는 것이 지름길입니다. ## Docker로 시험하기 깊게 작업을 만들기 전에, 먼저 **동작하는 상태**를 보는 것이 이해의 지름길입니다. RuView는 Docker Compose로 일괄 실행되는 구성으로 되어 있습니다. ```bash git clone https://github.com/ruvnet/RuView.git cd RuView docker compose up ``` 이것으로 처리 엔진과 시각화 층이 기동하고, 브라우저에서 대시보드에 접속할 수 있습니다. 실기 ESP32-S3가 손 안에 없어도 **샘플 CSI 데이터를 흘려 넣어 동작을 확인할 수 있는** 구성으로 되어 있으므로, 「애초에 CSI에서 무엇을 읽을 수 있는가」를 체감하려면 여기부터 시작하는 것이 최단 경로입니다. 실제로 센싱하려면 ESP32-S3에 펌웨어를 써넣고, CSI 스트림을 엔진을 향해 보내는 데까지 진행합니다. 이 단계에서 비로소 「벽 너머의 호흡」이 숫자로 나타납니다. ## esp-csi / WirelessEye 와의 차이 WiFi 센싱 계열 OSS는 RuView만이 아닙니다. 채택 판단을 위해 대표적인 3가지를 정리합니다. ### espressif/esp-csi Espressif 공식 리포지토리로, **ESP32에서 CSI를 취득**하기 위한 펌웨어와 샘플이 중심입니다. 위치로는 「CSI의 취득과 기본 샘플」이며, 상위의 추론·시각화·운용까지는 직접 짜는 것을 전제로 합니다. - **강점**: 공식·경량·칩에 가장 가까움, 확실히 CSI를 취득할 수 있음 - **약점**: 존재 감지나 자세 추정까지는 커버하지 않음. 토대이지 완성품이 아님 RuView는 이 esp-csi적인 「CSI를 취득한다」 레이어의 **위에 추론·시각화·운용**을 쌓은 것이라고 파악하면 관계가 깔끔해집니다. ### WirelessEye CSI를 실시간으로 시각화하는 데 주안점을 둔 도구입니다. 「전파에 무엇이 비치고 있는가」를 우선 눈으로 보고 싶은 연구·학습 단계에서 강합니다. 다만 그대로 제품에 넣는 처리 기반이라는 성격은 아닙니다. ### RuView의 위치 | OSS | 주안점 | 완성도의 성격 | |---|---|---| | esp-csi | CSI의 취득 | 토대(상부는 직접 제작) | | WirelessEye | CSI의 시각화 | 관찰·학습용 | | RuView | 취득〜추론〜시각화 | 통합 플랫폼 | **「우선 구조를 이해하고 싶다」면 esp-csi나 WirelessEye로 전파를 들여다보는 것이 빠릅니다. 「존재·호흡·자세까지 일관되게 시험하고 싶다」면 RuView**, 라는 역할 분담입니다. ## 채택을 검토할 때의 현실적인 주의점 꿈이 있는 기술이지만, 업무에서 쓴다면 냉정한 선긋기가 필요합니다. - **정확도는 환경 의존**: 가구 배치, 벽의 재질, 다른 WiFi 기기의 간섭으로 CSI는 크게 변합니다. 「어떤 방에서든 즉시 정확도가 나오는」 것이 아니라, 환경별 캘리브레이션이 전제가 됩니다. - **카메라의 대체가 아니라 다른 것**: 개인의 식별이나 세밀한 동작 인식은 카메라의 영역입니다. CSI가 강한 것은 「누구」가 아니라 「있다/움직였다/호흡하고 있다」와 같은 **프라이버시를 배려한 거친 상태 파악**입니다. - **용도를 가림**: 고령자 지켜보기, 재실 감지에 의한 공조·조명 제어, 취침 중의 바이탈 모니터 등, **카메라를 두고 싶지 않은 장소**에서야말로 진가가 나옵니다. 바꿔 말하면, 이 「카메라를 둘 수 없다/두고 싶지 않다」는 제약이 있는 현장에서는 9달러 ESP32로 시작할 수 있는 RuView는 대단히 매력적인 선택지입니다. ## 정리 WiFi 센싱은 전용의 고가 장비가 필요했던 시대에서, **저렴한 마이컨과 OSS로 누구나 시험할 수 있는** 단계에 들어섰습니다. RuView는 그 「취득에서 추론·시각화까지」를 하나로 묶은, 현시점에서 가장 진입하기 쉬운 입구 중 하나입니다. 우선 Docker로 돌려 CSI에 무엇이 비치는가를 체감하고, 감이 오면 ESP32-S3를 한 장 사서 실측으로 나아간다 — 이 순서라면 수천 엔과 몇 시간으로 「WiFi로 벽 너머가 보이는」 세계에 닿을 수 있습니다. 센서 데이터의 처리 기반이나, 이러한 엣지 디바이스를 얽은 제품 개발을 검토하고 계신다면, [주식회사 와이어드&에코](https://www.wiredxeco.com/) 까지 부담 없이 상담해 주십시오.