Daum UIDevday에 다녀왔습니다.
낙서장 2008/06/05 16:35 |5월30일 Daum UI DevDay에 다녀왔습니다.
회사 동료분들과 다녀왔는데 정말 사람이 많았습니다.
행사의 베테랑인 다음에서 이번엔 조금 미숙한 모양새가 있었지만 그냥 넘길 수준이었습니다.
마지막의 UI에 관련된 팁이나 들어보려 했는데 행사장이 조금 좁아서 듣지 못했습니다... :)
행사의 내용을 보자면 그간 다음의 행사에 비해 50%정도 만족했다는 평을 하고 싶습니다.
새롭게 느껴졌던 내용은 XUL에 관한 이야기 였고 나머지 이야기들은 조금 ....평범했었습니다.
그래도 실무진이 직접 설명을 하는것 치고는 자연스럽게 잘 했다는 말을 해주고 싶네요.
가장 궁금했던 XUL에 관해 들을 때 였는데 개발자분이 굉장히 흥에 차있었습니다.
곧잘 웃기도 하시고 혼자 많~~~이 아주 많이 좋아라 하셨습니다. 함께 웃을수 있는 강의 였음 더 좋았을텐데..
아쉬웠네요..
그리고 고기서 이정웅님 뵈었고요 ^^ 방가웠었습니다. :) 그리고 경품 당첨 축하드립니다!! 한번 쏘시죠? (^^)/
이렇게 방가우신 분들 많이 뵙고 왔습니다.
다음 UI DevDay에 관한 딴지 하나~ 걸어볼까 합니다 :) 돌 맞을까나?
마지막에 듣지 못했는데 발표하시는 분이 prototype.js혹은 기타 등등의 라이브러리에 보면..
document.getElementById로 id로 객체를 잡습니다.그런데 라이브러리를 사용하면 $를 사용하지요..
그런 라이브러리에 보면
function $(el){
//로직을 보면..
인자의 el이 string이면 document.getElementById(el)을 잡아서 리턴
+ property속성 설정 (모 addEvent같은 이벤트 dispatcher 같은 것들도 있고..많죠..)
}
이런 $를 사용하지 말아라 라고 이야기 하셨다더군요..
흠...전 $를 사용하라고 권합니다.단 수정을 해서~...
$method는 getElementById에 대한 대용 + 편의기능을 추가하는 것지요. 따라서 인자값은
id라는 string이 올거고 id를 가진 element가 온다는 규칙이 있어야 합니다.
그 개발자분이 말씀하신 이유는 잘압니다..
element를 잡는것 외에 $메소드는 부수적인 일도 더 하기때문에 자원의 소비가 많아 진다는 거겠지요.
적당한 예일지는 모르겠지만 ^^;;.. 예를 들면
for(var i = 0 ; i< 100000;i++){
document.getElementById("test").innerHTML += i;
}
라는 것과
var el = document.getElementById("test");
for(var i = 0 ; i< 100000;i++){
el.innerHTML += i;
}
이런식은 정말 차이가 크죠..
document.getElementById를 for가 돌때마다 실행하는 것도 일이라는 겁니다..
이것도 심한 자원낭비에 속합니다..document.getElementById조차도..
그러데 전 이것도 귀찮다는 겁니다. 초기 변수를 를 선언하는 것!
var el = document.getElementById("test");
for(var i = 0 ; i< 100000;i++){
el.innerHTML += i;
}
그래서 이렇게 씁니다.
for(var i = 0 ; i< 100000;i++){
$("test").innerHTML += i;
}
이러면 어마어마 하겠죠....document.getElementById를 실행 하는것도 부족해서 추가적인 property까지 넣어주는 로직이 있는 $를 for가 돌때마다 실행하니 말이죠..
그런데 $ method를 조금 바꾸었다면 어떨까요?
var cacheMap = {};
function $(el){
if(typeof el =='string'){
if(cacheMap[el]) return cacheMap[el];
el = document.getElementById(el);
}else{
if(cacheMap[el.id]) return cacheMap[el.id];
....
}
//추가적인 로직..
cacheMap[el.id] = el;
return el;
}
이렇게.. 그래도 낭비가 들까요? 나중에 cacheMap에 들어있는것들은 GC로직을 만들어서 쓰면 일타이피의 효과를 누릴수도 있습니다.. 물론 캐쉬로직을 사용하려면 갱신의 조건도 필수입니다..마냥 쓸수만은 없는 것이니까요..거기에 대한 노하우는 나중에 설명하겠습니다..설명이 너무 길어져서..
암튼 이런것 이상의 팁을 원했었는데....미련이 조금 남습니다...$를 쓰지말라는 선에서 멈추라니요..
하지만 다음은 노력하는 기업이고 꾸준한 기업이니 내심 기대해 봅니다 :)
PS : 윤석찬님이 마지막에 해주신 말씀이 너무 기억이 많이 남습니다.
아이폰이 미국에 풀리니 패러다임에 변화가 있었다..사람들이 컴퓨터에서만 검색하는 것이 아닌...
돌아다니면서 시시각각 필요시마다 해대는 통에 검색의 트래픽이 10배이상 증가하는 현상이 발생되었다..
너무 설레이는 말이었습니다.. 앞으로 무얼해야 할까에 대한 궁금증이 풀리는 순간이기도 했구요 :)
'낙서장' 카테고리의 다른 글
| 다음에서 4번째 DevDay를 합니다.. (4) | 2008/06/10 |
|---|---|
| 고대 여대생의 당찬질문.. (0) | 2008/06/09 |
| 펌]폭력시위의 진실? (0) | 2008/06/09 |
| Daum UIDevday에 다녀왔습니다. (3) | 2008/06/05 |
| 르까프 공지 (0) | 2008/06/05 |
| 가슴이 아립니다.. (0) | 2008/05/20 |
| Find Command (0) | 2008/05/15 |
| Daum UI DevDay (2) | 2008/05/14 |
Trackback Address :: http://lovedev.tistory.com/trackback/245
-
Subject: $() vs document.getElementById()
Tracked from 따라쟁이 2008/06/19 00:46 Delete이 글은 Happy? Unhappy? The Choice is yours…의 Daum UIDevday에 다녀왔습니다. 라는 글에 대한 때늦은 트랙백입니다. 해당 글을 최근에야 읽게 되어서요. UI Dev Day에서 발표한 내용 중 마지막 부분에 ...
이올린에 북마크하기
댓글을 달아 주세요
가보고 싶었는데.. ㅜㅜ
저혼자 좋아라 했었군요.. ㅎㅎ 죄송함돠.
근데 어떤 점이 아쉬웠는지 좀더 구체적으로 말씀해주시면
저에게 피가 되고 살이 될것 같은데 ^^;;
^^; 안녕하세요.
나쁜의도로 말씀 드린건 아니에요 ^^;;
제가 XUL에 대해 제가 처음 접하는 것이고 관심도 많이 갔었던 분야여서 주의깊게 듣고 싶었는데 혼자서 너무 빨리 진행하시고 가버리시니 ..이해하기가 힘들었습니다..
제 주변에 있던 분들도 마찬가지였구요..
그런데 말씀하시고 계속 웃고만 계셔서 제가 이해할수 없는데 강사는 웃고 있으니...쫌 난해했습니다.
조금 나쁘게 말하면 강사와 청중이 공감대가 없이 진행되었던 부분이 많이 있었다고 보여집니다.
정말 좋은 주제로 좋은 설명해주시는데 그 아까운 지식
을.. 강사님께서 1년동안 혹은 2~3년동안 모아놓은 지식을 보여주는데 ... 그걸 이해할수 없다는게 ....아쉬울뿐이죠...
그런데 다음번에 하시면 더 많이 잘하실거라 믿습니다.
청중에게 웃을수 있다는건 자신감이 있다는 증거니까요~ 좋은 연휴보내세요~..
방문해주셔서 감사드립니다 ^^