728x90 반응형 IoT8 [CI] Flutter IoT 무중단 운영 시 Shorebird 고려사항 서론IoT 프로젝트를 제품으로 외부에 활용한지 2개월 가량이 지나갔다.앱 충돌, 메모리 최적화 등 많은 이슈가 있었고 네이티브를 제외한 개선은 Shorebird로 자동배포를 기획하였다.하지만, 백그라운드에서 앱이 다운로드가 정상적으로 이뤄졌는지에 대한 확인과 앱 재시작 시 shorebird patch가 정상적으로 동작하는지에 대한 검토에서 24시간 무중단 운영 상황에서의 Shorebird의 단점을 정리해보고자 한다.* Shorebird의 기술적 단점이 주제가 아닌 무중단 운영 환경에서의 단점임을 유의하자.Shorebird 동작 과정Develop : 네이티브 영역을 제외한 dart 코드 수정shorebird patch --platforms=android --release-version={version} .. 2024. 7. 29. [Flutter] StreamController 상태 관리를 통한 Memory Leak 개선 서론메모리 누수(memory leak)는 애플리케이션 성능 저하의 주요 원인 중 하나로, 사용자 경험에 악영향을 미칠 수 있습니다.특히, 파일 다운로드와 같은 반복적인 작업에서 메모리 누수가 발생하면 시스템 자원 고갈로 인해 애플리케이션이 비정상적으로 종료될 수 있습니다.이번 글에서는 파일 다운로드 기능에서 발생하는 메모리 누수를 해결하기 위한 개선 작업을 소개합니다.이론적 배경메모리 누수는 사용하지 않는 메모리 공간이 해제되지 않고 계속 점유되는 현상을 말합니다.파일 다운로드 과정에서는 스트림(Stream), 컨트롤러(Controller) 등이 올바르게 해제되지 않으면 메모리 누수가 발생할 수 있습니다.이를 방지하기 위해서는 사용한 자원을 명확하게 해제하고, 적절한 메모리 관리를 수행해야 합니다. 코딩.. 2024. 7. 15. [Summary] IoT 프로젝트 정리 서론이번 IoT 프로젝트에 대한 MVP가 완료되면서 발생했던 이슈와 간략한 아키텍처를 정리해본다.MQTT, FCM, Android 등 관련 개념을 살펴보고 최종적으로 적용된 내용을 정리해보자.이론적 배경Hardware (Krizer U4X CM BT, Rockchip RK3229)CPU : 4 Core, Rem : 2GB, Flash : 8GBOS : Android 5.1 Lolipop화면 회전, ROOT 권한, ADB 접근 등 IoT 디바이스 개발 환경 활용 크라이저(Krizer) U4X CM BT (RK3229 칩셋 탑재) : 크라이저 공식몰 eshop스마트한 세상을 만드는 크라이저 공식 쇼핑몰eshop.krizer.com BackendFastAPI, 운영 데이터베이스에서 데이터 처리 후 IoT 원격.. 2024. 5. 29. [Android] GApp, Google App이 없을 경우 FCM 서론원격 제어를 위해 FCM를 사용하던 도중 하드웨어에서 gapp이 사라지는 이슈가 발생했다.FCM 송신은 Success가 발생하나, 하드웨어에서 수신에 대한 이벤트가 하나도 감지되지 않은 이슈를 정리해본다.필요 개념FCM, Firebase Cloud MessageAndroid, iOS, Web 등 푸시 알림을 보내기 위한 라이브러리앱이 설치되어 있는 하드웨어가 Listener로 데이터를 수신받을 수 있는 채널로 활용한다. GAppGoogle System Base, Google Play services 등 안드로이드 관련 기능을 지원하는 라이브러리를 내포하고 있다. 결론FCM이 수신되지 않은 이유Backend Server에서 송신한 FCM은 FCM backend에서 처리되어 Android transpo.. 2024. 5. 20. [AWS IoT Core] 정책 및 인증서 설정 (Certificates & Policies) 서론AWS IoT Core 서비스를 활용하면서 기본적인 설정 방식이 개선되는 UX로 인하여 타 포스팅과 다르게 설정되어 있는 부분이 있었다.서비스 제공 기능 중 필요했던 핵심 부분만 정리하면서 초기 IoT 세팅에 도움이 되었으면 한다.AWS IoT CoreMQTT test clientMQTT 주제 게시 : device/test 등 주제를 설정하여, json 데이터를 웹에서 설정하고 전송해 볼 수 있는 기능MQTT 주제 구독 : #, device/test 등 구독할 주제를 지정하여, 정상적으로 주제가 게시되었는지 혹은 Message Queue를 호출하였는지 확인해볼 수 있는 기능CertificatesIoT Core 인증서 : X.509 공개키 기반 인증서, crt/public/private/CA1/CA3 .. 2024. 4. 26. [MQTT Broker] Python Topic Publish 서론금번 구현하는 IoT 시스템의 개발 환경은 주제를 게시하여 원격으로 제어 요청을 보내는 Backend와 주제를 구독하여 작업을 수행하는 IoT Node로 구성되어 있다.Backend Server에서 MQTT 메세지를 게시하는 방법을 점검해본다.이론적 배경Backend Server : Python(FastAPI)IoT Node : Dart(Flutter)가설awscrt, awsiot 등 AWS 지원 라이브러리를 활용하여 주제를 게시한다.mqtt_connection_builder.mtls_from_path 함수를 분석하여 MQTT 관련 패킷을 제어한다.검증AWS IoT Core 라이브러리를 활용한 주제 게시 (Publish)from awscrt import io, m.. 2024. 4. 24. 이전 1 2 다음 728x90 반응형