기술 블로그
[s3c:w6:cat:tech:v1] 실무에서 직접 설계·운영한 백엔드 시스템과 의사결정 기록. Go·Java/Spring·PostgreSQL·Kubernetes 기반의 분산 시스템 패턴, 음성 AI 파이프라인(WebRTC·STT·LLM·TTS)의 latency·동시성 트레이드오프, OCR/문서 탐지 모델의 평가 지표(F1·Precision·Recall) 적용기 등을 다룹니다. 모든 글은 본인이 직접 운영하며 측정한 1차 데이터에서 출발합니다.
-
[WebRTC] STUN과 TURN, 언제 무엇을 — NAT 종류 × 성공률 매트릭스
결론 먼저 — Symmetric NAT가 양쪽이면 STUN은 0%다 A 측 NAT B 측 NAT STUN만으로 P2P 가능? fallback 필요 Full Cone 아무거나 O — Restricted…
-
[설계 판단] 서비스 분리는 비즈니스 도메인 중심으로 해야 한다
결론 먼저 서비스 분리는 비즈니스 도메인에 따라 수행하는 것이 적합하다. 이는 각 서비스가 특정 도메인에 집중할 수 있게 해주며, 서비스 간 의존성을 낮추는 장점이 있다.…
-
[WebRTC] 연결의 6단계 — Offer/Answer부터 ICE Connected까지
결론 먼저 — 단계별 실패 위치를 알면 디버깅이 빨라진다 단계 이름 대표 실패 원인 1 Signaling 채널 수립 WebSocket 인증/CORS/방화벽 2 SDP Offer/Answer 교환 codec…
-
[Go] INSERT-first protocol — Postgres partial UNIQUE를 분산 락으로 활용한 동시성 설계
GCS Copy(1~5초) 전에 DB INSERT를 먼저 수행해 Postgres partial UNIQUE 제약을 분산 락으로 활용. loser는 GCS Copy에 도달하지 못해 외부 호출 비용 0. Advisory lock…
-
[결과 판단] F1 Score — AI/OCR 탐지 성능을 하나의 숫자로 평가하는 방법
결론 먼저 — 측정 결과 지표 공식 값 Precision (정밀도) TP / (TP + FP) 0.8611 (86.1%) Recall (재현율) TP / (TP + FN) 0.9118…
-
[설계 판단] PDFium 벤치마크 — single vs multi 성능 비교와 Kubernetes 사양 산정
결론 먼저 — 벤치마크 결과와 필요 사양 벤치마크 핵심 결과 구성 평균 처리 시간 Speedup 페이지/초 보정 효율 single, 워커 1 23,697 ms 1.00x 3.1…
-
[AI 음성 상담] 데이터 플로우 5단계 — 각 단계의 실패 모드와 fallback
결론 먼저 — 5단계 × 실패 모드 × 복구 가능성 단계 핵심 동작 대표 실패 복구 1. 사용자 요청 인증·세션 토큰 발급 토큰 만료 /…
-
[음성 파이프라인] STT → LLM → TTS 전체 latency 분해 — 4구간 절단법
결론 먼저 — 음성 파이프라인 latency는 4구간으로 쪼개야 줄일 수 있다 구간 이름 대표 단축 전략 1 VAD → STT 종료 (사용자 발화 끝 인식)…
-
[문서 탐지] 시험지 OCR에서 TP/FP/FN 계산 기준 — 전체 객체 수 보존 관점
결론 — “전체 객체 수 보존”이 핵심 기준이다 시험지 OCR에서 TP/FP/FN을 계산할 때 가장 중요한 원칙은: “총합 문제 수가 일치되어야 정확하다” 부분 검출을 성공으로 인정하고,…
-
[설계 판단] RPC를 언제 쓰는가 — 라이브러리 통합 시 7가지 결정 기준
RPC를 언제 쓰는가, 그리고 이 프로젝트는 왜 RPC를 쓰는가 이 글은 두 가지를 정리한다. RPC가 무엇이고 어떤 문제를 해결하기 위한 도구인가 detection-mvp/image-extract가 PDFium 호출 방식으로…