메아리 저널

이글루스 동영상과 댓글의 문제

나는 파이어폭스 3을 메인 브라우저로 쓰고 심심할 때 사파리 3을 써 주는데, 그러다 보니 일부 사이트들이 기괴하게 동작하는 경우를 자주 만날 수 있다. 물론 웬만한 동작에는 익숙해졌고 요즘은 그래도 좀 생각해 주는 사이트들도 많아져서 큰 문제 없이 쓰고는 있지만 그래도 이글루스의 댓글/동영상 문제는 너무 짜증나서 글을 써야 겠다.

문제는 이렇다. 동영상이 들어 간 글을 보고 있는데 "댓글" 버튼을 눌러서 댓글들을 볼라 하면 동영상은 어김없이 리로딩되고, 보통은 "F5를 누르면 다시 동영상을 볼 수 있습니다"라는 메시지도 떠서 결국 댓글 버튼을 누르는 게 아니라 고유 링크로 들어 가야 하는 불편함을 안겨 준다. 여기에는 크게 보면 두 가지 문제가 있다.

하나는 파이어폭스의 버그이다. 무려 8년동안 열려 있는 #90268이 문제의 핵심인데, 이게 왜 8년동안 아직도 해결되고 있지 않느냐고 묻는다면 원래 브라우저 플러그인은 무한한 버그의 소스라고 대답할 수 있겠다. (특히 플래시 플러그인은 수년간 별의별 문제를 겪으면서 많이 나아지긴 했지만 아직도 윈도 아닌 운영체제에서는 좀 그렇고 그렇다.) 버그에 들어 있는 내용을 보면 이 문제를 해결하기 위해서는 구조를 상당히 뜯어 고쳐야 하는 것으로 보인다. 안습...

이 버그를 피해 가는 방법은 여러 가지가 있지만 이글루스가 사용하는 댓글 삽입 방법에 대응되는 workaround는 없는 것 같다. 예를 들어서 댓글이 이미 DOM tree 상에 존재하고, 그걸 보여 주거나 숨길 경우 display: none; 대신에 visibility: hidden;을 쓰는 등의 방법으로 해결이 가능하지만, 이글루스는 댓글 스크립트를 숨겨진 iframe에 렌더링해서 부모 프레임인 원래 페이지에 쏘는 방식으로(...설마 XHR이 옛날 브라우저에서 안 돈다고 이렇게 해 놓은 건가?) 구현되어서 전혀 이 방법을 쓸 수 없다.

그럼 브라우저 버그는 어쩔 수 없다 치자. 사실 나도 브라우저 버그 많이 겪고 C++ 프로그래밍 할 때는 복잡한 C++ 메타프로그래밍 코드로 컴파일러를 여러 번 죽여 본 경험이 있으므로 이 상황은 이해하겠지만, 그렇다고 동영상을 재시작도 할 수 없으면 어쩌자는 건가. 이건 이글루스 동영상의 인증 키(소스 보면 나오는 v_key라는 변수들) 때문에 그런데, 인증 키가 만료되면 동영상을 더 이상 볼 수 없게 했기 때문에 생기는 문제이다. 아놔.

이글루스가 파이어폭스에서 좀 더 자세한 테스팅을 했더라면 이 브라우저 버그를 어떻게든 넘어 갈 방법을 찾을 수 있었을 것이다. 개인적으로 가장 쉽다고 생각하는 방법은 현재와 같이 <script> 엘리먼트 안에 인증 키를 삽입하지 말고, 대신 <script src="http://v.egloos.com/..."></script> 형태의 임베딩으로 바꿔서 매 번 읽힐 때마다 인증 키가 새로 생성되게 한 뒤, 포스트 부분의 innerHTML을 refresh(그러니까 지웠다 다시 쓰는)해 버리는 방법인데 가능한진 모르겠다.

뭐 그렇다고요. 몇 달동안 엄청나게 불편했던 버그인데 (이것때문에 사파리를 플래시 전용 브라우저로 쓰게 되었다.) 영 고쳐진다는 소리는 못 들어서 좀 불평해 봤다.

이 글은 본래 http://arachneng.egloos.com/1391314에 썼던 것을 옮겨 온 것입니다.


(rev 1d46270eb038)