IE Blog에 게시된 내용입니다. 원문은 이 글 마지막에 링크해두었으니 직접 살펴보세요. 이 글에선 간단히 요약만 합니다.
1. 변수는 로컬에 명시적으로 정의한다.
함수내에서 사용되는 지역 변수가 있다면 명시적으로 var 표시를 해주도록 합니다. 그렇지 않을 경우 브라우저는 상위 scope를 모두 뒤져서 상위에 해당 변수가 정의되어있는지 확인합니다.
2. 가능하다면 일단 캐싱한다.
DOM은 느리므로 가급적이면 DOM을 호출하는 횟수를 줄입니다. 반복적으로 document.body.all 등이 쓰여야 할 경우 document.body.all 를 다른 변수로 캐싱해둡니다. Array 등에서 array.length 같은 것을 반복문에서 사용해야 할 경우 var len = array.length 등과 같이 array.length 를 캐시해서 사용합니다. 함수 내에서 자주 사용되는 전역함수의 경우 지역 변수로 캐싱해서 사용하는 것이 좋습니다.
3. with 키워드의 사용은 피합니다.
JScript 에서의 with 키워드 사용은 scope를 하나 더 정의하는 것과 비슷한 비용이 듭니다.
4. 문자열을 많이 다루어야 할 경우에는 배열에 넣고 join 하는게 빠릅니다.
JavaScript에서는 자동으로 효율적인 코드로 변경하지만 JScript는 못합니다. 그래서 이런 식의 StringBuffer를 구현해줘야 빨라집니다.
5. eval은 무척이나 비용이 높은 명령입니다.
가급적이면 사용을 피하는게 좋습니다.
6. 가능하다면 closure를 피하세요.
closure는 매우 강력하기는 하지만 동시에 매우 위험하기도 합니다. 주의깊게 다루어야 할 뿐더러 최근에 패치가 되기 전까지 JScript는 DOM에 사용된 closure에 대해서 메모리 누수 현상이 있었습니다(패치 되지 않았거나 IE6 미만의 버전을 사용한다면 여전히 존재할 것입니다).
7. 프로퍼티 접근 함수는 사용하지 마세요.
객체지향 측면에서는 훌륭하지만 JScript로서는 끔찍합니다(헉… 이거 프레임웍에 썼는데…).
원문보기
IE + JavaScript Performance Recommendations - Part 1
IE+JavaScript Performance Recommendations Part 2: JavaScript Code Inefficiencies
IE+JScript Performance Recommendations Part 3: JavaScript Code Inefficiencies
미국에서 디 워 개봉하고 난 이후에도 말이 많다. TV에서 봤더니 “(내가 보기엔 없었던)멜로와 액션이 있는 영화였다”라는 식의 호평도 있었던 반면에 온라인에서는 연신 안좋은 소식들을 전하느라 바쁘다. 디 워가 꼭 블로그 워 같이 느껴진다. 개봉전에 1차, 개봉후 진중권씨덕에 2차, 그리고 지금은 3차 블로그 전쟁중인 듯 하다.
일단 애국심 어쩌고 하는 사람들은 솔직히 이해가 안되는 말이다. 내 보기에 가장 정확한 평은 디워가 “애들 영화”라는 평이 차라리 가깝다. 그래서 방학도 맞았고 꾸엑~ 거리는 이무기를 좋아하는 애들이 부모님과 함께(애들 가면 어른도 간다) 봤다는 게 더 맞을 것 같다. 애들이 애국심때문에 봤을리는 만무하고 어른들이 애들더러 “이게 대한민국의 자랑스러운 영화란다” 하면서 애국심 때문에 보여줬을리 만무하다. 나는 개봉하는 날 봤지만 솔직히 재밌어보여서 봤다. 몇년전부터 기다리다 지치긴 했지만 그만큼 완성도도 더 나아졌겠지 하는 기대감에 봤었다. 뭐… 스토리쪽은 마음을 상당히 열심히 비우고 갔음에도 당황스럽긴 했지만 말이다.
영화를 보고 좋을 수도 나쁠 수도 있다. 그런데 왜 남의 취향까지 평가하려고 하는지 모르겠다. 예고편에 낚인 영화 많지 않나? 나한텐 디 워도 그 중의 일부에 가까울 뿐, 애국심 그런거 모른다. 근데 왜 당신이 무슨 권리로 내 취향을 “단지 애국심 때문에 영화를 보는 무뇌아” 정도로 평가하는가? 그리고 싫어하는 것 까지는 그러려니 하겠는데, 어떻게든 못 까서 안달이다. 굳이 말 안해도 스토리가 잘 짜여져있지 않은 것은 알겠는데, 그렇다고 해도 당신한테 “쓰레기”라는 소리를 들어야할 이유는 없다고 본다. 그 쓰레기도 누군가에게는 꿈이었고 희망이었단 말이다. 당신이 한번이라도 그런 열정을 가져봤다면 그 무엇이 되었더라도 노력한 사람에게 돌을 던지진 않을 것이다. 최소한 그 편에선 디빠가 디까보다는 더 긍정적인 것 같다.
솔직히 디 워가 잘된 영화라고 말할 생각은 없다. 더군다나 나는 스토리를 중요시해서 영화를 보는 사람이라 헐리웃 영화 중에도 내 취향을 만족시키는 영화는 별로 없었으니까 디 워 정도의 스토리가 내 성에 찰리 만무하다. 실상 부족해도 한참 부족하다.
어떤 영화가 당신에게는 잘 되지 않은 영화일 수도 있고, 마음에 안들 수도 있다. 하지만 최소한 누군가의 취향을 매도한다거나 “쓰레기”라는 말은 삼가줬으면 좋겠다. 그리고 어느 성향을 지닌 분이건 간에 무개념 댓글과 댓글 러시는 좀 자제했으면 한다. “넌 그렇구나” 하면 될 일을 왜 못잡아 먹어서 안달인지… -_-;; 땅덩어리 좁은 나라에서 안 그래도 남북으로 갈라져있는데, 동서로도 나누질 않나 이젠 영화 하나에도 이렇듯 나누어지니 참… 왠지 모르게 씁쓸하다.
솔직히 디워를 싫어한다고 해도 미국에서 혹평받거나 실패하면 기분이 안 좋을 것 같은데 “거봐라, 내 말이 맞지” 라면서 실패하라고 비는 꼴도 참 씁쓸하기 짝이 없다. 집에서 아무리 미운 자식이라도 밖에 나가서 맞고 오면 화가 나는 법인데 말이다. 디워가 싫다고 그 뒤에 있는 가능성까지 싫어하지는 말았으면 좋겠다.
예상 일정을 3박 4일에서 하루 더 늘리기로 했다.
자전거를 평상시에 타지도 않았을뿐더러 이 정도의 장거리 라이딩을 처음이라서 아무래도 불안하다. 달리는 도중에 일정을 수정할 수가 없는게, 국도이다보니 잠잘 곳이 없어 계획을 잘못 잡으면 야간에 달려야하거나 노숙해야하는데 초보인데다가 9월말이라는 시간때문에 둘 다 무리다.
예상 경로는 그대로 하되 순창, 전주, 논산, 천안, 도착 이렇게 일정을 잡기로 했다. 광주에서 순창까지 40km, 전주까지 60km, 논산까지 40km, 천안까지 70km, 집까지 70km 정도 되니까 처음이라해도 크게 무리있는 일정은 아닐 것 같다. 집에서 너무 걱정을 하셔서 제주도 일주로 방향을 바꿀까도 했는데 자전거를 다시 가지고 올 방법이 좀 애매해서 포기 =_=;;
짐이 늘어나는 것은 별로 안 좋지만 가지고 갈 짐에 노트북을 추가할까 한다. 홀씨라는 지도 프로그램이 있는데, 꽤 상세하게 잘 나와있어서 적잖은 도움이 될 것 같아서 어쩔 수 없이 노트북도 추가. 지도만으로도 가능하면 다행이지만 심각한 길치라… T^T
4박 5일의 일정이 되기는 했지만 그래도 전보다 더 안심이 되는 일정이다.