"Movist 는 패리티 oracle 이야, 아키텍처가 아니라."
경쟁자한테 배우는 두 방식
대체하려는 도구한테서 배우는 방식은 완전히 달라, 두 갈래야. 하나는 '어떻게 만들었나' 를 베끼는 거. 내부, 구조, 선택들. 다른 하나는 oracle 로 쓰는 거. '내 결과 맞아?' 엔 답해주지만 거기까지 어떻게 갔는지는 안 알려주는, 믿을 만한 잣대. Ashen Reel 은 두 번째를 엄격하게 골라.
테스트에서 oracle 은 그냥 비교 기준이야. Movist 가 파일 틀고, Ashen Reel 이 같은 파일 틀고, 출력을 맞대봐. 필수 행동에서 둘이 맞으면 그 행동은 증명된 거고. Movist 는 어떻게 디코딩하고 렌더하고 seek 할지는 하나도 안 알려줘. 끝에 나온 결과가 맞는지만 알려줄 뿐이야.
내부는 안 보이고 상관도 없어
소스 없이도 Mac 앱이 뭘 링크하는지 엿볼 수 있어. otool -L 을 Movist 에 대보면 FFmpeg 라이브러리를 싣고 AVFoundation, VideoToolbox, CoreVideo 를 링크하는 게 보여. 이건 쓸모 있는 사실이면서 동시에 함정이야.
쓸모 있는 이유. Movist 의 출력 행동이 진짜 비교 대상이라는 걸 증명하거든. 하드웨어 가속되고 색 관리되는 네이티브 파이프라인이니까, 그걸 맞추는 게 의미 있는 기준이야. 함정인 이유. '그럼 같은 프레임워크 링크하고 같은 파이프라인 베끼면 되겠네' 로 결론 내리고 싶어지거든. Ashen Reel 은 안 그래. 자기 이유로 libmpv 를 고르고(Track 2), 출력이 맞는지 눈으로 증명해. 경쟁자 부품 목록은 네 설계도가 아니야.
oracle 이 너한테 틀렸을 때
oracle 이 최종 발언권을 갖는 건 아냐. Movist 의 행동이 CWK 원칙이랑 부딪히는 곳에선 Ashen Reel 의 아키텍처 문서가 대놓고 Movist 를 이겨. 데이터 소유권, 소스 불변성, 네트워크 브라우저 없음 같은 원칙 말이야. Movist 는 SMB 공유를 신나게 뒤지고 자격증명도 저장해. Ashen Reel 은 거절하고. 그 행동이 패리티보다 더 중요한 선을 넘으니까. oracle 은 잣대지 입법자가 아니거든.
그리고 oracle 은 선반에 남겨둬. Movist 랑 QuickTime 은 마이그레이션 내내 '폴백' 이라 라벨 붙여서 깔아둬. bounded 대체는 첫날부터 비상구를 없애는 게 아니라, 자기를 증명해서 전환을 얻어내는 거니까.