Posts
카테고리별 글 모음
문제의 원인을 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를 결합하여 사용자 경험을 극대화하는 데이터 스트리밍 전략을 소개합니다.