Posts
카테고리별 글 모음
처음에 쉽게 보다가 3번이나 날려버린 PR - hover 위치와 seek 위치가 다른 문제
seekbar에 마우스를 올렸을 때 보이는 타임스탬프와 실제 seek 위치가 다른 버그. 한 번에 해결하지 못하고 PR을 3개나 올린 과정을 공유합니다.
콘솔 없이 UI를 설정할 수 있게 - Shaka Player Demo의 UI Configuration
Shaka Player 데모 앱에서 UI 설정을 변경하려면 콘솔을 열어야 했습니다. 이 불편함을 해결한 PR #9807의 과정을 공유합니다.
14개 필드를 3개로 - Shaka Player 트랙 설정의 재설계
브라우저의 언어 우선순위 목록에서 시작된 Issue #1591이 어떻게 전체 설정 구조를 재설계하는 PR로 이어졌는지, 그 과정을 공유합니다.
문제의 원인을 Safari에서 찾으면 대부분 맞다? (feat. Alpha Channel)
GIF의 용량을 줄이기 위해 Alpha Channel을 지원하는 영상 코덱을 찾다가, Safari의 문제를 발견하게 된 이야기. 코덱별 Alpha Channel 지원 현황과 브라우저 호환성을 정리합니다.
라이선스 요청이 실패하면 어떻게 될까?
DRM 라이선스 요청이 실패했을 때 재시도하는 retryLicensing() 기능을 Shaka Player에 구현한 과정을 공유합니다. 7년 된 이슈, EME 스펙의 제약, 그리고 Tizen 디바이스 랩까지.
DRM도 갱신하는 법이 다릅니다
Widevine, FairPlay, PlayReady - 세 가지 DRM 키 시스템의 라이선스 갱신 방식이 어떻게 다른지, 그리고 Shaka Player에 이 기능을 구현한 과정을 공유합니다.
캐시는 같은 질문에 같은 답을 하고 싶어합니다
RSC의 CDN 히트율이 떨어지는 이유와 이에 대한 논의중인 해결책에 대해 소개합니다.
TC39 proposal-upsert: Map의 새로운 메서드를 Shaka Player에 적용하기까지
TC39 Stage 3 제안인 Map.getOrInsert를 Google Shaka Player 오픈소스에 폴리필로 구현하고 기여한 경험을 공유합니다.
Netflix 화면을 캡처하면 왜 검은 화면이 나올까?
스트리밍 서비스에서 화면 녹화가 안 되는 이유, DRM과 EME/CDM의 동작 원리를 알아봅니다.
Google Shaka Player에 첫 PR을 보냈습니다
오픈소스 미디어 플레이어 Shaka Player에 EME 관련 기능을 구현하고 LGTM을 받기까지의 과정을 기록합니다.
여러분의 일상은 다운로드로 이루어져있습니다.
ICT 인턴십에서 마주한 다운로드 기능 구현기와 기술적 고민들
2025년을 돌아보며
2025년을 돌아보며 2026년의 목표에 대해 공유하고 이야기를 나눠보려고 합니다.
블로그를 새로 만들었습니다.
벨로그에서 Gatsby 기반 개인 블로그로 이전한 이유와 새로운 블로그의 기능들을 소개합니다.
Next.js App Router에서 prefetchQuery와 Suspense로 데이터 스트리밍하기
Tanstack Query v5.40.0의 새로운 기능과 Suspense를 결합하여 사용자 경험을 극대화하는 데이터 스트리밍 전략을 소개합니다.