노래클립 자동생성 파이프라인 - 방송 녹화, STT, Agent 판정
라이브 방송을 녹화해 신청곡 한 곡 구간만 클립으로 만드는 파이프라인입니다. 파드 하나가 축출되며 녹화 4건이 사라진 사고, Kubernetes Job으로 옮기자 이어하기가 따라온 과정, 가사와 STT를 겹쳐 경계를 찾는 알고리즘, 그리고 클립이 0개가 된 날 드러난 네 겹의 원인을 실제 코드와 수치로 정리합니다.
조현우 62 min read 채팅 키워드알림 서비스 - 멀티테넌트 키워드 알림
라이브 채팅 firehose 한 줄이 조직별 키워드에 걸려 Slack, Discord, 앱 푸시로 나가고 ClickHouse에 남기까지를 실제 코드로 따라갑니다. 단일 테넌트로 태어난 Go 서비스가 조직, 그룹, 채널 3층 구조를 얻는 동안 무엇을 바꾸고 무엇을 그대로 뒀는지 정리합니다.
조현우 75 min read 유튜브 임베드를 벗어나 직접 재생하기 : 광고 없이 video 태그로 유튜브 영상 서빙하기
노래책 콘솔에서 YouTube 반주 영상을 직접 재생하려고 만든 게이트웨이입니다. 추출과 다운로드를 한 노드에 묶어야 했던 이유, 출구 IP가 통째로 차단됐던 사고, 일관 해시로 singleflight를 살린 방법, 캐시 히트를 CloudFront로 넘긴 구조를 실제 코드와 설정으로 정리합니다.
조현우 52 min read SOOP, 치지직, 씨미 채팅 수집 커넥터로 12,000개 방송 채팅 수집하기
치지직, SOOP, 씨미 세 곳에서 수천 개의 채팅 WebSocket을 동시에 유지하며 만난 문제입니다. 두 겹 keepalive가 각각 다른 죽음을 잡는 이유, 68,248번의 Ping/Pong 측정이 상수를 정한 과정, 공유 출구 IP 하나가 만든 P0 인시던트를 코드와 함께 정리합니다.
조현우 49 min read 노래 제목과 Musixmatch 트랙 매칭하기 - LLM Agent와 HITL(Human-in-the-Loop)
결정론적 매칭이 회수하지 못한 3,067곡을 LLM 에이전트 배치로 되찾았습니다. 죽어 있던 상한, 서버 안의 HTTP 클라이언트가 된 도구, 리스 기반 멱등성, 회수율 게이트, 그리고 에이전트가 물러선 곡을 사람이 확정하는 검수 대기열까지 실제 코드와 실제 수치로 정리합니다.
조현우 45 min read !신청 사랑하긴 그 긴거 : 개떡같이 말해도 찰떡같이 알아듣는 LLM 기반 신청곡 매칭 로직
라이브 채팅의 신청곡 한 줄을 스트리머 노래책의 곡으로 매칭하는 파이프라인 전체를 코드 수준으로 정리합니다. 어떤 메시지를 신청으로 볼지 가르는 티어 분류기의 실제 상수부터 10단계 결정론적 캐스케이드, 자모 단위 fuzzy, 프롬프트 캐싱을 건 LLM 판정과 환각 차단까지 다룹니다.
조현우 66 min read 확장 프로그램 없이 브라우저에서 영상 키 조절하기
노래책 콘솔의 실시간 키 조절을 Web Audio로 구현한 기록입니다. 위상 보코더에서 WSOLA로 갈아타기까지 지나간 오진 세 건, 0 반음에서 물리적으로 우회해야 했던 이유, WSOLA 파라미터가 실제로 만들어내는 100ms대 지연까지 코드와 함께 정리합니다.
조현우 48 min read 멜로밍 기술 블로그를 시작합니다
멜로밍을 만들고 운영하며 마주한 기술적 도전과 노래책 서비스에 쌓인 노하우를 공유합니다.
조현우 2 min read