IoT & Edge Physics
현실 세계의 데이터를 수집하는 센서 물리, 저전력 통신(MQTT, CoAP), 그리고 클라우드를 거치지 않는 엣지 컴퓨팅 아키텍처를 다루는 학습 노드입니다.
Article
M
Me
hyunyoun's Blog
web-emerging-technologieswebemerging-technologiesphysical-systemsio-tedge-physicsedge-physics-dynamicsio-t-systems8 min read
1. Overview
사물인터넷 및 엣지 물리(IoT & Edge Physics)는 클라우드(Cloud)라는 거대한 뇌가 모든 데이터를 처리할 때 발생하는 왕복 지연(Latency)과 막대한 서버 비용의 병목을 부수기 위해, 센서가 달린 말단 기기(Edge) 자체에서 1차적인 연산과 판단을 끝내버리는 분산 연산 역학을 다룹니다.
온도계, CCTV, 심박수 측정기 등 전 세계 수십억 개의 IoT(Internet of Things) 기기가 매초 쏟아내는 데이터를 전부 AWS나 GCP로 보내면 네트워크가 붕괴됩니다. 학습자는 클라우드로 데이터를 쏘기 전에 기기 안에서 쓰레기 데이터를 걸러내고(필터링) 딥러닝 추론을 돌려버리는 엣지 컴퓨팅(Edge Computing)의 연산 오프로딩(Offloading)을 배웁니다. 또한 건전지 하나로 5년을 버텨야 하는 센서들을 위해 TCP 대신 초경량 MQTT 프로토콜이나 저전력 무선망(LoRa/BLE)을 사용하는 통신과 배터리의 물리적 타협을 체화합니다.
2. Scope & Boundaries
In-Scope
- 엣지 연산(Edge Computing): Cloud vs Fog vs Edge 구조, 데이터 필터링/압축(Aggregation), 로컬 AI 추론(TinyML).
- 초경량 통신 프로토콜: MQTT, CoAP, QoS(Quality of Service) 레벨 구조.
- 저전력 무선 물리(LPWAN): LoRa, BLE, Zigbee 배터리/거리 트레이드오프.
- IoT 아키텍처: 펌웨어 무선 업데이트(OTA, Over-The-Air), 기기 쌍(Device Twin), 섀도우(Shadow) 동기화.
Out-of-Scope
- 클라우드 데이터센터 인프라(K8s/Docker): 서버 측의 거대한 쿠버네티스 군집 제어 09-02. Cloud Native Physics 영역으로 위임.
- 아두이노/라즈베리파이 납땜 회로 설계: 저항과 커패시터를 납땜하는 순수 전기전자 공학 기계/전자 공학 영역.
Boundaries
- 엣지 연산 vs 클라우드 연산 (14-01-04 vs 09-02): 클라우드(09-02)는 지연 시간(200ms)을 감수하고 무한대의 연산력을 빌리는 '외주'라면, 엣지 연산(14-01-04)은 인터넷이 끊기거나 10ms 안에 결정을 내려야 하는 자율주행차 브레이크를 위해 기기 내부에서 모든 것을 끝내는 '현장 결제' 물리학입니다.
3. Counterexample
- 클라우드 의존증 환상 (Cloud Dependency Fallacy): 공장 CCTV 영상을 '불량이 있는지만 판별'하기 위해 4K 60fps 화질 그대로 AWS 클라우드로 24시간 스트리밍하는 무지. 한 달 뒤 클라우드 네트워크 트래픽 비용(Egress)이 천문학적으로 쏟아집니다. 카메라 장비(Edge) 자체에 소형 칩을 박아 불량품이 발견되는 그 1초의 사진 한 장만 서버로 보내도록 연산을 현장(Edge)으로 오프로딩(Offloading)해야 대역폭 비용이 물리적으로 소멸합니다.
- 무거운 HTTP 맹신 (HTTP Vampire Fallacy): 산속에 설치한 배터리 기반 온도 센서에서 서버로 데이터를 쏠 때, 일반 웹처럼 무거운 HTTP 헤더(수백 바이트)를 달아 REST API로 통신하는 설계. 센서는 배터리가 생명인데 무거운 패킷을 암호화(HTTPS)까지 해서 쏘면 배터리가 한 달 만에 증발합니다. 헤더가 2바이트에 불과한 MQTT 프로토콜과 Sleep 모드를 활용해 배터리를 5년으로 늘리는 저전력 최적화가 필수입니다.
4. Prerequisites
- 네트워크 전송 레이어 (Basic): TCP와 UDP의 차이를 알아야, IoT 프로토콜이 왜 연결 유지를 포기하는 쪽으로 진화했는지 이해할 수 있습니다. (08-01. Network Layers)
- 모바일 배터리 물리 (Recommended): 기기가 잠들고 깨는(Wake Lock) 메커니즘을 알아야 저전력 통신이 배터리에 미치는 영향을 파악합니다. (13-04-03. Mobile Battery Physics)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 엣지 컴퓨팅(Edge Computing)과 데이터 필터링
- Why to Learn: 의미 없이 똑같은 온도 데이터 "25도"를 1초에 100번씩 서버에 보내 네트워크를 낭비하는 무지함을 차단하기 위함입니다.
- What to Learn: Edge Computing, Fog Computing, Data Aggregation, Offloading.
- How to Learn: 센서(Edge)가 온도를 100번 재더라도 1분 단위로 평균값만 묶어서(Aggregation) 1번만 클라우드에 쏘거나, 온도가 변했을 때(Delta)만 쏘도록 통신 트래픽을 로 물리적으로 압축하는 구조를 설계합니다.
- Implement: 초당 10번씩 들어오는 가짜 온도 센서 데이터를 받아서 10초 동안 버퍼(Buffer)에 담아둔 뒤, 평균값과 최댓값만 JSON으로 압축하여 10초에 한 번 출력하는 로컬 엣지 필터 함수 구현.
Core Topic 02: 초경량 프로토콜 MQTT 물리학
- Why to Learn: 불안정한 무선망(3G, LTE)에서 센서와 서버 간의 연결이 자꾸 끊길 때, HTTP의 무거운 3-Way Handshake 재연결 비용을 피하기 위함입니다.
- What to Learn: MQTT, Broker, Publish/Subscribe, QoS (0, 1, 2), Keep Alive.
- How to Learn: 센서(Publisher)가 데이터를 들고 중앙 브로커(Broker)에 데이터를 던져두고 바로 통신 칩을 꺼버리면, 브로커가 책임지고 클라우드(Subscriber)에 전달하는 Pub/Sub 비동기 우체국 모델을 도해합니다.
- Implement: 로컬 환경에 Mosquitto(MQTT Broker)를 띄워두고, 파이썬 스크립트 두 개를 열어 한쪽은
sensor/temp토픽을 1초마다 퍼블리시하고 다른 쪽은 구독하여 즉시 터미널에 프린트하는 브로커 통신망 구축.
Recommended
Core Topic 03: QoS 보장과 Device Twin(Shadow)
- Why to Learn: 지하실에 설치된 센서가 인터넷이 끊겼을 때도 서버 앱이 에러를 내지 않고 '마지막으로 알려진 상태'를 화면에 띄우게 방어하기 위함입니다.
- What to Learn: MQTT QoS Levels, Device Twin (디바이스 트윈 / 섀도우), 멱등성(Idempotency).
- How to Learn: 센서가 오프라인이더라도 서버 클라우드에 복제된 '그림자 객체(Shadow)'를 통해 유저가 온도를 '26도'로 세팅해두면, 센서가 온라인으로 깨어나는 순간 그림자의 상태가 센서로 흘러가(Sync) 동기화되는 딜레이 물리(Delayed Sync)를 추적합니다.
- Implement: AWS IoT Core (또는 Azure IoT Hub)를 모사하여, 센서 상태값을 담는 JSON을 딕셔너리로 저장해두고, 클라이언트가 센서 칩 대신 딕셔너리를 업데이트하면 나중에 센서가
desired상태를 확인 후 스스로를 바꾸는 State Machine 작성.
Core Topic 04: 저전력 무선 통신(LoRa/BLE)과 OTA 배포
- Why to Learn: 10km 떨어진 바다 위의 부표 센서와 통신해야 하는데, 통신사 요금을 내기 싫거나 와이파이가 안 닿는 물리적 거리를 돌파하기 위함입니다.
- What to Learn: LPWAN(LoRaWAN, NB-IoT), BLE(Bluetooth Low Energy), OTA (Over-The-Air) Firmware Update.
- How to Learn: 와이파이는 데이터는 많이 보내지만 전력 소모가 커서 몇 시간 만에 방전되고, LoRa망은 데이터는 한 줄(수십 바이트)밖에 못 보내지만 건전지로 10km 거리를 5년 동안 뚫어내는 주파수 대역폭과 전력량의 Trade-off 공식을 비교합니다.
- Implement: (이론 및 아키텍처) 수십만 대의 펌웨어(C언어 바이너리)를 업데이트(OTA)할 때, 1만 대씩 그룹핑하여 버전을 올리다 10대라도 업데이트 도중 벽돌(Brick)이 되면 즉시 업데이트 롤아웃을 중지시키는 OTA CI/CD 파이프라인 설계도.
7. Terminology
8. References
Primary References
- [CS2023: Networks / Cyber-Physical Systems] — 임베디드 네트워크 전력 소모 모델(Power Consumption Model), LPWAN 토폴로지.
- [SWEBOK v3: Software Architecture] — 엣지/클라우드 하이브리드 분산 시스템 아키텍처 및 델타 동기화(Delta Sync) 메커니즘.
Secondary References
- [OASIS MQTT Version 5.0 Specification] — 브로커 연결, 토픽 필터링, Last Will and Testament(유언 메시지), Quality of Service 물리 규약.
- [Edge Computing: Vision and Challenges] — 대역폭 한계 극복을 위한 비디오 프레임 추출 및 로컬 머신러닝 오프로딩(TinyML).
Industry References
- [AWS IoT Core Documentation] — 디바이스 섀도우(Device Shadow)의
desired및reported상태 충돌 해결 정책. - [Azure IoT Hub Device Management] — 디바이스 프로비저닝, X.509 인증서를 통한 엣지 기기 무결성 서명 및 무선(OTA) 롤아웃 안정성 제어.
9. Final Checklist
Primary Checklist
- 초당 60장씩 들어오는 4K CCTV 영상을 클라우드 서버로 전부 전송하는 대신, 카메라(Edge) 내부에서 딥러닝(TinyML)으로 필터링해 의미 있는 데이터만 전송하도록 대역폭 병목을 잘라냈는가?
- 센서에서 수집된 데이터를 서버로 보낼 때, 무거운 HTTP REST API 대신 2바이트 수준의 헤더(Header)만 사용하는 MQTT/CoAP 프로토콜을 도입하여 네트워크 페이로드 크기를 압축했는가?
Secondary Checklist
- 불안정한 산속 무선망에서 기기 연결이 끊어지더라도, 클라우드 서버에 Device Shadow(Twin) 아바타를 구성하여 '마지막으로 알려진 상태'를 캐싱하고 동기화할 수 있게 설계했는가?
- MQTT 메시지 전송 시 데이터가 100% 서버에 도착해야 하는지(QoS 1, 2) 혹은 손실되어도 다음 데이터로 무시할 수 있는지(QoS 0)를 배터리 소비량(Battery Drain)과 타협(Trade-off)하여 설정했는가?
Industry Checklist
- 배터리로 5년을 구동해야 하는 농업용 온도 센서에 와이파이(Wi-Fi)나 LTE를 꽂는 실수를 방지하고, 전력 소모가 극히 적은 LoRaWAN이나 BLE(Bluetooth Low Energy)의 슬립(Sleep) 모드 물리를 도입했는가?
- 수십만 대의 현장 기기 펌웨어를 무선(OTA)으로 업데이트할 때, 배포 도중 정전이나 단절이 발생하여 기기가 벽돌(Brick)이 되는 현상을 막기 위해 듀얼 뱅크(Dual Bank/A-B Partition) 롤백 아키텍처를 구성했는가?