카테고리
VoiceMan
async 함수가 긴 JSON 파싱을 대신해 주지는 않는다
작은 JSON 파싱 실험으로 async의 실행 순서와 compute의 역할을 비교하고, 네이티브와 웹에서 달라지는 실행 위치를 설명한다.
Docker가 있는데도 PostgreSQL 테스트는 건너뛰었다
Docker API 버전 때문에 빠진 PostgreSQL 16 테스트를 실행하고, 두 트랜잭션의 잠금 경쟁을 어떤 순서로 검증했는지 따라간다.
이메일 코드 확인과 회사명 승인은 왜 별개일까
메일 수신 확인과 회사명 승인, 늦게 도착한 이전 코드, 같은 주소의 동시 확인을 구체적인 상황으로 설명한다.
Outbox 한 행의 수명: 저장·선점·발행·재시도
워커 두 개가 Outbox 행을 선점하는 과정과 발행 후 완료 기록 실패를 상태도와 실제 SQL로 설명한다.
누적 손실률이 통화가 끊긴 순간을 가리는 이유
같은 패킷 손실이 누적으로는 0.91%, 짧은 구간에서는 10%가 되는 이유와 VoiceLink의 5초 표본을 읽을 때 필요한 조건을 살펴본다.
Flutter 웹에서 화면 요청과 API 요청을 나누는 법
Nginx가 앱 문서를 보내는 것과 Flutter가 통화 화면을 여는 것을 나눠 보고, API 분기와 /call 인자가 필요한 이유를 설명한다.
세 개의 401이 같은 리프레시 토큰을 사용한다면
API 세 개가 동시에 401을 받는 예시로 공유 갱신 Future, 토큰 소비, 응답 유실 뒤 남는 상태를 읽는다.