전체 글(283)
-
[Flutter] 때때로 생성자에서 비동기 요청을 하게되면, 비동기 요청이 실행되기 전에 dispose()가 호출될 수도 있다.
문제상황 ListView에 표시되는 ListViewItem은 필요한 데이터를 요청하기 위해 2~3개의 API를 순차적으로 조회해야했다. 문제는 사용자가 리스트를 스크롤할 경우, 요청하는 API의 수가 기하급수적으로 늘어난다는 것. 이러한 문제를 막기 위해서 스케쥴러를 구현하고, VisibilityDetector를 사용해 ListViewItem이 더 이상 화면에서 사라지면 API 요청을 취소하도록 작성했다. ListViewItem이 dispose를 호출할 때 역시 API 요청을 취소하도록 작성했다. 실제로 스크롤을 내리다보면 ListViewItem은 생성자를 호출하는 시점에 API 요청을 스케쥴링을 하고, ListViewItem이 더 이상 렌더링되지 않는 시점에는 스케쥴링한 API 요청을 취소하고 ..
2025.03.18 -
Prisma / RangeError: Maximum call stack size exceeded
발단 주말에 유튜브 주소를 전달하면 yt-dlp로 음원을 다운로드한 뒤, whisper.cpp을 사용해서 자막을 추출하는 express.js 서버를 만들었다. ChatGPT한테 이것 저것 물어보다가 데이터베이스로 뭘 쓰면 좋을지 고민이었는데, Prisma가 확장성이 좋다는 얘기를 듣고 Prisma로 결정하게 됐다. Prisma를 사용해서 데이터베이스에 파일 경로, 처리상태 등을 저장한 뒤 업무 시간보다 일찍 출근한 김에 노트북에도 환경을 구축해놔야겠단 생각이 들었다. 기억나는대로 환경변수를 설정하고, Docker를 사용해서 Prisma를 실행한 뒤, npx prisma generate를 실행하는 순간 Maximum call stack exceeded라는 에러가 뜨는게 아닌가. 딸랑 에러가 한 줄만 남..
2025.03.13 -
[Python] AIOAPNS를 사용한 APNs 푸시 메시지 전송
왜 FCM을 사용하지 않고 APNs를 사용하게 됐는가? AIOAPNS 패키지를 사용해서 APNs로 푸시 메시지를 발송 기능을 구현해야 할 일이 생겼다. 일반적인 경우 푸시 메시지를 발송할 일이 있다면 FCM을 사용해서 iOS/안드로이드 양쪽으로 푸시 메시지를 발송하게 되는데, 이번에는 FCM 토큰 유효기간으로 인한 의구심이 들었다. 파이어베이스 문서에 명시되어있는 비활성 토큰은 다음과 같다. 270일간 활동이 없으면 만료된 토큰으로 간주한다는 얘기인데, 이 '활동'이 푸시 메시지를 수신한 것을 의미하는지, 아니면 푸시 메시지를 수신한 이후 사용자가 아무런 반응을 보이지 않은 것인지 분명하지 않다. 비활성 등록 토큰은 FCM에 1개월 넘게 연결되지 않은 비활성 기기와 연결된 토큰입니다. 시간이 지날수록 ..
2025.02.24 -
📕 모두가 가면을 벗는다면
📕 모두가 가면을 벗는다면 ✏️ 데번 프라이스 지음, 신소희 옮김 📄 412p 모두가 가면을 벗는다면사회심리학자이자 작가, 활동가, 대학교수, 자폐인인 저자가 사회의 요구를 수용하다가 자신을 잃어버리고 고통받는 신경다양인(자폐, ADHD, 양극성 성격장애 등)들에 대해 이야기한다.www.aladin.co.kr 사회심리학자이자 작가, 활동가, 대학교수, 그리고 자폐인인 저자 '데번 프라이스'가, 자신이 자폐 증상을 인지하지 못한 채 살아가고있는 독자들에게 말을 거는 느낌으로 작성된 서적. 그러다보니 내성적이며 타인을 기피하는 성향을 가지고 있다면, 나도 자폐 스펙트럼인지 의심이 들기도 한다. 비자폐인이 이 서적을 읽어야할 이유는, 사회적으로 뿌리내린 자폐증에 대한 편견을 이겨내고 그들을 사회의 일원..
2025.02.24 -
[Python] PyFCM을 사용한 Push Notification 전송시 예외 처리를 사용한 FCM 토큰 관리
https://github.com/olucurious/PyFCM GitHub - olucurious/PyFCM: Python client for FCM - Firebase Cloud Messaging (Android, iOS and Web)Python client for FCM - Firebase Cloud Messaging (Android, iOS and Web) - olucurious/PyFCMgithub.com PyFCM을 사용해서 Push Notification을 전송하도록 했는데, PyFCM은 문서화가 잘 되어있지 않은건지, 아니면 언어 특성상 알아서 잘 쓰면 되는건지 에러 관련해서 처리하는 방법을 찾아볼 수가 없었다. Python을 사용한 Firebase Cloud Message를 찾아보면..
2025.02.18 -
📱갤럭시 5G 모바일 와이파이 SCR-01 중고 구매기
대부분의 발단은 당근마켓 당근마켓을 찾아보던 중 SCR-01이 13, 14만원선에 올라오는 것을 볼 수 있었다. 이게 뭐람, 하고 찾아보니 안드로이드가 탑재된 무선 라우터였다. 찾아보니 2021년에 해외에서 발매된 삼성 기기로 안드로이드11이 탑재되어있고, 시원시원한 화면에 데이터 사용량이 표시되는게 마음에 들었다. 무엇보다 adb를 사용해서 apk파일을 설치할 수 있고, 이를 사용해서 이래저래 갖고놀 수 있다는 점도 재밌어보였다. 이런 경우 물건을 구매하는 포인트는 실용성보다는, 얼마나 재밌게 갖고놀 수 있는가(...)가 아니겠는가. 물론 모바일 기기가 많아지면서 라우터가 탐나기도 했었고, 저번에 알리에서 구매했던 라우터가 3개월도 안되서 먹통이 되어버리는 바람에 더 이상 저렴한 라우터를 구매하기는 ..
2025.02.17