Backend
.NET, Go, DB, API
-
[설계 판단] 1:1 AI 음성 상담을 위해 SFU를 ‘Dumb Pipe’로 둔 이유
결론 먼저 — 1:1 음성 상담의 미디어 토폴로지 비교 토폴로지 서버 CPU 대역폭 지연 구현 복잡도 1:1 상담 적합성 P2P (Mesh) 0 매우 낮음 최저…
-
[Pion] ForwardTrack 루프 — 미디어를 흘려보내는 가장 짧은 코드
결론 먼저 — 미디어 forward의 본질은 한 루프다 항목 값 핵심 코드 라인 수 ~10줄 Track 타입 TrackLocalStaticRTP 패킷 단위 RTP 패킷 (재인코딩 없음) 고루틴…
-
[설계 판단] 서비스 분리는 비즈니스 도메인 중심으로 해야 한다
결론 먼저 서비스 분리는 비즈니스 도메인에 따라 수행하는 것이 적합하다. 이는 각 서비스가 특정 도메인에 집중할 수 있게 해주며, 서비스 간 의존성을 낮추는 장점이 있다.…
-
[WebRTC] 연결의 6단계 — Offer/Answer부터 ICE Connected까지
결론 먼저 — 단계별 실패 위치를 알면 디버깅이 빨라진다 단계 이름 대표 실패 원인 1 Signaling 채널 수립 WebSocket 인증/CORS/방화벽 2 SDP Offer/Answer 교환 codec…
-
[설계 판단] PDFium 벤치마크 — single vs multi 성능 비교와 Kubernetes 사양 산정
결론 먼저 — 벤치마크 결과와 필요 사양 벤치마크 핵심 결과 구성 평균 처리 시간 Speedup 페이지/초 보정 효율 single, 워커 1 23,697 ms 1.00x 3.1…
-
[설계 판단] RPC를 언제 쓰는가 — 라이브러리 통합 시 7가지 결정 기준
RPC를 언제 쓰는가, 그리고 이 프로젝트는 왜 RPC를 쓰는가 이 글은 두 가지를 정리한다. RPC가 무엇이고 어떤 문제를 해결하기 위한 도구인가 detection-mvp/image-extract가 PDFium 호출 방식으로…