배로 크게 만들고 강제로 기존 사이즈 적어주면 되긴 하는데..
이 경우는 접속 환경의 Retina Display인지 아닌지 구분할 수 없다는 문제점이 있다.
하지만 아래 나온 class 할당 방식으로 해결할 수 있긴 하지만 바람직한 방법은 아닌듯 하며,
번거롭지만 배경이미지로 바꾸는게 나아보인다.
얼마전 옥션에서 그란투스리모5를 구매를 했다.
나는 가난하기 때문에 신품보다 고작 5천원 싼 가격에 중고를 구입했다. (다음날 새벽 7시에 문자가 왔다.. 재고없어 주문취소했다고.. 덕분에 직접 TM가서 옥션보다 싼 가격에 구입했다.)
난 절대 플스3, 로지텍 드라이빙 포스 GT를 장만했다는걸 자랑하기 위해 이 글을 쓰는 건 아니다.
타이틀(플스에서 게임CD를 타이틀이라고 함)을 구매하기까지 옥션에 머무른 시간은 고작해서 3~5분..
근데 그동안 난 2번 황당한 경험을 했다.
우선 첫번째.
중요한 정보로 둔갑한 광고.
우측에 파랑색으로 테두리 친 영역을 보면 쪽지와 쿠폰소식이 왔다고 말한다.
쪽지 도착을 알리고, 쿠폰 도착을 알리는 것은.. Notification라고 할 수 있다.
그리고 이것을 우리나라말로 대충 의역하면 "알림" 혹은 "공지"라고도 할 수 있다.
문제는 이것이 공지사항이 아닌 광고라는 것이다.
왜이래? 한두번 당해봤어? 아마추어같이
라고 얘기할 지 모르겠지만, 잘못된것은 지적해야 한다.
도대체 광고가 왜 공지사항(중요정보)로 둔갑을 해야 하나?
나같이 젊고 웹 계열에 종사하는 사람이라면 저런 광고따위는 단번에 눈치를 채겠지만
그렇지 않으신 분들은 정말로 순수하게 "쪽지가 도착했다는 의미"로 받아들이시고 저 썩을 광고를 클릭하실 것이다.
여기서 엄청난 손실이 일어나게 된다.
자.. 그럼 한번 얼마나 많은 손실이 있는지 알아보자.
1. 시간의 손실 옥션 하루 방문자수를 5분 동안 검색해 봤는데.. 안타깝게도 그런 정보를 찾을 수 없다.
그래서 과거 해킹으로 노출된 회원수가 1,100만명이라는 것을 참고로 가정을 해보겠다.
옥션의 모든 회원이 노출된게 아니라고 알고 있는데 그렇다면 1,100만명보다 많았다는 것이다.
하지만 해킹사건도 있고... 해서 현재 회원을 대략 1,000만명이라고 가정하고..
하루동안 업자가 아닌 나 같은 순수 구매자들이 방문하는 것을 약 10%라고 가정하면 100만명
그 중에서 저런 낚시광고에 속으시는 분을 30%정도로 가정하면 30만명
사용자수를 뽑아냈으니, 이제 시간을 추정해보자.
시선이 광고로 이동하는 시간 + 뇌가 판단하는 시간 = 넉넉하게 0.5초라고 하자.
그리고 마우스가 이동 + 클릭하는 시간 = 1초라고 하자 (일반적으로 0.5초정도 걸리겠지만.. 저런 광고에 속으시는 분들은 대부분 컴퓨터(인터넷)에 익숙치 않으실거라는 판단)
클릭하면 새창이 열리는데 = 3초
새창에서 사이트가 열리는데 4초
다 합하면 = 0.5 + 1 + 3 + 4 = 8.5초라는 값이 나왔다.
생각보다 많이 나왔다고 판단하실 지 모르겠지만.. 안좋은 컴퓨터에서 한다면.. 10초 이상 걸릴 수도 있다.
자, 이제 사용자수와 시간이 나왔다.
옥션의 악의 뿌리 낚시 광고로 인해 300,000명의 유저가 하루에 8.5초씩 쓰잘대기 없는데에 억울하게 시간을 약탈당하는 것이다.
이 시간을 모두 합치면 2,550,000초라는 어마어마한 수가 나온다.
이걸 분으로 변환하면 42,500분이고
이것을 시간으로 변환하면 708.333 시간이다.
이것을 다시 일로 변환하면 29.51일이다. 약 한달 정도의 시간인 것이다.
물런 이것은 1000만이라는 회원수를 바탕으로 내 임의대로 추정해서 도출해낸 결과이므로 신빙성은 없다.
하지만, 소중한 내 시간이 약탈당하는것은 분명한 사실이다.
2. 비용의 손실
광고를 클릭하는 순간일어나는 일은
내 컴퓨터에서 서버로 "광고"페이지를 요청
서버에서 내 컴퓨터로 "광고"페이지를 전송
뭐 OSI 7Layers를 말하지 않더라도, 위 2가지 정도면 모두가 알고있는것이다.
자 그럼 실질적으로 소모되는 비용을 따져보자.
내 컴퓨터에서 서버로 "광고" 페이지를 요청
요청하면서 전기가 소모
내 컴퓨터
케이블 모뎀
ISP 업체
요청하면서 인터넷망에 트래픽 발생
트래픽 == 돈이라고 할 수 있음. 즉 비용 발생
서버에서 내 컴퓨터로 "광고" 페이지를 전송
여기서 발생하는 비용을 포함시키기는것은 조금 애매해서 제외
물런, 발생하는 비용이 아주 적을 수 도 있다.
하지만 30만명치를 모으면 어떻게 될까?
역시나 엄청난 금액이 나올것이다.
이 금액 합쳐 매년 영양실조로 죽는 1억6천8백만 어린이에게 후원해주면?
(아프리카에서 모친으로부터 에이즈가 유전되는 태아 한명을 치료하는데 40원이 든다.)
그리고 이렇게 전기를 쓸모없는데 사용하는게 정말 싫다.
에너지 절약이 지구를 살리는 길중 하나이기 때문이다.
아.. 흥분해서 얘기가 삼천포로 빠졌네..
다시 맘을 가다듬고
마지막으로 두번째
과거의 경험을 가지고 소비자를 우롱하는 광고
예전에 옥션에서 물건을 구매하니, 할인 쿠폰을 발급해줬던 적이 있다.
이번에도 구매 완료 페이지에서 할인 쿠폰을 준다고 되어 있는데.. 광고였다.
내가 속게 되는 과정을 담은 Eye Tracking이다.
"쿠폰 받기"를 클릭하고 나서 보니.. 왠 광고페이지가 떴다.
황당했다. 더 생각할 것 도 없이 창을 닫고..
다시 옥션페이지로 돌아와보니..
할인쿠폰 위에 "AD 이벤트"라는 이미지를 볼 수 있었다.
이런 User Experience를 악용하여 광고하는것은.. 상도에 어긋나는것 아닌가?
이런건 해선 안되는 일이다.
광고 기획자가 이런걸 기획했다 하더라도, 서비스 기획자(디자이너 및 개발자 포함)가 적극 반대하고 막아야 하는거 아닌가?
옥션정도의 사이트라면 저딴 저질광고를 하지 않더라도 충분히 수입이 나는 회사 아닌가?
저딴 광고올릴려고 ebay가 인수해간건가?
이런 광고를 기획하는 사람들에게 한소리 하고싶다.
두세 시간 들여서 광고 페이지 하나 만드셔서 살림살이 나아지셨습니까?
광고를 볼 의사도 없는 사람들의 시간 8.5초씩 빼앗아 가셔서 생명연장의 꿈을 이루셨습니까?
도대체 왜 다른 사람의 소중한 시간을 빼앗아 가는 겁니까?
도대체 왜 다른 사람의 소중한 돈을 빼앗아 가는 겁니까?
난 "광고는 무조건 나쁘다"라고 말하는게 아니다.
저런 "상도에 어긋나는 썩은 UX를 가진 광고"따위가 맘에 안드는 것이다.
바로 사용자를 우롱하는 UX 말이다.
생각해보니 UX를 악용하는 사례 정말 많은 것 같습니다. 최소한 [광고] 라는 문구는 넣어주는 것이 옥션 같은 큰 기업의 최소한의 바른 자세가 아닐까 하는 생각이 드네요. 저는 저런 행위가 UX악용의 차원을 넘어서 옥션의 신뢰를 담보로 한 광고이자 고객과의 신뢰관계를 스스로 저버리는 광고행위로 보여집니다. (포스팅 잘 보고 갑니다~)
이런 반응을 보이셨을 것이다.
이건 마치 "헤딩태그는 책과 같다고 생각하시면 되요"라고 말한 것과 똑같은듯하다
여러분의 느끼실 그 허탈함에 전편을 포스팅하고 바로 후편을 쓴다.
후편에서는 무엇이 잘못되었는지 집어볼 것이다.
헤딩태그의 잘못된 사례(헤딩태그의 오해)
1. 레이아웃팅 제목으로 사용
어떤 관공서의 사이트에서 CSS를 제거한 모습과 HTML 코드이다. 지금 헤딩태그를 레이아웃팅한 영역의 제목으로 사용하고 있다.
"상단 메뉴", "하단 정보", "하단 링크"가 유의미한 데이터일까?절대아니다.
헤딩태그를 의미없는 레이아웃 영역의 제목으로 사용하고 있다. 실제로 많은 관공서의 사이트의 헤딩이 이런식으로 구성되어 있다. 이러한 방식은 올바르지 않은 사용법이다.
2. 제목이라고 하긴 애매모호한 헤딩
이건 제목이라고 하긴 애매모호한 헤딩들이다. 그 이유는 레이아웃 영역으로써의 의미도 포함이 되어 있기 때문이다. 그러므로 이러한 사용법 또한 올바르지 않은 사용법이다.
3. 메인메뉴 혹은 서브메뉴를 헤딩으로
(아래의 스샷은 재현을 위해 제가 급조한 것입니다.)
위 1번과 2번은 쉽게 이해를 했는데, 3번에 와서는 고개를 갸웃하는 분이 계실 듯하다. 유의미한 데이터를 헤딩태그로 사용했는데 왜 문제가 될까?
그 이유는 메인메뉴(혹은 서브메뉴. 이하 메인메뉴로 통일)의 링크들은 헤딩이 아니기 때문이다.
다시말해 메인메뉴는 현재 보고 있는 콘텐츠의 제목이 아닌 링크들의 집합이다.
역시 어렵다. 쉽게말해 메인메뉴는 헤딩이 아니라 목차인것이다.
그러므로 헤딩태그를 사용하지 말고 그냥 a태그로 마크업을 해야 한다.
4. 레벨링 1) 누락
##시 사이트에서, 자유게시판까지의 메뉴 구조가
##시 -> 시만참여 -> 자유게시판
라고 하자. 그런데 디자인된 페이지에는 "시민참여"가 없다.
그래서 아래와 같이 헤딩을 부여했다.
라는 의문을 가지실 텐데, 상관없다.
작업하는 페이지 내에서의 헤딩만 부여하면 되는 것이다.
그렇다면
<h1>자유게시판</h1>
이렇게 자유게시판을 h1으로 마크업하는 것은 어떨까?
아마 여러분들은 혼란에 빠지실 것이고, 아래 세가지 의견들일 것이다.
h1에는 사이트 제목이 들어가야 하는데..? (페이지당 h1은 한번만 와야 한다)
h1만 넣으면 이 페이지가 어느 사이트(혹은 어느 위치(뎁스))에 있는지 모를텐데..?
페이지에 헤딩태그가 하나만(그것도 h1) 있어도 되는건가?
먼저, 1번 h1에는 사이트 제목이 들어가야 하는데..? (페이지당 h1은 한번만 와야 한다)
이것은 논란의 여지가 많은것으로, 전편에 해석에 따라 견해의 차이가 있다고 한 그 부분에 해당되는 내용이다.
실제로 몇해전 웹 접근성/표준쪽의 유명하신 두분이 이것으로 술자리에서 다투셨던 적이 있다.
그 분들의 의견은
사이트명은 책제목과 같고, GNB의 시작점이기 때문에 h1으로 해야하고, 한번만 와야 한다.
아니다
개인적인 의견은 제작자 맘이라고 생각한다. 즉 "아니다"쪽에 가깝다.
그 이유는 헤딩의 목적은 콘텐츠의 제목을 제공하는 것에 있지, GNB를 나타내기 위해 있는것이 아니기 때문이다.
그렇다면 GNB로써 헤딩을 사용하는 것이 잘못된것이냐? 그렇지도 않다. 페이지의 GNB를 콘텐츠의 제목이라고 생각할 수도 있기 때문이다.
전편에서 예를 들었던 "2분기 실적"은 "2009년 A 사업의 2분기 실적"이기 때문에,
"2009 실적 보고서", "A 사업 실적"도 헤딩이 될 수 있다.
그러므로 제작자 맘이라는 것이다
2번, h1만 넣으면 이 페이지가 어느 사이트(혹은 어느 위치(뎁스))에 있는지 모를텐데..?
이것 역시 헤딩을 GNB로써만 이해했기 때문에 생기는 오해이다. title을 제대로 제공을 했고 정보구조가 제대로 구성되어 있다면 딱히 문제가 되지 않는다는것이 개인적인 견해이다.
3번. 페이지에 헤딩태그가 하나만(그것도 h1) 있어도 되는건가?
문제될 것 없다.
3) 단계
헤딩의 숫자가 의미하는 바는 단계(level)이라고 생각하면 된다.
대메뉴는 제일 큰 헤딩이므로 h1 중메뉴는 두번째로 큰 헤딩이므로 h2 소메뉴는 두번째로 큰 헤딩이므로 h3 이런식으로 레벨링을 하면 된다.
그러므로 대메뉴를 h2, 소메뉴를 h1 이런식으로 정보구조에 위배되게 마크업을 하면 안된다.
5. 중복된 내용 (아래의 스샷은 재현을 위해 제가 급조한 것입니다.)
간혹 보면 사이트의 제목이 헤딩에 항상 따라다니는 경우가 있다.
사이트 제작자가 얼마나 사이트를 사랑하고, 자랑하고 싶어하는지 그 마음이 전해진다.
하지만 이것은 좋은 방법이 아니다.
헤딩의 레벨이 낮아지면, 상단의 레벨에 나오는 내용은 생략해도 된다.
<h1>##시</h1>
<h2>홍보관</h2>
이렇게 마크업이 되었으면
##시의 홍보관
이라고 받아들이면 된다.
즉 레벨이 낮아지면 상위 헤딩의 내용이 접두어로 붙은 것으로 여기면 된다.
헤딩이란
하.. 그럼 도대체 어떻게 헤딩을 하란 말이냐?!
전편에서 했던것 그대로 하면 된다.
너무나도 쉬웠던 그것이 바로 정답이다.
헤딩태그가 너무 간략하다보니 오해가 많이 생기는 것 같다.
그 오해의 근본은 무엇이 헤딩인가? 즉 헤딩의 정의에 있는것 같다.
헤딩태그는 헤딩은 페이지의 제목이다.
절대 아니다. 헤딩태그는 페이지의 제목이 아니다. 헤딩은 페이지의 제목이 아니라 콘텐츠의 제목이다.
더 정확하게 이야기를 하면 섹셔닝된 콘텐츠의 제목이다.
전편에 나왔던 "2009 실적 보고서"를 가지고 예를 들어보자.
현재 내가 보고 있는 페이지는 A사업 실적의 2분기 실적을 보고있다면
대제목: 2009 실적 보고서
중제목: A 사업 실적
소제목: 2분기 실적
이게 바로 전편에서 말한 헤딩이다. 이것을 코드화하면
<h1>2009 실적 보고서</h1>
<h2>A 사업 실적</h2>
<h3>2분기 실적</h3>
이렇게 된다. 이게 아닌 다른것은 헤딩이 되면 안된다.
자, 그럼 상황을 바꿔보자
현재 내가 보고 있는 페이지에는 A사업의 모든 정보가 다 나온다고 하자.
그렇다면 어떻게 헤딩을 구조해야 할까?
대제목: 2009 실적 보고서
중제목: A 사업 실적
소제목: 1분기 실적
소제목: 2분기 실적
소제목: 3분기 실적
소제목: 4분기 실적
소제목: 전년과 비교
소제목: 총평
HTML5가 회자되고 있는 이마당에, HTML의 기초중에 기초인 헤딩태그에 대해서 포스팅한다는 현실이 부끄럽기도 하고 안타깝기도 하지만.. 이렇게 포스팅을 해야 많은 분들이 올바른 헤딩태그를 사용하시리라는 희망을 품으며 몇자 적어봅니다.
전편과 후편으로 나뉘며
전편에는 헤딩태그를 사용했을 때의 장점(전반적으로 시멘틱 마크업에 대한 이야기), 해딩태그의 이해
후편에는 잘못된 헤딩태그 사용예, 헤딩태그 결론에 대해 포스팅됩니다.
2009년 하반기동안 Javascript강의를 많이 다녔는데, 이때 받았던 질문중 기억에 남는 질문은
"헤딩태그를 어떻게 사용해야 할지 모르겠어요"
라는 질문이였다. (Javascript강의인데 HTML을 질문하는 용자의 용기와 호기심에 박수를 보냅니다.;) )
알고보면 매우 간단한 것인데 이 질문을 여러번 받았었다.
아마도 원문에 헤딩태그에 대한 자세한 설명과 예제가 부족해서 그런게 아닌가 하는 생각을 해본다.
접근성을 준수했다는 사이트들도 상당수가 잘못된 헤딩태그를 사용하는 것을 목격하였다.
이제 헤딩태그에 대해 파해쳐보자. 팍팍
팍팍 파해쳐보기 전에..
지금 포스팅된(그리고 포스팅될) 이 글은 견해의 차이가 있을 수 있다.
그 이유는 원문에는 간략한 설명만 있을 뿐 자세한 설명과 예제가 적다.
이로인해 원문을 이해하는데 견해의 차이가 생길 수 있기 때문이다.
이건 마치 성경을 놓고서 사람마다(혹은 종파마다) 해석하는 바가 틀린 것과 같은 이치이다.
자. 자기방어는 이쯤으로 마무리하고, 이제 제대로 한번 파해쳐보자 팍팍.
헤딩을 올바르게 사용했을 때의 장점(시멘틱마크업의 장점)
헤딩을 올바르게 사용하면 SEO가 올라간다.
물런 국내 대형 포털의 검색에는 안걸릴 확률이 아주 높다. 실제로 검색이 되었다 하더라도 검색결과에 나올 확률은 알 수 없다. 그 이유는 다들 알겠지만 검색 방식의 차이와 광고 및 정책 때문이다.
"그렇다면 도대체 어떻게 SEO가 올라간다는 말이냐?"
라는 의문을 품은 분도 계실 것이다.
우리가 종종 착각을 하는것이.. 포털의 검색만 "검색"이라고 착각을 하는데, 사실은 그렇지 않다.
크롤러(혹은 봇. 이하 크롤러로 통일)가 돌아다니면서 수집하는 모든것이 검색이라고 생각해도 무관하다.
크롤러가 정보를 수집해갔다는 행위의 시초가, "검색"이라는 이벤트가 있었기 때문에 정보를 수집해간 것이라 해석할 수 있기 때문이다.
크롤러가 무작위로 정보를 수집해 갔다 하더라도, 수집해간 정보가 언젠가는 노출이 될 확률이 높으므로 이것 또한 긍정적으로 생각할 수 있다.
엄청난 비용을 지불하여 SEO를 올릴 수도 있지만, 간단하게 HTML 코드를 수정함으로써 SEO를 올릴 수 있다는 것이다.
HTML을 수정했다고 엄청나게 SEO가 향상된다고 말하기는 어렵다. 위에 언급했듯이 국내 포털들은 검색에 안걸릴 확률이 높으므로 그렇다. 안하는 것보다 나은 정도의 수준이라고 생각하는 것이 좋을 것이다.
하지만 다행스럽게도 구글에서는 확률이 올라가니 아무 소득이 없는것은 아니다.
사람이 보는 것이 아닌 기계가 알아볼 수 있는 헤딩
그럼 크롤러가 정보를 수집해가는 원리에 대해서 알아보자. 일반적인 크롤러의 경우 HTML을 읽은 후 거기서 키워드를 인덱싱한후 저장하는 방식이다.
여기서 어려운것은 HTML을 분석하여 이 HTML이 어떤 정보를 담고 있는지, 혹은 해당 키워드가 있는지 인덱싱하는 기술이다.
수많은 text중에 어떤 것이 의미가 있는 정보이고 광고이고 쓰레기인지 구분해내야 하기 때문이다.
이 말인즉슨 유의미한 데이터(정보)가 무분별하게 쓰레기와 썩여있다면, 크롤러가 유의미한 데이터를 찾지못하고 넘어갈 수도 있다는 것이다.
시멘틱 마크업
좋은 크롤러라면 모래 속의 진주를 발견해 갈 수 있지만, 이런 기대는 감나무 밑에서 감 떨어지길 기다리는것과 같다.
우리가 유의미한 데이터라고 표시를 해주면 어떻게 될까? 당연히 크롤로가 한결 수월하게 정보들을 수집해 갈 것이다.
이렇게 표시를 할 수 있는 태그중 하나가 바로 헤딩태그이다. 우리가 헤딩태그를 올바로 사용하면 크롤러는 별 어려움없이 유의미한 데이터를 수집해 갈 수 있다.
그 이유는 기본적으로 크롤러들은 head안에 오는 태그들(title 등등)이나 헤딩태그, 강조태그들을 주로 수집해가기 때문이다. (크롤러마다 차이가 있음)
크롤러가 이해할 수 있다면 크롤러가 아닌 다른 녀석도 알아볼 확률이 높아지게 된다.
여기서 다른 녀석은 우리가 흔히 사용하는 브라우저(IE, FF, Opera, Safari, Chrome)가 아닌 다른 브라우저 및 디바이스를 의미한다.
PDA, 모바일 브라우저 뿐만 아니라 사내 터미널 등등 호환성이 넓어지는 것이다. 사실 이것은 웹표준을 준수했을때 생기는 이점이며, 시멘틱 마크업을 했을때 시너지가 생겨 그 효과가 극대화 된다.
기계(HTML을 수집하거나 분석하는 모든것들)가 이해를 해야지만이 SEO도 올라가고, 기계가 이해를 할 수 있으니 다른 디바이스(장치)와도 호환이 된다.
결국은 기계가 이해할 수 있는 마크업을 해야한다는 것이다.
이것이 바로 내가 생각하는 시멘틱마크업이다.
헤딩태그의 이해
많은 분들이 헤딩태그를 설명할 때 책과 비유를 한다. 나 또한 책에 비유를 많이 했었는데
이렇게만 설명하면 이해할거라고 생각했었는데 그것은 내 착각이었다.
많은 분들에게 "책"예를 들면 다들 그때는 고개를 끄덕거리시지만, 막상 사용할려고 했을때 감을 못잡으시는 경우가 허다했다.
하지만 이번에는 책이 아닌 다른것으로 예를 들어 설명을 해보겠다.
바로 문서로 예를 들겠다.
여기저기서 실망감을 표출하며 "그게 그거다", "낚시하냐"라는 원성이 들리지만..
책보다는 문서가 더욱 적절한 예제여서 헤딩태그에 대한 오해를 줄일 수 있을 듯 하다.
수많은 문서 중 보고서를 예를 들겠다.
2009 실적 보고서라고 하자. 그리고 이 실적보고서의 내용을 상상해보자.
각 사업별 실적이 나올 것이고, 전년도 실적과 비교도 할 것이고, 분기별 비교도 있을 것이다.
이러한 것을 목차로 생각해보면
2009 실적 보고서
전체 사업 실적 요약
A 사업 실적
1분기 실적
2분기 실적
3분기 실적
4분기 실적
전년과 비교
총평
B 사업 실적
1분기 실적
2분기 실적
3분기 실적
4분기 실적
전년과 비교
총평
총평
뭐 대충 이런식으로 있게 될 것이다.
그럼 여기서 A 사업 실적의 2분기 실적을 보고 있다고 가정하자.
그렇다면 이 페이지의 헤딩은 어떻게 되야할까?
바로 그렇다. 여러분이 생각한 것이 바로 정답이다.
생각대로 하면 되고~
대제목: 2009 실적 보고서
중제목: A 사업 실적
소제목: 2분기 실적
참 쉽죠잉~?
다음편에는 헤딩태그의 오해와 결론에 대해 적어보도록 하겠습니다.
ps. 왠지 다른 블로거가 헤딩태그 관련해서 글을 썻을거 같은 이 느낌.. ㅠ,.ㅠ
prototype.js나 jQuery처럼 Core로 사용하기에는 복잡한 Relationships와 도움이 될만한 Reference가 적었기 때문이었죠.(제공하는 Reference는 Interface(Visual적인)에 대한 것들이 대부분이 었죠)
적어도 제가 YUI를 사용해볼려고 시도를 했을때는 그랬었습니다. 어쩌면 제가 못찾은걸 수 도 있겠죠 ;p
이젠 쉬워요
YUI 3에서는 Core로 사용하여도 어려움 없이 사용할 수 있도록 Name Space가 구성되었습니다. (어쩌면 YUI 2에서 지원되었던 것일 수도 있죠.) 우리가 흔히 사용하는 prototype.js, jQuery의 그것 처럼요.
이제는 YUI로 쉽게 Event Bind할 수 있고, 쉽게 DOM을 Select할 수 있으며, 쉽게 Animation Effect를 구현할 수 있어요.
가볍고, 빨라요
발표 내용중에 "가볍고, 빠르다" 라는 내용도 있었는데
사실 다른 Libraries와 비교해서 그렇게 딸리지 않는다
내부적으로 테스트했을땐 타 Libraries와 충분히 경쟁력이 있다
라고 하셨어요.(이 부분은 제가 못들었고 같이 있던 분이 이런 말을 했다고 제게 말씀해주셨습니다.)
Rails에서 쓰고 싶은데
제가 봤을땐 이제는 나름 쓸만해졌다라고 판단이 되어, Rails에서도 사용할 수 있는 Convertor가 있냐고 질문을 했었는데 "잘 모르겠다"고 하시더군요.(이 질문이 Jenny에게 전달 되기까지 힘들었습니다 ㅠ,.ㅠ)
진입장벽
우리가 익히 사용해왔던 Prototype.js, jQuery와는 틀린 Method Names를 가지고 있기 때문에 이것을 익히는데 시간이 소모될 듯 합니다. 하지만 과거처럼 어렵게 구성이 되어 있지 않아 쉽게 넘을 수 있을것 같습니다.
사실 이러한 진입장벽은 새로운것을 배울때 소모되는 지극히 당연한 기회비용이죠.
YUI에서는 축약식 Naming을 사용합니다.
예를들면 Drog&Drop기능을 "dd"로 선언하더군요.
이런류의 축약식 Naming은 양날의 검이죠. 코드를 짜는 사람의 입장에서는 쉽게 타이핑 할 수 있지만.. YUI를 잘 모르는 사람이 code를 보면 이게 무슨말인지 알 수 없으니 말입니다.
그리고 개인적으로 이런식의 Naming을 좋아하지 않습니다.
선입견을 버릴 수 있다면
"무겁다", "느리다", "어렵다" 이러한 YUI의 선입견만 버린다면 한번 사용해보는것도 나쁘지 않을 듯 합니다. (물런 실험정신 및 확인정신(사실인지)가 조금은 필요합니다. ;p)
사실 저는 Pipes가 생긴게 ERD같아서 설계할때 사용하는 UML같은 것인줄 알았었습니다. 그런데 그런것이 전혀 아니더군요. Data Collector(?)이고(자세한 설명이 필요하신분은 @phphloveme님께 질문을!)
YQL은 Pipes의 개발자용 업그레이드 버전이라고 축약할 수 있겠습니다.
Query날려서 Web상에 있는 Data를! SQL과 비슷한 문법으로 Query를 날려 Data를 Collect해오는 것이 YQL입니다.
Crawler를 만들거나 API를 통해서 Data를 Collect해오는것을 만드는것은 사실 귀찮은 일인데, Query만 날리면 바로 값을 Return해주죠.
오! 귀찮은 일을 줄여주었군!
저는 "와.. 이제 Crawler랑 API랑 통신하는 코드 안짜도 되겠다! 만세!!"라고 생각하며 기쁜마음으로 어느정도의 트래픽이나 규모를 감당할 수 있느냐고 질문을 했었는데
이건 Data가 어떻게 모이나?(혹은 보이나?) 정도로 사용할 수 있는 Prototype용으로 사용할 수 있는 서비스
라고 하시더군요. 어떤 질문자분께서
사용해봤더니 하루에 4000K 트래픽밖에 허용이 안된다
라며 불만을 표하시기도 했었습니다.
재미는 있을 것 같은데, Prototype을 위한 서비스여서.. Prototype을 위한 서비스라 트래픽, 규모, 안정성 부분에 한계가 있어, YQL을 이용해서 서비스를 개발하기엔 무리가 있는것 같습니다.
결국은 내가 다 만들어야해
결국엔 Crawler나 API랑 통신하는 코드 다 짜야한다는 결론이 나옵니다.
이러한 결론을 도출하고 보니 YQL의 매력과 흥미가 사라지더군요.
추가 정진호님께서 제가 했던 YQL의 질문에 대한 답변을 정정해주셨습니다.
Pipes 와 YQL이 트래픽의 제한이 있지만
반드시 프로토타입 제작에만 사용되는 것은 아닙니다.
즉, YQL을 이용해 가져오는 데이터는
그 특성상 실시간 업데이트될 확률이 적습니다.
따라서 자체적으로 데이터를 일정 부분 캐싱하는 알고리즘을
이용하면 도움이 됩니다.
참고로 야후 본사쪽에서는 외부 파트너의 컨텐츠를
YQL로 가져와서 캐싱을 한 후에 실제 서비스에 이용하고 있습니다.
따라서 실시간 데이터 업데이트가 아닌
데이터의 수집/가공 영역에서 YQL을 사용해 보시기를 권해 드립니다.
1. 직접 Crawler나 API랑 통신하는 코드를 짜는데 시간을 들이고 안정적으로 Data를 Collect하는것 Vs YQL을 이용해서 빠르게 Collector를 만들지만, 속도와 안정성 측면에서는 모험을 해야 하는것
이 둘을 비교했을때 어떤것이 더 효율이 있을까요? (혹은 어느 수준까지는 YQL이 좋다)
2. YQL의 안정성이나 속도에 대한 통계수치가 나와 있는지 궁금합니다.
3. Query가 날라갔을때 그때 직접 Data를 Collect해오는것인지? 아니면 Cached Data를 가져오는 것인지도 궁금하구요
자.. 한줄요약
YUI 3는 쓸만해졌고, YQL은 재미있는 물건이지만 이걸가지고 뭔가 하기엔 무리가 있다. 재미있는 물건으로 잘만 활용한다면 기획자와 개발자에게 엄청 큰 도움(?)을 줄 것이지만, 안정성과 속도에서는 검증이 되었는지 잘 모르겠다.(이 부분은 정진호님께서 답변을 해주세요~ ㅎㅎ)
2009.8.25(화) 밤.
삼성동 야후!코리아 사무실에서는 “YUI/YQL 활용하기” 라는 주제로
야후 개발자 네트워크 Tech Talk가 열렸습니다.
원래는 야후! 본사에서 근무하는 두분의 개발자를 모시고
진행하는 것이었는데 한 분이 지난주 태국여행 중 댕기열이라는
열대모기로 전염되는 열병으로 입원, 급히 제가 대신 Pipes/YQL강사로
투입되는 해프닝이 벌어지기도 했습니다.
주중 퇴근 후 진행되는 개발자 이벤트의 특...
커밋(Commit)과 업데이트(Update)만 할 경우에는 특별히GUI툴이 필요 없겠지만
로그를 보거나, 과거 리비전(REVISION)의 파일내용을 확인하거나, 복구하는 등 간단하지 않은 작업을 할때는 아주 편하게 사용할 수 있다는 장점이 있습니다.
제가 자주 애용하는 웹SVN(SUBVERSION)인 Beanstalk(제 모든 개인프로젝트는 Beanstalk 사용)을 만든 wildbit의 작품입니다. VERSIONS 로고를 본 순간부터 Beanstalk 짝퉁인가? 라고 생각했었답니다. 근데 같은 회사였네요. 멋진 디자인센스(Design Sense) 인것 같습니다. ;)
2011/10/30 18:39TRACKBACK FROM 월풍도원(月風道院) - Delight on the Simple Life
맥에서 rvm(Ruby Version Manager)를 이용한 ruby on rails 개발 환경 구축 방법입니다.맥 OS X에 rvm을 이용해 ruby on rails 개발 환경 구축하기맥 OS X에서 루비 설치하기우선 터미널에서 아래의 커멘드를 이용해 RVM(Ruby Version Manager)을 설치합니다.$ bash < <(curl -s...
IE7에서 text-decoration: underline 이 이상하게 표현될 때가 있습니다.
조금 더 정확하게 표현을 하자면 밑줄이 제자리에 있지 않는 증상이죠.
font-family가 어떤것이냐에 따라 1px 올라가느냐 2px이 올라가느냐 정도의 차이가 있습니다.
문제의 원인은
vertical-align:middle속성을 가진 DOM이
text-decoration: underline 속성을 가진 DOM과
같은 레벨에 있을때
나타납니다. 아마 IE7의 Bug인것 같네요.
IE7에서 같은 레벨상에 vertical-align: middle의 DOM이 있을경우 text-decoration: underline인 DOM이 이상하게 표현되는 경우
해결책은 아주 간단합니다. vertical-align: middle의 객체를 div같은 display:block으로 감싸주면 되죠. 만약 이 객체의 우측에 위치해야 한다면 float: left로 Positioning을 해주시면 됩니다.
그 외 세세한것들은 디자인에 맞춰서 Styling 하면 되는것이죠.
FF3, IE7, Safari 에 있는 좋고 편한 기능들을 적용하거나 더욱 강화 시켜 적용한 것들이 눈에 띄는군요.
주소 입력창 (FF3) - 더욱 강력해짐
비밀번호 저장 기능 작동방식 (FF3) - 똑같음
탭의 내용들이 썸네일로 표현되어 보여지는 기능 (IE7) - 새탭을 열때 이 기능을 응용하여 사용
선택된 input를 표시해주는 기능 (Safari) - 색상만 틀리고 똑같음
자체적인 Inspector 지원 (Safari) - 비슷함(똑같은거 같음)
그리고 SSB기능도 포함이 되어 있습니다. 단순하게 SSB만 된다고 하더라도 파격적인데..탭별로 독립적인 프로세스가 되므로 더욱 안정적이죠.(크롬은 멀티프로세스 입니다.) 그리고 바탕화면에 아이콘 만드는 기능은 Gears를 그대로 이용한것 같네요. (당연한 얘기지만)이것을 보면 크롬은 Gears를 탑재한것 같습니다.
그리고 개인적으로 가장 기대가 되는것은 V8인데 사용시간이 그리 길지 않다보니.. 아직 체감은 못하고 있습니다. 하지만 그들이 말한데로 Drag&Drop은 정말 부드럽게 잘 되네요
하지만 이것들은 그냥 가벼운 얘기일뿐.. 브라우저가 여기까지 진화한것도 놀랍고 경이로운데..앞으로 어디까지 진화할지 무척 궁금합니다.
약 2년전부터 웹OS라는 말을 듣고 그때 당시에는 별 감흥이 없지만.. 구글의 행보와 여러 웹의 동향을 볼때마다 깜짝깜짝 놀랍니다. 그리고 크롬, Ubiquity같은 것들을 보면서 웹OS의 시대는 이미 2년전에 개막했었던걸 느끼게 됩니다.
오늘 아침 출근해서 duecorda님과 잠깐 얘기를 나웠는데..우스갯소리로 크롬이 브라우저의 끝 보여주고 있다고 하시더군요. 저도 동감합니다.
하지만 여기가 끝이 아니겠죠. 앞으로 더 진화할 브라우저와 그로 인해 편하고 윤택해진 우리들의 삶을 기대해 봅니다.
제가 쓰는 카드사에선 보안 메일을 받지 않고 그냥 메일 내용에 카드 사용 내역이 나오는 옵션이 있어서 잘 쓰고 있습니다.
확실히 html 파일을 첨부해서 보내면 임시파일로 하드에 저장되기 때문에 문제이긴합니다만...
청구서를 보내는 입장에선 어떤 메일 프로그램을 쓰던지 (혹은 어떤 웹메일) 간에 보안적인 문제가 발생하면 귀찮아지니 그렇겠지요.
몇몇 사용자들이 다른 브라우저를 사용해서 못 이용하더라도, 혹은 매우 번거롭더라도 회사입장에선 그건 그것에 비해 큰 문제가 아니니까요^^
하지만 **카드사 처럼 사용자에게 충분한 설명과 선택권을 주는 곳도 있답니다.
말씀하신
"몇몇 사용자들이 다른 브라우저를 사용해서 못 이용하더라도, 혹은 매우 번거롭더라도 회사입장에선 그건 그것에 비해 큰 문제가 아니니까요^^"
는 저는 조금 다르게 생각합니다.
이런 메일을 보내는 행위자체가.. 고객들에게 내역서를 보내주기 위함이라고 생각하기 때문에요..
그렇기 때문에 못보는것은 원래 목적에서 벗어나는 아주아주 잘못된 행위라 생각하며
매우 번거롭게 보게 된다면.. 이건 기획을 아주아주 잘못한 것이라고 저는 생각합니다.
조금 얘기를 더 밖으로 끄집고 나가자면...
실제로 우리나라 태반의 웹 사이트들이 이와 비슷한 안일한 생각으로 디자인하고 기획하고 개발하고 있는것같아 무척이나 아쉽고 한탄스럽습니다.
왜 UI, UX(여기서 ui, ux는 javascript, html, css 같은 것를 말하는것이 아니라. HCI와 비슷한 레벨에서의 의미입니다.)등을 고려하지 않는지.. 개탄스러울 뿐입니다.
아니 UI, UX등은 몰라도.. 쉽고 직관적으로 만들어야 하는데.. 그냥 있는 컨텐츠, 없는 컨텐츠 다 덕지덕지 붙여놓고 "짜잔!" 하고 있으니... 너무너무 아쉬울 뿐입니다.
(쓰다보니 얘기가 흠..ㅎㅎ)
편하면 좋은 것이긴 한데, 이메일 자체로 보안성이 보장되지는 않습니다. 명세서 발행 업체 메일 송신 서버와 메일 수신 서버 간의 통신에서 메일 탈취가 될 수 있고, 메일 수신 서버와 사용자 간의 통신에서 메일 탈취가 될 수 있습니다. 또한 실제 세계가 아니라 전산망이라는 특성상 우편 명세서를 배달하는 우편 트럭을 터는 것보다 더 많은 양의 대량 탈취가 가능합니다. 따라서 보안 대책을 강구하는 것은 당연합니다.
문제는 거기에 들어간 보안 대책이 실은 보안성이 전혀 없다는 것입니다. 주민번호 뒷자리가 암호이며 이용자가 수동 변경할 수 없다는 것이 문제입니다. 따라서 공격자는 숫자 6자리+α(7자리 중 1900년대 출생자는 맨 앞자리가 1 또는 2이므로), 즉 기대값 100만 번의 컴퓨터 계산만으로 보안 명세서를 볼 수 있습니다. 이는 요새 파는 싸구려 데스크탑 컴퓨터로도 순식간에 가능한 수준입니다.
2007년 1월의 조정 신청을 시작으로 1년 반 동안 계속된 '오픈웹 소송'의 1심 판결에서, 서울중앙지방법원이 원고 패소 판정을 내렸습니다. 오픈웹(Open Web)은 '마이크로소프트 윈도우와 인터넷 익스플로러 환경에서만 인터넷 뱅킹을 할 수 있는 것은 부당하다'며 지난 2006년에 김기창 교수를 중심으로 결성된 단체입니다. 이번 소송은 IE 전용 공인인증서를 배포하고 있는 금융결제원을 대상으로 제기되었습니다. 오픈웹은 '다른 웹 브라우저나 운영...
OS에 상관없이 CSS Editor를 16개나 Review 한 것입니다. 영어의 압박이 있긴 하지만..심심풀이 땅콩으로 볼만한 것 같습니다.
세세하게 둘러보진 않았지만..지금보니.. Mac용 Editor도 많네요. 괜찮아 보이는것들도 있고... 메인 OS가 Windows여서 Windows용이 사실 좋은데.. 왠지 Mac Editor가 더 이뻐보이네요.. 이뻐보여서 그런지 왠지 기능도 더 좋을거 같고;; (Rails랑 svn용으로만 쓰는 불쌍한 내 MacBook의 활용도가 조금 더 올라갈려나;;)
둘러보니 Linux에서도 구동되는 CSS Editor(CSSED)도 있네요!! 그리고 CSS 천재라고 불리는 Eric Meyer가 CSS Editor도 만들었다는 사실도 알았습니다. 듣는순간 촌티가 확 나면서 왠지 안쓰고 싶은 느낌이 드는 이름을 가진 Editor.. 그 이름하여 Eric Meyer’s CSS Sculptor..............;;;
그래도 Eric Meyer인데!! 라는 생각으로 Eric Meyer’s CSS Sculptor 에 들어가는 순간.. 순간 두 눈을 의심하게 되며, 머리속이 하얗지면서 두 손과 어깨의 힘이 쭉빠지게 됩니다. 요즘 흔히들 말하는 "멍~" 때리게 됩니다. 그리고 정확히 2.515초 후에 Scream!!! 하게 될 수 도 -ㅁ-;; (역시 서양인들의 쎈쓰!! ㅎㅎ)
과거에 팝업창으로 뜨던 "암호저장여부"가 브라우져의 상단에 뿅 하고 나타납니다.(약간 맥 스타일 같기도 하고 ㅎㅎ) Look의 IE7 느낌이 이 조금 나네요. (위에서 뿅 뜨는건 맥이니깐 Safari도 닮았다고 해야 하나;;) OSX(mac)에서 보니 Safari(사파리)와 완전 비슷하군요;; 흠 그럼 결론은...각 OS가 제공하는 브라우져를 따라한..? ㅎㅎ
Smart Location Bar 주소표시창이 좀 더 멋지구리하게 바꼇습니다. 검색된 사이트의 title과 favicon이 표시이 합께 표시가 됩니다.
Download Manager 업데이트후 최초에 다운로드목록(Ctrl+J)에서 내역 지운것들이 다시 살아나는 경우가 있지만 창 안에서 파일검색이 가능하네요. 그리고 더블클릭으로 실행하도록 바꼇구요.. 그리고 다운로드중에 일시정지도 된답니다.
Status Bar 공식 Features에는 없는 내용인것 같은데.. 상태표시줄에도 설치한 에드온의 actions 과 현재 이루어 지고 있는 현황이 표시되는것 같네요.
Add-ons Manager 검색기능이 Add-ons Manager 패널 안으로 들어와서 구지 사이트로 이동하지 않아도 되네요.
그 외에도 HTML, CSS 렌더링방식이 좀 더 표준에 가까워졌고 보안이 강화되었으며, 북마크 기능이 쉬워지고 영어철자검사 기능도 추가되었습니다. 열거 된 것 외에도 많은 부분이 수정이 되었으니 자세한것은 아래 링크를 참고하길
97년인가, PC통신의 '이야기'라는 프로그램의 텔넷 환경이 아닌 Netscape라는 프로그램의 인터넷 환경을 처음 접했는데, 맛만 좀 보다가, 세상과 잠시 단절을 했다. 그리고 복귀한 후 달라진 것은 바로 '메일'이 '웹메일'로 바뀐 것이었는데, 더욱 신기했던 것은 바로 '웹서핑(WebSurfing)'이었다. 컴퓨터로 게시판에 글을 쓰고, 채팅도 하고, 메일도 보내는 것은 이전 PC통신 시대에도 있었던 것이지만, 이 웹서핑이라는 것은 구체적인 정보..
1. 지금 이 시각까지 FF3 최신버전은 rc3 입니다. http://www.mozilla.or.kr/ko/firefox/all-rc.html 물론 기다림님이 링크거신 daum의 ftp 주소에도 rc3가 올라와 있더군요. rc2와 비교해볼 때 윈도우 버전에선 별 다를바가 없다고는 하지만, 그냥 기분삼아.-_-; 내일(18일) 오전이면 FF3 정식이 올라온다고들 하죠. 전 오늘인 줄 알고 새벽부터 버텼다가 결국 손들었슴다. ㅠ.ㅠ
2. FF3에서 FF2의 확장기능을 강제적으로 설치시키는 확장이 있습니다. 저도 한동안 써봤는데, 별다른 에러없이 잘 사용되더군요. (테마는 좀 무리였고...) 'Nightly Tester Tools' 라는 확장을 찾으시면 됩니다. 여기 주소는 http://www.oxymoronical.com/web/firefox/nightly 입니다. 전 모두 22개의 확장기능을 쓰는데, 이제껏 아무런 문제가 없었습니다.
자료(정보)를 담고 있다는 측면에서 보면 웹은 책, 신문 처럼 문서라고 할 수 있다. 그리고 실제로 웹은 문서이다. 책에서 중요한것중 하나는 "좋은 정보를 어떻게 보여줘야 독자들이 잘 이해할 수 있을까?" 라고 생각한다. 가장 중요한것은 장식이 아니라 정보 그 자체이다.
그러므로 정보의 성격을 구분을 해서 문서의 구조를 새우는것이 가장 중요하다. 이렇게 하면 semantic한 마크업을 보다 쉽게 할 수 있게 되고, 이후 작업인 CSS, Javascript도 접근성을 보장하며 작업하게 될 확률이 높아진다.
한마디로 문서 구조부터 생각을 하고 작업을 시작하면 표준을 준수한 결과물이 나오게 될 확률이 높아지는 것이다. (시작이 반..?)
근 1년전부터 UI, UX, HCI (이하 UI)쪽에 관심이 많이 가고있다. 사실 UI는 개발자들이 전혀 관심도 가지지 않고 신경조차 쓰지 않는 분야이다. 나 역시 그런 개발자중 한명이었다. 내가 이쪽에 관심을 가지게 되었던 이유는 아마 주변사람과 환경때문일 것 이다. 외국의 훌륭한 사이트들을 많이 접하다보니 국내와는 차이점을 느끼게 되고, 그럴때마다 회사동료가 많은것을 알려주었기 때문이었다. (thanks randomwalk)
사소하지만 알고보면 엄청난 뜻과 의도가 숨겨져 있는 아주 매력적인 일인거 같다. 그 매력은 마치..
꾀죄죄한 복장의 한 낭인이 5~6명의 무뢰배에게 포위 되어 엉거주춤 서 있었다. 당연이 구경꾼들이 모였고 많은 구경꾼들은 낭인을 향해 "하필 양아치문파에게 걸리다니..운도 없군" 하며 혀를 차고 있었다. 순간 무뢰배들이 '어깨힘좀주는 진법' 을 구사하며 낭인을 덥쳤다. 쾅 하는 굉음과함께 먼지가 자욱히 일었고 구경꾼들은 먼지가 가기만 기다리고 있었다. 먼지가 가라앉고 구경꾼들은 싸움터를 향해 봤는데 놀라운 일이 벌어져있었다. 낭인은 없고 널부러져있는 무뢰배들만 있었던 것이다.
구경꾼들중에 이 낭인의 무예를 본것 같은 느낌이라고 해야할까..? 그 무예를 보고 낭인이 마교교주라는걸 알아냈을때의 느낌이라고 해야할까..? (뭐래는거야..;;) 영화를 보면서 감독의 숨은의도를 알아챘을때의 느낌.. 뭐 그런거..?
얼마전에 문득 든 생각인데.. 웹표준과 접근성 그리고 UI 컨설팅을 함께 하면 재밌을거 같다라는 생각을 했다. 그러면서 내가 한번 해보면..? 이라는 생각까지 하게 되었는데.. 웹표준, 접근성은 내가 어느정도 자신이 있지만..UI에서는 '영 아니올시다' 여서 ㅎㅎ 그냥 사이트보고 내 나름의 기준을 가지고 평가(흠 평가란 말은 너무 거창한거 같은데;;)하는 정도만 가능하다. 역시 이쪽은 산업디쟈인이나 인지공학쪽을 전공한 친구들이 하는게 아마 더 멋지고 훌륭한 결과물이 나올 것 이다.
tab menu 의 링크를 각각의 content에 걸어줌으로 인해 quick link의 역활을 수행하여 접근성을 높였고, 각 content 하단에 tab menu로 바로 가는 quick link도 제공함으로 더욱 완성도 높은 접근성이 보장되었다. 하지만 이렇게 보면 전혀 tab menu같지가 않다.
이제는 tab menu스럽게 꾸며보자.
body { font:12px arial; } a { text-decoration:none; } img { border:0; }
/* tab menu */ #tab_menus { margin:0; padding:0; list-style:none; } #tab_menus li { margin-bottom:16px; float:left; padding:0px; } #tab_menus li a { padding:8px 10px; color:#505050; border-width:1px 0 1px 1px; border-style:solid; border-color:#ae9f96; background-color:#eae4e0; background-image:none; font-weight:bold; font-size:0.9em; display:block; } #tab_menus li a:hover { color:black; } #tab_menus li.selected a { border-bottom:0 solid white; background:white url("blt_arrowdown.gif") no-repeat center bottom; color:black; }
tab menu의 a를 block으로 잡고 hover를 주어 onMouse상태일때 Javascript없이도 변화를 줄 수 있게 하였다. #Menu_02, #Menu_03에 display:none을 안 준 것을 궁금해 하는 독자가 있다면, 당신은 천재! Javascript없이도 모든 content의 접근성을 보장하기 위해서다. 이건 조금 후 다시 설명하기로 하고..
자 이제는 마무리. Javascript로 tab menu 동작을 만들자. mootools 1.11(Element.Event, Element.Selectors)을 이용하였다
var selected_menu = 0;
var menus = $$('#tab_menus li'); var contents = $$('div.content'); contents.each(function(div, i) { if (i != 0) { div.setStyle('display', 'none'); } })
menus.each(function(quick_link, i) { quick_link.getElement("a").blur(); quick_link.addEvent('click', function(event) { e = new Event(event).stop(); contents[selected_menu].setStyle('display', 'none'); menus[selected_menu].removeClass('selected');
#Menu_01을 제외한 다른 content들은 가려주었고, tab menu의 박스에 click 이벤트를 걸어줌으로써 toggle 기능이 완성이 되었다. 만약 content들을 CSS에서 가려주었다면(#Menu_02, #Menu_03 display:none) CSS는 render가 되었는데 Javascript가 동작이 안되는 상황이 오면 다른 content에 접근할 방법이 없어진다. Javascript로 원하는 content를 display:block으로 바꿔줘야 하는데 Javascript가 동작이 안되니 tab을 백날눌러도 그 tab의 content는 볼 수 가 없게 되는 것이다.
결론. 결국은 content는 CSS와 Javascipt에 영향을 받지 않게 설계,코딩 되어야 하고 더불어 semantic하게 markup되어야 한다는 것이다.
다운로드 미리보기 (링크걸리는줄 알았는데 그게 아니네요. 아..이럴때 개인서버가 살아있었다면..)
사실 이 문제에 정답! 은 없다. 뭐로 마크업을 하든 보여지는게 메뉴면 되니깐 말이다. 하지만 문서로써의 의미, 즉 semantic을 생각한다면 아마 menu가 정답에 가장 가깝지 않을까..? "좋아! 이제부터 menu로 메뉴들을 마크업하자!!" 라고 한다면 한가지 알려주고 싶은게 한가지 있다. 그건 바로 menu보다는 ul을 쓰라는 것이다.
"아니 5초전에는 menu를 쓰라더니 지금은 ul을 쓰라고..?" ul을 쓰라고 하는 이유는 w3가 menu 보다 ul을 사용하라고 강력하게 추천하기 때문이다.
오오오옷!!!!!! menu 가 존재한다..!! 아주 반가운 소식이 아닐 수 가 없다!! :) 더군다나 예전과는 완전 다른 입장인것 같다. 무슨소리냐 하면 html4에서는 ul을 쓸것을 강력하게 추천했지만, html5를 보면 메뉴를 써야하는 모든곳을 menu로 마크업이 가능하게 되었기 때문이다. (이 때문에 List element 가 아닌 Interactive elements에 있는건지도 모르겠다. 처음에 List element에 없어서..menu가 사라진줄 알고 실망했었다. 솔직히 아직까지 html5에서 말하는 Interactive elements의 정의가 무엇인지 잘 모르겠다) content 메뉴, toolbar 메뉴, html 메뉴(우리가 흔히 말하는 메뉴) 를 menu를 사용해서 표현이 가능하다. (type attribute로 구분지어서 사용 가능) 말그대로 html에서 나타나는 모든 메뉴는 menu로 마크업이 가능하다.
결론은.."아직은 정답은을 알 수 없다. 하지만 html5가 나오면서 menu가 좀 더 정답에 가까워 진게 아닐까..?"
댓글을 달아 주세요