웹킷을 인터넷 익스플로러처럼 만들 것인가
interoperability | 2012-03-11
"document.all
을 쓰지말고 표준 DOM 메서드인 getElementById
를 사용하세요."라는 말은 이제 너무 당연해서 들어보기조차 매우 힘든 말입니다. 요즘은 웹표준은 기본이고 저런 얘기는 옛날 얘기가 되어버린 줄 알았습니다. 하지만 역사는 되풀이되나 봅니다. W3C의 CSS 워킹그룹 부의장이 제조사 접두사(vendor prefix) 관련해서 사람들의 행동을 촉구하는 글을 올렸습니다.
제조사 접두사는 브라우저 제조사들이 새로운 기능이나 아직 완성되지 않은 표준을 구현할 때 호환성을 유지할 수 있게 해주는 장치입니다. 예를 들어 트랜스폼(transform)은 아직 스펙이 완성되지 않았기 때문에 각 브라우저들은 제조사 접두사를 트랜스폼 앞에 붙였을 때에 작동되도록 구현해 놓았습니다 웹킷 엔진을 사용하는 크롬이나 사파리는 -webkit-
을 붙여야 하고 오페라 같은 경우는 -o-
를 붙여야 작동이 되게 됩니다. 이후에 스펙이 완성되었는데 구현된 것과 다르다면 접두사 없는 속성을 완성된 스팩과 같이 작동하도록 추가하면 됩니다.
제조사 접두사가 잘 활용되었다면 좋았겠지만 웹킷 계열의 브라우저가 모바일 시장에서의 거의 독점적인 점유율을 차지하면서 부작용이 생기기 시작했습니다. 보통 브라우저의 새로운 기능은 하나의 브라우저가 기능을 구현하면 이를 다른 브라우저들이 따라서 구현하는 경향이 있습니다. 웹킷에서 새로운 기능을 정말 빨리 구현해내다보니 새로운 기능에 대한 소개나 예제들이 웹킷 전용 코드들로 채워지게 되었습니다. 기술 초기 단계에서는 당연한 흐름이지만 이런 흐름이 주도적이 되면서 더이상 다른 브라우저가 들어설 자리가 없어졌습니다. 다른 브라우저들이 자신들만의 제조사 접두사로 같은 기능을 구현했음에도 불구하고 이미 시장에서는 웹킷만을 위한 예제만 넘치게되고 웹킷만을 지원하게 사이트도 늘게 되었습니다.
상황이 이러니 사람들은 웹킷만이 최고의 브라우저고 나머지 브라우저들은 기능이 떨어지는 브라우저라고 느끼기 시작했습니다. 브라우저 제조사 입장에서는 억울하기도 하고 불안하기도 하게 되었습니다. 급기야 웹킷을 제외한 다른 브라우저 밴더들이 -webkit-
접두사를 구현하겠다고까지 얘기가 나오고 있습니다.
이것은 정말 심각한 상황입니다. 웹킷으로 통일되니 간편해지고 좋은일 아니냐는 생각은 너무 단기적인 장점만 본 것입니다. 이렇게 웹킷이 독점하게 되면 다른 브라우저 제조사들이 시장에 진입할 수 없게되고 새로운 기술이 웹킷에서 구현하지 않았다는 이유만으로 빛을 보지 못하고 사장되게 될 것 입니다. 그리고 또다시 특정 브라우저의 사용을 강요받는 상황이 발생할 것입니다.
혹시 자신이 만든 코드가 특정 브라우저에서만 작동하지는 않는지 확인해 보십시오. 자신의 주변에서, 자신이 사용하는 사이트가 특정 브라우저에서만 작동하도록 되어 있지는 않은지 한번 확인해 보십시오. 단말기를 구하기 힘들다면 에뮬레이터로 확인해 볼 수도 있습니다. 간단한 방법으로 이들 브라우저를 호환시킬 수 있습니다. 저는 웹이 다시 예전처럼 특정 브라우저를 사용해야만 쓸 수 있는 것이 되어서는 안된다고 생각합니다. 브라우저 제조사들이 지금처럼 잘못된 판단을 하게끔 내몰려서는 안됩니다. 아이폰용 사이트, 안드로이드용 사이트는 이제 그만 멈춰야 할 때입니다.
This situation happened in the past with IE6, when browsers were desktop-only, and it took ten long years to recover. With billions of mobile browsers today, the Web may not recover at all.
관련 글
- CALL FOR ACTION: THE OPEN WEB NEEDS YOU *NOW*
- Call for action on Vendor Prefixes
- On the vendor prefixes problem
- The vendor prefix mess
- -alpha- and -beta-
- Microsoft, Mozilla & Opera: Don’t make -webkit- prefixes a de facto standard
- TL;DR on Vendor Prefix Drama
- The Vendor Prefix Predicament: ALA’s Eric Meyer Interviews Tantek Çelik
- Every Time You Call a Proprietary Feature “CSS3,” a Kitten Dies
Comments
SASS 를 쓰면 한줄로 4개의 브라우저 접두어를 풀어주니까 SASS 를 애용합시다. ㅎㅎ
구글의 퍼블리셔들도 이 글을 보아야 하지 않을까 하는 생각이 듭니다. 비교적 최근에 만들어진 구글의 몇몇 웹페이지들을 보면, 그들이야말로 '웹킷 제일주의'에 빠져있는 것 아닌가 싶을 정도입니다. 단적인 예로 구글 플레이의 소개 페이지(http://play.google.com/about/)를 들 수 있겠네요. 단순한 제품 소개 페이지이지만 이 페이지는 오로지 웹킷 계열 브라우저에서만 제대로 볼 수 있습니다. 또 한편으론, 열심히 페이지 만들어 놓고 정작 크롬에서만 테스트하는 저의 모습을 스스로 반성하게 되었습니다. '사파리는 같은 엔진이니 문제 없을테고, 파이어폭스나 오페라도 웬만큼 표준을 지키니 별 탈 없을거야' 하던 생각에 경종을 울려주셨습니다. ㅠ 감사합니다.
이미 CSS vendor prefixes는 그 실험적 사용의 의미와 목적을 잃은 지 오래됐죠. 벌써 많은 사이트에서 오래전부터 여러 실험적(?) CSS3 properties를 사용하고 있으니까요. 개발자만 탓할 일이 아니라 외부에선 느리다고 느낄 수밖에 없는 웹 표준 제정 속도와 모바일 웹 브라우저 시장에서의 세 확장을 노리는 브라우저 제작사의 정책적 결정 등 여러 복합적이 문제가 서로 얽혀 있다고 봅니다. 개발자만 부지런을 떨어야 하는데 위에 입명이씨께서 말씀하신 CSS preprocessors의 힘을 빌리던가, 여러 브라우저의 지원 상황을 꼼꼼히 챙겨야겠지요. 개인적으로 caniuse.com에서 브라우저 지원 상황을 확인하고, 자동 CSS vendor prefixes 생성 도구로 http://prefixr.com/을 애용합니다. http://www.prefixr.com/api/usage/ 페이지엔 여러 텍스트 에디터들에 붙여서 사용할 수 있는 법이 소개되어 있네요. 그런데 이런 자동 생성 도구도 수시로 바뀔 수 있는 CSS 용법에 대한 대처와 그에 따른 갱신도 제각각이라 신경을 써야 할 구석은 아직 남아 있습니다. 결국, 실제 여러 브라우저에서 테스트하는 것이 가장 확실한 방법이겠네요.
저도 그래서 크롬이 싫어요.
좋은 글이네요. ^^
좋은 글이네요. 저도 크롬 쓰지만 요즘 웹킷의 행태는 과거 익스와 똑같아 보입니다.
제일 많이 쓰는 ie를 제외하면 ff가 가장 좋은 것 같아요. ㅎ
전 지금처럼 가는게 결코 틀린 방법은 아니라고 생각합니다. paul irish 인터뷰 봐도 그렇고 지금의 문제가 꼭 웹킷쪽으로만 볼 필요는 없는거죠. 특히 IE쪽까지 신경 써 준다면 지금의 IE업테이트 방법으로서는 환장하는거 아니겠습니까? 지금은 분명히 혼란스러운 모습으로밖에 존재할 수 없지만 언젠가는 분명히 지금 웹킷이 보여주는 노력들에 대해서 우리는 정말 감사해야할 날이 올거라고 저는 생각되네요. 과거 IE가 보여준 모습이 운영체제 덕분에 얻은 점유율로 그냥 꿀 빨면서 뻘짓한 거라면 지금 웹킷은 정말 고군부투라고 저는 생각하고 싶습니다.
슈운아님, 웹킷이 잘못하고 있다는 내용이 아닙니다.
저도 그래서 크롬이 싫어요.
제 경우는 웹킷을 써보니 모바일 플랫폼에 최적화되어 매우 편리하다는 생각이 들었습니다. 크롬 뿐만 아니라 사파리에서도 거의 동일하게 동작되었던 점도 좋았고 특히 아이폰과 안드로이드폰에서 동일 소스를 거의 수정이 없이 동일하게 동작했던 점도 편리했습니다. 오히려 IE만 webkit을 제대로 지원하지 않아 고립된다는 느낌이 들더군요. 과거에 IE가 독점하던 시대의 MS의 횡포와는 양상이 다르다고 생각합니다. 단일 회사 브라우저에만 국한한 것이 아니고 애플과 구글 iOS와 안드로이드라는 폭넓은 플랫폼에서 사용이 가능하기 때문이죠. 초기에는 webkit이 브라우저 비표준 스펙으로 시작했다고 하더라도, 이것이 폭넓게 사용된다면 새로운 표준으로 변화되어 간다고 볼 수도 있지 않을까요? 현재 webkit정도로 풍부한 표현력을 가지면서 크롬, 사파리, iOS, Android처럼 폭넓은 플랫폼을 지원할 수 있는 대체물이 있지 못한 것도 현실인 것 같구요. "표준"이라는 것도 시대에 따라 변해가는 것일 수 밖에 없다는 생각입니다. 개인적으로 저는 더 훌륭한 대체물이 나오지 못한다면 그 편리성 때문에 webkit이 새로운 표준이 되기를 바랍니다.
웹킷에 많은 투자를 하고 있는 애플과 구글이 스펙 제정과 기술 구현을 열심히 잘 하고 있으니 말씀하시는 방향대로 지금 잘 움직이고 있습니다. 웹킷이 주도권을 잡는 것이 나쁘다는 말을 하고 있는게 아닙니다. 브라우저 시장의 다양성 확보가 웹의 발전에 얼마나 중요한지 알아야 한다는 것입니다.