Backend
.NET, Go, DB, API
-
듀얼 환경 통합 후속 정리 — 버전 단일화, 데드 코드 정리, 업로드 가드
단일 바이너리 STAGING/PROD 런타임 결정 구조로 통합 완료 후, 이전 구조의 흔적을 정리했다. 핵심은 업로드 배치에 NSI 버전 ↔ 인자 버전 정합성 가드를 박는 것…
-
“마이그레이션이 잘 됐다”는 어떻게 증명하는가 — 5가지 필수 항목
“마이그레이션이 잘 됐다”는 말은 증명되어야 합니다. 핵심 세 축: 숫자로 일치한다(Row Count) + 샘플로 일치한다(Checksum) + 실패가 없다(0건 명시). 여기에 엣지 케이스 확인과 운영 영향…
-
개발 문서에서 자주 만나는 영어 ‘~성’ 단어 7개 한 페이지 — -ity / -ability 접미사 완전 정리
availability·reliability·scalability — SRE 4 골든 시그널의 3개가 같은 접미사를 공유하는 이유. -ity / -ability 가 만드는 추상명사를 7개 단어 한 페이지로 분해.
-
[설계 판단] 서비스 분리는 비즈니스 도메인 중심으로 해야 한다
결론 먼저 서비스 분리는 비즈니스 도메인에 따라 수행하는 것이 적합하다. 이는 각 서비스가 특정 도메인에 집중할 수 있게 해주며, 서비스 간 의존성을 낮추는 장점이 있다.…
-
[설계 판단] PDFium 벤치마크 — single vs multi 성능 비교와 Kubernetes 사양 산정
결론 먼저 — 벤치마크 결과와 필요 사양 벤치마크 핵심 결과 구성 평균 처리 시간 Speedup 페이지/초 보정 효율 single, 워커 1 23,697 ms 1.00x 3.1…
-
[WebRTC] 외부 TURN 서비스 vs self-host — 4축 의사결정
결론 먼저 — 4축 비교 축 외부 TURN 서비스 self-host (Coturn / Pion TURN) 시작 비용 0 (가입 즉시) VM/리전 설정 필요 변동 비용 분당…
-
[설계 판단] 미디어 평면과 비즈니스 평면을 두 서비스로 쪼갠 이유
결론 먼저 — 한 서비스 vs 두 서비스, 4축 비교 축 한 서비스 두 서비스 분리 장애 격리 한쪽이 죽으면 둘 다 격리됨 배포 주기…
-
[WebRTC] 연결의 6단계 — Offer/Answer부터 ICE Connected까지
결론 먼저 — 단계별 실패 위치를 알면 디버깅이 빨라진다 단계 이름 대표 실패 원인 1 Signaling 채널 수립 WebSocket 인증/CORS/방화벽 2 SDP Offer/Answer 교환 codec…
-
[Pion] ForwardTrack 루프 — 미디어를 흘려보내는 가장 짧은 코드
결론 먼저 — 미디어 forward의 본질은 한 루프다 항목 값 핵심 코드 라인 수 ~10줄 Track 타입 TrackLocalStaticRTP 패킷 단위 RTP 패킷 (재인코딩 없음) 고루틴…
-
[설계 판단] 1:1 AI 음성 상담을 위해 SFU를 ‘Dumb Pipe’로 둔 이유
결론 먼저 — 1:1 음성 상담의 미디어 토폴로지 비교 토폴로지 서버 CPU 대역폭 지연 구현 복잡도 1:1 상담 적합성 P2P (Mesh) 0 매우 낮음 최저…