2009년 03월 23일
한국에서 웹표준/크로스브라우징 지키기
웹표준에 대한 다분히 감정적인 논란이 진행되는 것을 보고, 댓글을 달려다가 너무 길어지길래 트랙백하기로 하였습니다. 원문: http://noneway.tistory.com/429
논란은 간단합니다. 작성자가 크로스브라우징을 지키지 않는 한국 사이트들을 비판하는 포스팅을 올렸고, 그에 대해 몇몇 개발자가 "현실을 모르는 탁상공론"이라는 논지의 댓글을 단 것입니다. 원포스트 작성자가 그들을 犬발자라며 다시 포스팅한 것이구요.(이 블로그 전체적인 문체가 예의를 지키며 부드럽게 쓰는 방식이 아니니, 犬발자, 단세포들, 등신짓, 궤변 등등의 단어에 괜히 집착하지 말기를 바랍니다.)
웹표준/크로스브라우징은 현실적으로 가능하다
'실천가'님의 댓글에 보면 "포털 메인 화면 같은 거 딱 한 페이지만 코딩해봐라"라는 말이 있던데, 제 경우엔 포털메인은 아니더라도 주요 서비스 중 하나를 전부 개발/운영 중이니 말할만한 자격을 충분히 갖춘 거죠? 웹to폰 SMS의 90%이상은 저희 시스템 통해서 나가지 않을까 합니다. 기획의도자체가 PC Applications 만큼의 기능성이라서 javascript를 얼마나 사용했을지 상상이 가시죠? 따라서 '지나가다', '실천가', '병신' 님의 "현실을 모른다"는 비난은 좀 무리가 있습니다. 메인페이지 개발자를 포함한 저희 회사 개발자들은 그일을 벌써 수 년간 해오고 있으니까요. 웹표준/크로스브라우징을 구현하는 것은 충분한 시스템이 갖춰져 있다면 분명히 "현실적으로도 가능"한 일입니다.
웹표준/크로스브라우징 준수는 원칙적으로 불가능
앞 문단과 모순되는 듯 보이지만, 그럼에도 불구하고 저에겐 犬발자라고 불리는 분들의 댓글이 단순한 궤변이나 변명으로 느껴지지는 않습니다. 현실적으로 어려움이 많고, 때로는 그 해결이 개발자의 영역 밖에 있는 경우도 있으니까요. "원칙적"으로 모든 사이트를 웹표준에 맞추고 크로스브라우징 가능하도록 개발하는 것이 가능하느냐라는 질문을 받는다면, 저는 "불가능하다"라고 대답하겠습니다
게다가 웹표준과 크로스브라우징은 전혀 별개의 개념입니다. 웹표준에만 맞게 작성한다고 모든 브라우저에서 잘 동작한다고 보장할 수 없고, 그 반대의 경우도 존재합니다. 만일 웹표준/크로스브라우징을 "웹표준에 맞게만 작성하면 크로스브라우징은 자동으로 보증된다"라고 이해하고 있다면 이것은 명백히 틀린 것입니다. (자세한 내용은 제일 아래부분 '덧붙여'에 설명해두었습니다)
웹표준은 말그대로 최소한의 표준일뿐이고, 표준화되지 않은 부분들에 대해서는 브라우저별로 알아서 구현되습니다. 이것은 웹표준 뿐 아니라 모든 기술스펙에 보편적인 사항인데, 웹표준스펙의 경우에는 특히 표준화가 더 불충분한 느낌입니다. 게다가 아직 working draft 상태죠?
게다가 웹표준과 크로스브라우징을 동시에 이루는 것은 불가능합니다. 모든 브라우저에서 동일하게 동작하기 위해 HTML 페이지의 웹표준을 희생하는 경우도 많이 있습니다. 예컨대, javascript 의 event 부분은 브라우저별로 차이가 큽니다. 이벤트 처리 코드들에서는 브라우저별로 분기하어 별도로 코딩하는 것이 필수적입니다. 내가 작성하는 코드가 다른 브라우저에서 동작할지 안할지는 해당 브라우저를 모두 테스트하기 전에는 전혀 알 수 없는 일입니다. 표준화가 잘 진행된 DOM 객체들 경우에도 모든 브라우저에서 동일하지 않은 예는 저 또한 많이 겪었습니다. 또는, 성능향상을 위해 javascript를 body 안에 넣는 비표준적인 일은 외국사이트들을 포함한 거의 모든 포털페이지들에서 자행(?)하고 있는 일일겁니다. 이것은 웹표준에는 맞지않지만 크로스브라우징이긴 하죠.
개발자의 영역을 넘어서는 일이다
크로스브라우징/웹표준을 고려한 개발은 개발자 혼자 마음먹는다고 가능한 부분이 아닙니다. 기획팀에서 작성한 UI 를 구현하려면 어쩔 수 없이 웹표준을 어기게 되는 경우가 있습니다. 일례로 저는 이번 개편때에도 iframe 을 제거하지 못했네요.
표준을 지키려면 기획팀/디자인팀 등과도 그 내용이 공유되어야하는데, 웹표준/크로스브라우징 자체가 기술적인 내용이라서 이들을 교육시키는 것은 개발자 교육보다 더 어렵습니다. 어느 정도 시스템이 갖춰져있다는 저희도 아직은 개발중에 기획서 수정을 요청하는 경우가 많이 있고, 일부 기능을 위해서는 표준을 희생하기도 합니다. 사정이 이러니 웹표준을 어기고 크로스브라우징이 안되는 사이트 개발자를 무턱대고 犬발자라고 부르며 비난하는 것은 좀 억울합니다. 우리 기획팀/디자인팀과 일정을 재촉하는 경영진을 함께 비난하시던지 ^^;
영세 Web Agency에겐 벅찬 일이다
개발영역에서만 보더라도 기존 코딩방식에 익숙한 개발자가 웹표준을 익히고 크로스브라우징을 고려하는 일이 말만큼 쉽지는 않습니다. 저희회사는 HTML코딩을 담당하는 팀에서 자바스크립트 코딩까지 99% 완료한 상태로 전달해줍니다. 저는 JSP 코드만 추가하는데, CSS관련 문제는 해당 팀에 문의하여 즉각적으로 답변 및 수정사항을 전달받습니다. 이렇게 일하면서도 처음 웹표준을 익히는데 몇 달은 걸리더군요. 전담팀의 도움 없이 웹표준을 익힌다는 것은 상상이 안갑니다.
게다가 단순히 크로스브라우징도 아니고 웹표준에 맞춘다는 것은 HTML에 대한 컨셉을 바꾸는 것이기 때문에 더욱 어려운 일입니다. 웹표준 관련 제대로된 책은 있나요? 웹표준 관련해서 찾아보고 물어볼 수 있는 블로그나 커뮤니티는 얼마나 될까요? 제게는 마치 윈도우만 써보던 개발자에게 "이제부터 PC포맷하고 리눅스깔아서 써라"라는 말정도로 들리네요.(책도 없이, man페이지 있으니 알아서 써라 정도?) 기존처럼 테이블들로 대충대충 꾸미다가, 구문맞춰서 HTML코딩하고 CSS로 모양 바꾸고 그러는 작업은, HTML에 대한 컨셉을 바꾸는 것이기 때문에 전혀 간단하지가 않습니다.
웹표준이라는게 영세한 Web Agency들의 능력으로는 개발자교육조차 어려워보입니다. 교육시켜줄 인력조차 없을테니까요. 그정도 훌륭한 코더라면 이미 큰회사에 스카웃되었을껄요. 사회적인 지원이 전무한 상황에서 '게으른 犬발자'라고만 비난하는 것은 지나칩니다. 저희처럼 전사적으로 웹표준관련 공유와 지원이 잘 되어있는 회사에서도 아직 한숨만 나오게 하는 개발자분들 많습니다. 하물며 영세업체들은 ㅡㅡ.
K리그에는 관심도 없으면서 한국축구가 월드컵 우승 못한다고 선수들의 정신력을 비난할 수는 없습니다. 제 생각에 웹표준/크로스브라우징은 IT업계전체의 의지가 필요한 이슈입니다. 그러나 30억으로 닌텐도DS를 만들어야하는 한국 사회는 당연히 그렇지 못합니다. 올봄부터인가 웹접근성관련 법안이 발효되어 표준을 제대로 지키지 못한 사이트를 소비자가 소송하는 것이 가능하다던데, 언제나처럼 위에 계신 분들은 막상 업체를 어떻게 지원할지에 대해서는 고민을 안하시고 계신 듯 하네요.
결론
- 꿈틀꿈틀님의 논지를 정확히 모르겠습니다. 웹표준을 지키라는 것인지 크로스브라우징 가능하도록 만들라는 것인지.
- 한국 개발자들이 웹표준을 지키지 않는 현실에 대한 책임을 100% 개발자에게 묻는 것은 억울한 일입니다. 개발자가 의지가 있더라도 충분한 인프라가 갖춰져있지 않기 때문입니다.
- 그럼에도 불구하고 웹개발자라면 관심을 좀 가져야합니다. 웹접근성/웹평등이란 온갖 어려움을 헤치고 어떻게든 나아가야할 바람직한 방향이니까요. HTML객체 접근할때 DOM방식만 사용하더라도 크로스브라우징의 90% 정도는 달성할꺼요.(not 웹표준) "document.all.forms[0].innerHTML"이런 건 좀 심하잖아요.
- 누가 웹표준/크로스브라우징 관련 블로그나 커뮤니티 좀 만들어 주세요.
덧붙여,WebStandard ≠ CrossBrowsing
웹표준/크로스브라우징이 전혀 다른 개념이고 서로 직접적인 관련이 없습니다.
- 웹표준: W3C에서 작성 중인 표준안입니다. 아직 확정도 되지 않아서 working draft 상태로 알고 있고, 엄밀히 말해 권고안일 뿐이어서 이것을 따르지 않는다고 해도 형식적으로는 아무런 문제가 되지 않습니다. 아직 확정되지도 않고 계속해서 변하고 있는 표준안을 지키라는 요구때문에 브라우저 개발자들은 골치 꽤나 아플 겁니다.
- 크로스브라우징: 말그대로 모든 브라우저에서 동일하게 보이고 동작하는 것을 의미합니다. 웹표준과는 전혀 별개죠. 예컨대 iframe 같은 것은 웹표준에 어긋나지만 PC상의 대부분의 브라우저에서 크로스브라우징됩니다.
사실 웹표준은 정확한 스펙 내용보다도 표준을 지정할때 지향하는 방향성이 더 중요할 것 같습니다. HTML의 내용과 Tag 가 적절한 의미를 가지고 조합되는 것이 그것인데, symantic 이라고 해야할까요? CSS가 로딩되지 않았을때 www.nate.com의 HTML 페이지를 보신적 있으신가요? HTML은 의미를 가진 Document 가 되고, 그것을 화면에 보여주는 것은 CSS가 담당하도록 작성하는 것이 웹표준의 핵심이 아닐까 합니다. 이렇게 되면, CSS에 정의된 대로 제대로 표시하지 못하는 브라우저들의 경우에도 HTML 페이지를 읽는 것이 가능하게 되겠죠.
다른 브라우저 읽힌다라는 속성때문에 웹표준을 크로스브라우징과 많이들 혼동을 하지만,실제로 크로스브라우징은 전혀 다른 의미입니다. 앞서 말한 것처럼 어떤 브라우저에서 레이아웃이 다르게 보인다면, 일반적으로는 크로스브라우징이 안된다고 말을 합니다. 크로스브라우징은 모든 브라우저에서 완전히 동일하게 표시/작동될 때를 의미합니다. 반대로 iframe 같은 것은 크로스브라우징이지만 웹표준에는 어긋납니다.
꿈틀꿈틀님의 포스팅 몇 개를 보았는데, '웹평등'을 말하실때 웹표준이라고 말하면서 크로스브라우징을 의미하는게 아닌게 싶습니다. 가령 네이트/네이버사이트에서 광고배너나 검색창이 제 위치에 안보이는 것 자체가 웹표준을 어겼다고 말하는 것은 틀린 말입니다. 물론 웹평등/웹접근성에서 웹표준은 필수적인 개념이라는 것이 옳은 말이고, 관련 글들의 행간을 읽는다면 웹표준->웹평등성 으로 연결되는 사고의 흐름을 읽지 못할 바는 아닙니다. 하지만 글 자체에서 쓰일 때에는 웹표준과 크로스브라우징이 혼동되고 있는 것으로 보이네요. 웹페이지 작성시 symantic 을 지키라는 것인지, IE이외의 브라우저에서도 잘 돌아가도록 만들라는 것인지, 논지를 명확히 해주시면 더 읽기 좋을 것 같습니다.
# by | 2009/03/23 12:00 | 프로그래밍 | 트랙백(3) | 덧글(25)




☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : 난독증환자와 가지치기 정원사들의 향연속에 왜곡+축소..
'MS노예국 웹개발자(犬발자)의 궤변'란 글을 보고 '한국에서 웹표준/크로스브라우징 지키기'란 글로 받아주신 분이 계시는군요. 댓글을 작성하고 보니 이글루스 블로그네요. 저는 대한민국의 암세포 삼성에 이어 불매대상 2순위 기업인 SK계열은 애지간해선 이용치 않기 때문에 트랙백으로 대신함을 양해바랍니다. 애먼 곁가지질탓에 결국 다시만든 '한국의 MS강매질 개념도' 그림 해석 먼저, 님께서 논한 제 글의 최상단에 떡하니 박혀있는 '자칭 인터넷강국의......more
제목 : 웹표준
웹표준을 바라보는 세가지 관점이 있다. 우선 브라우저. 만약 W3C의 스팩이 브라우저가 어떻게 랜더링해야 하는가를 완벽하게 정의하고 있고, 브라우저는 그 표준에 맞게 웹문서를 표현하고 있다면, 코딩이야 어떻게 했더라도 웹사이트의 모양새가 동일해야 한다. 안타깝게도 현실은 그렇지 않다. 크로스플랫폼의 문제는 개발자의 탓이라기 보다 W3C와 MS, 모질라와 같은 플랫폼 담당자에게 원천적인 책임이 있다. 이 경우 개발자는 웹표준을 무시한 것이 아니라......more
제목 : 개발자들에 대해.
요즘 웹개발자 욕하는 사람 많더군? 무슨 ActiveX 개발한다면서 이런저런 욕하고 있는데.. 내가 알기로 새로 개발되는 AX는 악성코드류나 게임 런처 정도? 그것도 다 컴포넌트 갖다 쓰는거지 직접 개발하는것도 아니고. AX라는건 참 매력적이었던 브릿지지. 사용자가 원하는 시스템을 만들어줬었으니까.. ax라는게, 딴게 아니라 그냥 웹상에서 바로 exe파일 실행한다고 생각하면 돼. 그중에서도 많이들 쓰는게 파일 전송 컴포넌트가 있고. http가 ......more
흔히 말하는 웹표준은 현재 완성되어 있습니다. 권고안이라는 표현은 강제성이 없는거지 .. 표준은 맞습니다.
암튼, 그 외에는 저도 공감하는 내용입니다.
제경우 어지간하면 익스플로러와 파이어 폭스 에서 기능 동작에 문제 없는 수준까지만 작업합니다. 통계상 98%가 이정도에 해당하더군요. 그나저나 이번에 IE8이 나와서 이거 테스트도 검증해 봐야 겠군요.
저는 예전에 GSM폰 개발도 했었는데, 그쪽은 스펙 완성도가 높은데도 불구하고, 기획서가 아니기 때문에 스펙에 정의되지 않았거나 자의적인 해석이 가능한 부분들이 많이 있더군요. 그럼 노키아나 다른 폰들 참조해서 똑같이 구현하곤 했는데^^;; 그래서 업계 관행이라는게 있는걸까요?
모 웹 에이전시에서 근무했었는데 웹 표준, 크로스 브라우징을 지원하려면 웹 개발자가 아니라,
web coder(or web publisher)가 별도의 팀으로 있어야 한다는데 동의합니다.
개발자들이 HTML 표준까지 준수하면서 홈페이지 만들라면 인간의 한계를 뛰어넘는 일이죠.
그나저나, 영세 웹 에이전시에게 불가능한 일이라고 하셨는데
가장 큰 웹에이전시에 있었습니다만...
대형 에이전시에서도 '불가능' 합니다...
왜냐하면 크로스 브라우징에 통달하게된 멤버들은
얼마가지 않아 대형 웹 포털로 이직하더라는 겁니다.!
전담 web coding 팀을 꾸리는 것은 나중 문제라도, 크로스브라우징/웹표준 관련 정보들을 접하기 쉽기라도 하면 좋겠어요. 좋은 내용이 많은 블로그들도 많이 생기고, 괜찮은 컨퍼런스들도 개최하고...
갑자기 생각난건데, 웹프로그래밍 가르치는 학원에서는 지금은 웹표준이나 크로스브라우징 이슈에 대해 가르치겠죠? 설마 지금도 테이블 덕지덕지 붙이는 방식으로 코딩 가르치는 건 아니겠죠?
그때부터 고객들로부터 웹 표준/ 크로스 브라우징에 대한 요구가 있었습니다.
그나마 우리나라는 2가지 이슈에 대한 적응이 빠른 겁니다.
학원에서 테이블을 여전히 가르치는지는 모르겠네요. 아마도 그러겠죠 ^^;
인도 쪽에 웹 페이지 코딩 아웃소싱을 시범삼아 보내봤는데,
그 동네에서 HTML 보내오면 여지 없이 table 덕지 덕지 붙여 옵니다.
한국은 나은 거라구요. 왜 전부 개발자 탓을 하는지...
돈을 그만큼 써야 그만큼 좋은 웹사이트가 나오는 거죠.
악순환의 반복입니다. 학원에서 배워서 나간 학생들은 처음부터 잘못 배웠으니 나중에 고치기도 어렵고 심지어 그게 잘못된 교육인지도 모른채 나가니까요. 사실 개념이 제대로 박힌 강사 보기가 힘듭니다.
국내에는 아래정도만 알겠네요.
http://www.cadvance.org/
http://forum.standardmag.org/
http://hyeonseok.com/pmwiki/
http://hooney.net/category/css/
http://naradesign.net/wp/
http://html.nhndesign.com/html_guideline
http://ui.daum.net/guideline/ui
외국에는 좀 찾아보면 나오던데...
스케쥴상으로도 가능해야 하고,
기술이나 경험적으로도 웹표준이나 크로스 브라우징 개발에 충분한 능력이 필요하고,
기타등등...
현실과 충돌해 보지 않은 분들이, 이상만 가지고 큰소리 치기는 쉽다고 생각합니다.
하 지만 올블로그 같은 상대적으로 작은(?) 사이트나, 대학생 벤처 같은 곳에서 웹표준도 지키고 브라우저호환성도 만족시키는 것을 보면, 아예 불가능한 일도 아닌 듯 합니다. 문제는 너무 쉽게 비난하고 개발자에게만 책임을 지운다는데 있지 않은가 싶습니다. 오히려 경영진을 비난해야 하나^^;
한때 iframe이 말이 나왔을 때는 안들어가 있었던게 확실한데. 요즘도 안들어가 있는지는 잘모르겠네요.
권고안 번역문에서 본거 같기도 하네요.
XHTML에는 없고요.
웹표준을 HTML 스펙으로 보면 iframe 포함이고, XHTML 만으로 보면 iframe 은 포함 안됩니다.
어쨌건 작금의 문제는 문제해결의 의지조차 없는 자들도 이런 말을 한다는거죠.
문제해결의 의지가 있다면 최소한 "웹표준"에 대한 정의는 확실하게 이해하고 있겠죠.
아무튼 온갖 역경을 무릅쓰고 크로스브라우징은 최대한 구현해야하는 기능인 것 같습니다.
따지고보면 문제해결은 뒷전이고 문제제기만 하는 사람들이 싫다는거에요 저는 :D
잘 보고 갈게요~
우리나라 IT산업이 아무런 계획도 생각도 없이 관련 업계 종사자들의 야근으로만 굴러왔다는 것을 증명하는 것이 아닐까 합니다. (IT에서는 야근 수당조차도 없는 것이 관행이죠 ㅠ.ㅠ)
아마도 소규모 업체에 다니는 직원이 웹표준 얘기했다가는 괜히 본인 야근 시간만 늘리게 되는 분위기가 아닐까 싶어요.
이렇게 땜빵식으로 굴러간다면 결국은 그 비용은 전체 사회가 부담하게 될텐데 말이죠.
디자인에 맞추려면 iframe과 table을 버릴 수도 없는 상황이고..(뭐 표준에서 이 둘을 버리라고는 하지 않았지만.. 리스트로 만들어두면 개발자분들과의 충돌이 심하던.. -_-;)
업체측에선 디자인은 이쁘게 웹표준에 맞춰달라고 하고.. -_-;
오도가도 못 하는 심정인..
저는 개발자인데, 저도 처음에 웹표준에 맞는 테이블 없는 HTML 코드를 받아들고 보니 황당하더군요. 웬만한 건 다 CSS로 들어가있던데, 그것도 늘상 봐오던 것과는 달라서 뭐 간단한 것 하나만 잘못 건드려도 페이지 레이아웃 전체가 망가져버리는데 정말 짜증만 났습니다.
그렇게 프로젝트 2개 쯤 하니까 웹표준에 맞춰진 HTML 코드가 훨씬 작업하기 편하더군요. HTML코딩과 웹개발자의 역할이 잘 나눠져있다면, 개발자에게는 시멘틱이 명확한 웹표준 코드가 훨씬 작업하기 좋습니다. 쓸데없는 태그들이 없기 때문에, 코드 구조가 눈에 더 잘 들어오고, 주석도 필요없고. ㅎ