All(264)
-
[Flutter] isolate와 SharedPreferences, 그리고 파일에 대한 접근 2
이전에 isolate에서 SharedPreferences 패키지에 접근 시, 문제가 발생해서 파일에 데이터를 저장한 후 SharedPreferences처럼 사용하는 방법을 기재한 적이 있습니다. 당시 FirebaseMessaging.onBackgroundMessage() 함수에 넘겨준 콜백 함수가 Android에서는 isolate로 동작하고, SharedPreferences 내부 구현은 네이티브로 구현되어있는데, isolate에서 SharedPreferences에 접근이 안되는 원인을 찾지 못해서였죠. 당시에는 path_provider에서 제공하는 getApplicationDocumentsDirectory()함수를 사용해서 처리했고, 당시에는 isolate에서 파일을 읽고 쓰는 걸 확인했었습니다. [Fl..
2022.06.10 -
노션으로 관리하고 있는 Javascript 위클리 뉴스레터 정리 페이지
자바스크립트 위클리 정리 페이지 Javascript A new tool for teams & individuals that blends everyday work apps into one. zerodice0.notion.site 몇 주 전부터 Javascript Weekly를 받아보긴 하는데 바빠서 전부 정독하기에는 시간이 없길래, 대충대충 훑어보고 나중에 좀 천천히 읽기 위해 노션에 글을 정리하고 있습니다. 도움이 될 것 같진 않지만 뜨ㅡ이따에 올려보니 리트윗이 좀 되고 있길래, 혹시 몰라서 블로그에도 공유. ' ㅁ')/ 노션 아이콘은 노티콘에 업로드 된 것을 링크로 사용하고 있습니다. 노션 정리하실 때 아이콘이 필요하다!싶으시면 노티콘을 사용해보시는 것도 좋을 것 같네요. 음식 정리 페이지 물론 위클..
2022.03.23 -
[React] MutableRefObject와 LegacyRef
Input의 onChange에 setState를 할당해서 값이 바뀔때마다 상태값이 변경되도록 설정했더니, 매번 Input에 입력한 값이 변경될 때마다 렌더링이 다시 되는 기염을 토했다. 당연한 얘긴 줄 알고 있었는데 주리님이 보시고 ‘이럴때는 이런 식으로 최적화가 가능해요’라고 말씀해주셔서, react-hook-form, react-final-form, formic같은 애들에 대해 알게됐다. 조금 고민해보다가 ‘엥? 얘는 일단 간단하니까 useRef만 써도 되는거 아닐까?’라는 결론에 도달, Input에 ref를 냅다 꽂아버렸더니 LegacyRef에 MutableRefObject를 할당할 수 없다는 에러가 발생했다. 우선 Input의 ref를 보면 요 녀석은 LegacyRef|undefined를 받게 되..
2022.02.04 -
[Flutter] 백그라운드에서 띄운 푸시 알람 메시지를 터치해서 앱을 실행했을 때, getInitialMessage()가 동작하지 않는다.
꽤 예전에 FirebaseMessaging을 사용해서 전달받은 클라우드 메시지를, FlutterLocalNotifications를 사용해서 푸시 메시지로 띄우는 작업을 했었습니다. 이번에 맞닥뜨린 문제는 FlutterLocalNotifications를 사용해서 화면에 띄운 푸시메시지를 터치해서 앱이 실행됐을 때, FirebaseMassaging에서 제공하는 getInitialMessage()의 실행 결과값이 null로 반환되는 상황입니다. 물론 onMessageOpenedApp() 역시 기대한대로 동작하지 않습니다. private Task getInitialMessage(Map arguments) { return Tasks.call( cachedThreadPool, () -> { if (initialMe..
2022.02.04 -
회고-2021
다른 사람들은 부지런히 2021년이 끝나가는 12월 무렵부터 작성하기 시작하는 그 회고를, 어떻게 써야할지 몰라서 올해도 내팽개쳐놓다가 문득 생각나서 노션을 켠다. 구정 연휴가 끝난 뒤 밀린 업무를 막 처리하고 점심시간까지 30분 정도 남은 지금, 다른 업무를 잡고 으쌰으쌰! 하면서 처리하고싶을 정도로 의욕이 넘치는 사람은 아니기 때문일 것이다. 모름지기 숨만 쉬어도 귀찮은 사람답게 무슨 일이 있었는지 슬금슬금 정리해보려고 한다. Flutter 기존에 서비스되고 있던 영상관제(대충 원격지에서 모바일 앱을 실행한 뒤, 장치에 접속해서 영상을 RTSP로 수신하는 형태) 앱을 Flutter로 다시 만드는 작업을 했다. Figma를 사용해서 어느정도 UI의 가닥을 잡고, 두 명의 동료분들과 끊임없이 얘기를 하며..
2022.02.03 -
Onvif 라이브러리 크로스 컴파일 방법 정리
Onvif 라이브러리 크로스 컴파일 방법 정리 이번에는 libOnvif.so 라이브러리 파일을 생성하는 방법에 대해 정리해보고자 합니다. 현대사회를 살아가는 여러분들에게 이미 WSDL이나 SOAP은 거의 잊혀진 기술이다보니, 마치 로스트 테크놀로지같은 느낌일텐데요. 그나마 다행인 점은 검색하면 위키피디아 등에 어떤 기술인지 잘 설명이 되어있다는 점입니다. 물론 크게 도움은 안된다는게 문제지만 말이죠. 이 글에서는 SOAP 프로토콜을 통해 제공되는 Onvif WSDL을 기반으로 C/C++ 코드를 생성해내는 방법과, 오류 대처 요령에 대해 살펴봅니다. 만약 여러분이 Onvif 라이브러리를 빌드해야 할 일이 생겨서 컨플루언스 등에 남겨진 고문서를 찾아본다면 생각보다 쉽게 해결될수도 있지만, 의외로 난항에 부딪..
2022.01.05