투케이2K

192. (Aws/Amazon) [Aws Iot Core] 클래식 섀도우 classic shadow 설명 정리 본문

Aws (Amazon)

192. (Aws/Amazon) [Aws Iot Core] 클래식 섀도우 classic shadow 설명 정리

투케이2K 2026. 3. 28. 20:56
728x90
반응형

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

제 목 : [Aws Iot Core] 클래식 섀도우 classic shadow 설명 정리

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / Aws Iot Core / classic / shadow


- 사전) 👉 Aws Iot Core 간단 설명 : 

  >> AWS IoT 는 IoT 디바이스를 다른 디바이스 및 AWS 클라우드 서비스에 연결하는 클라우드 서비스를 제공합니다.

  >> 디바이스가에 연결할 수 있는 경우 AWS IoT는 AWS 가 제공하는 클라우드 서비스에 디바이스를 AWS IoT 연결할 수 있습니다.

  >> AWS IoT Core 메시지 브로커는 MQTT 및 MQTT over WSS 프로토콜을 사용하여 메시지를 게시하고 구독하는 디바이스 및 클라이언트를 지원합니다. 
  
    - HTTPS 프로토콜을 사용하여 메시지를 게시하는 디바이스와 클라이언트도 지원합니다.


- 사전) 👉 MQTT (Message Queuing Telemetry Transport) 설명 : 

  >> MQTT 는 경량 메시지 프로토콜로, 주로 IoT(사물인터넷) 환경에서 사용됩니다

  >> MQTT 목적 : 제한된 네트워크 환경(저속, 불안정)에서 효율적으로 메시지를 주고받기 위해 설계

  >> MQTT 기반 : TCP/IP 위에서 동작

  >> MQTT 패턴 : Publish/Subscribe 모델을 사용

    - Publisher : 메시지를 발행하는 클라이언트

    - Subscriber : 특정 주제(topic)를 구독하는 클라이언트

    - Broker: 메시지를 중개하는 서버 (예: Mosquitto)

  >> MQTT 주요 특징 : 

    - 경량성 : 헤더가 매우 작음(2바이트부터 시작)

    - QoS (Quality of Service) : 
      $ QoS 0: 최대 한 번 전달(보장 없음)
      $ QoS 1: 최소 한 번 전달(중복 가능)
      $ QoS 2: 정확히 한 번 전달(가장 안전)

    - 지속 연결 : KeepAlive로 연결 상태 유지

    - Last Will and Testament (LWT) : 클라이언트 비정상 종료 시 브로커가 메시지 발행

    - 토픽 기반 라우팅 : 계층적 구조(/home/temperature 등)

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명] 
// --------------------------------------------------------------------------------------

1. AWS IoT 에서 클래식 섀도우 (Classic Shadow) 는 디바이스 (Thing) 의 상태를 클라우드에 저장하고, 디바이스와 애플리케이션 간 상태를 동기화하기 위한 기능입니다.

  >> ✅ 클래식 섀도우 (Classic Shadow) 는 하나의 Thing 에 대해 단 하나만 존재하는 기본 섀도우입니다.

    - Thing 상태를 JSON 형태로 저장
    - 디바이스가 오프라인이어도 상태 유지
    - 클라우드 ↔ 디바이스 간 상태 동기화

  >> ✅ 클래식 섀도우 추천
  
    - 단순 IoT 디바이스
    - 상태 1개만 관리하면 충분
    - 빠르게 구현하고 싶을 때


2. AWS IoT 에서 클래식 섀도우 (Classic Shadow) 는 공식적으로는 AWS IoT Device Shadow 기능의 기본 형태라고 보면 됩니다.

  >> ✔️ AWS IoT Device Shadow 는 AWS IoT Core 의 구성요소로, 물리적 IoT 디바이스의 상태를 클라우드에 가상 문서(JSON) 형태로 보관하는 서비스입니다. 
  
  >> ✔️ 이를 통해 애플리케이션은 디바이스가 오프라인이더라도 상태를 조회하거나 업데이트할 수 있습니다.


3. ✅ 기본 섀도우 구조 (핵심)

    {
        "state": {
            "desired": { // desired (희망 상태) : 클라우드(앱, 서버)가 원하는 상태
                "power": "on"
            },
            "reported": { // reported (보고 상태) : 디바이스가 실제 현재 상태 보고
                "power": "off"
            },
            "delta": { // delta (차이 상태) : desired ≠ reported일 때 자동 생성됨
                "power": "on"
            }
        }
    }


4. 기본 섀도우 동작 흐름

  >> 앱 → desired 업데이트

  >> AWS 가 delta 생성

  >> 디바이스가 delta 수신

  >> 디바이스 상태 변경 후 reported 업데이트


5. ✅ AWS IoT 클래식 섀도우 (Classic Shadow) MQTT 토픽 구조

  >> 상태 조회 : $aws/things/{thingName}/shadow/get

  >> 상태 업데이트 : $aws/things/{thingName}/shadow/update

  >> 응답 : 

    - .../accepted
    - .../rejected


6. ✅ AWS IoT 클래식 섀도우 (Classic Shadow) 특징 정리

  >> ✔ 장점
    - 디바이스 오프라인 상태에서도 제어 가능
    - 상태 동기화 자동 처리
    - MQTT 기반으로 실시간 처리

  >> ✔ 제약

    - Thing당 1개만 존재 (클래식)
    - 복잡한 상태 관리에는 부족


7. 클래식 섀도우 (Classic Shadow) 와 Named Shadow 와의 차이

  | 구분 | 클래식 섀도우 | Named Shadow |
  | -- | ------- | ------------ |
  | 개수 | 1개      | 여러 개 가능      |
  | 구조 | 기본      | 이름별 분리       |
  | 용도 | 단순 상태   | 복잡한 디바이스     |

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[MQTT (Message Queueing Telemetry Transport) 통신 설명]

https://kkh0977.tistory.com/3631

https://blog.naver.com/kkh0977/222971771381?trackingCode=blog_bloghome_searchlist


[android] 안드로이드 aws shadow mqtt 수행 publish , subscribe 결과 확인 - get, update, delete

https://kkh0977.tistory.com/6892

https://blog.naver.com/kkh0977/223560924808?trackingCode=blog_bloghome_searchlist


[AWS 콘솔 이벤트 토픽 설명 사이트]

https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/reserved-topics.html

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments