"코덱이랑 렌더러 깊이는 libmpv 랑 FFmpeg 를 재사용해. 미디어 엔진 다시 짜는 데 CWK 시간 쓰지 말고."
미디어에서 제일 유혹적인 토끼굴
디코더 짜는 건 진짜 매혹적이야. 비트스트림 파싱, 모션 벡터, 색 공간, 하드웨어 가속. 파도 파도 끝없는 아름다운 우물이지. 근데 bounded 플레이어한텐 바닥 없는 함정이기도 해. FFmpeg 는 수백 명이 30년 쌓은 거야. 주말 며칠로는 못 따라잡아. 거기 쓰는 시간은 전부, 네 플레이어를 '네 것' 으로 만들 그 한 가지에 안 쓴 시간이고.
그래서 Ashen Reel 은 안 짜. 깔끔한 embedding API 를 가진 FFmpeg 기반 엔진 libmpv 를 embed 해서, 코덱이랑 렌더러 깊이를 통째로 공짜로 물려받아. 디코딩은 엔진이 하고, 결정은 Ashen Reel 이 하고.
연결은 소유하고, 깊이는 빌려
뭘 만들고 뭘 빌릴지, 재사용 결정이 깔끔한 지도를 그려줘.
이게 코딩 4대 기둥의 첫 번째야. Extend 하기 전에 Reuse, Scale 하기 전에 Extend. 그걸 앱 최상위에 적용한 거지. 성숙한 라이브러리가 이미 잘하는 걸 다시 짜려는 자신을 붙잡는 순간, 멈추고 물어봐. 이거 재구현하는 게 내 제품이야, 내 미루기야? 미디어 엔진에선 거의 항상 실험복 입은 미루기더라.
재사용은 공짜가 아냐, 거래야
엔진 빌리는 게 공짜는 아냐. 그냥 다른 비용이야. pin 하고, 라이선스 붙이고, 번들하고, 서명해야 하는 의존성을 떠안지(Track 6 통째가 그 얘기). 엔진이 세상을 보는 방식을 받아들이고 네 걸로 옮겨줘야 하고. 근데 그 비용은 딱 정해져 있고 한 번이면 끝나. 디코더를 다시 짓는 건 끝이 없고 영원한 반면에. 그러니 거의 항상 남는 장사야. 빌린 엔진을 경계 저편에 두는 한. 그게 딱 다음 레슨이 만드는 거고.