TL; DR: Moes Zigbee 리모컨으로 SmartThings에서 에어컨을 조작할 수 있게 해 주는 IR 리모컨 드라이버를 만들었습니다. 여기에서 설치할 수 있어요.
먼 옛날, 갤럭시 홈미니라는 물건이 있었습니다. 빅스비가 탑재된 스피커인데, IR 블라스터가 내장되어 있어 어떤 에어컨이든지 스마트싱스와 빅스비로 조작할 수 있는 신비한 능력이 있었죠. 하지만 갤럭시 홈미니는 갤럭시 S20 시리즈의 한국 사전판매 사은품으로만 제공된 뒤 정식 출시되지 않았고, 후속작도 나오지 않은 채로 6년이 흘렀습니다.
최근에 달팽이 사육장에 웹캠을 달아서 펫캠으로 쓰는 방법에 대한 글을 올리면서 타임랩스 프로그램이 아쉽다는 언급을 했었죠. 그래서 직접 만들었습니다. 세계 최초 (아마도) 달팽이 타임랩스 프로그램, 메밀캠(Memilcam)을 소개합니다. 달팽이가 아니더라도 뭐든지 찍을 수 있죠.
AT 프로토콜 SDK를 사용할 때는 흔히 계정의 ID로 사용하는 핸들(Handle) 대신 DID(Decentralized Identifier)를 사용해야 할 때가 있습니다. 핸들을 변경하거나 다른 서비스 제공자로 이동하더라도 동일한 사용자를 참조할 방법이 필요하기 때문입니다. 파이썬 AT 프로토콜 SDK를 사용할 때 계정의 DID를 알아내는 스크립트를 간단히 메모해 둡니다. (제가 까먹을 예정이라 참고용으로 쓰는 거예요!)
Postgres의 BIGSERIAL 타입을 Prisma로 가져오면 BigInt 타입이 됩니다. 이걸 #NestJS 컨트롤러에서 그대로 반환하면 이런 오류를 보게 되죠.
typeerror: do not know how to serialize a bigint
JSON.stringify() 함수에서 왠지 bigint 타입을 지원하지 않기 때문에 발생하는 문제라고 하는데, bigint를 반환하기 전에 string 같은 걸로 바꿔 주면 간단히 해결되겠지만 그렇다고 해서 bigint가 들어가는 모든 모델에 대해 타입 변환 함수 같은 걸 작성해 주기는 귀찮죠.
그런고로 오늘의 #뚝딱뚝딱 은 응답 DTO의 모든 bigint를 알아서 string으로 바꿔 주는 방법입니다. 더 나은 해결책이 있을 것 같기는 한데, 저는 이렇게 해결했어요.