jQuery로 짠 스크립트
바닐라로 짠 스크립트
+ $(html)을 A로 지정해둬서 그냥 banner-actv란 class를 가졌는지 확인하는 if문은 둘 다 jQuery를 사용했다.
지금까지는 jQuery를 별생각 없이 애용해왔다. 비전공자인 내가 보기에도 굉장히 간단하고, 많은 플러그인이 제이쿼리 기반으로 만들어져서 공유되고 있어 실력을 늘리는데도 아주 많은 도움이 됐다. 하지만 최근 꽤 많은 수의 개발자들이 jQuery를 못마땅해 한다는 사실을 알게 됐다. 2년쯤 전부터 국내에서도 jQuery를 탈피하려고 노력하는 사람이 있던데, 꽤 늦게 안 셈이다.
꽤 오래전 우연히 "You might not need jQuery"란 사이트를 방문하게 된 적이 있는데, 그땐 무심코 넘겼다가 최근 문득 'jQuery가 정말 필요할까'란 의문이 들어 위 사진처럼 순수한 js로 스크립트를 제작해봤다.
대부분 jQuery가 필요 없다고 주장하는 사람들은 '성능'을 문제 삼는데, 선뜻 이해하기 힘들다. 요즘처럼 기기 성능이 상향 평준화된 시대에 압축해도 몇 mb가 넘어가는 js라면 모르겠는데, 그렇지 않고서야 성능의 차이가 체감이나 될지 의문이다. 0.1초라도 줄여야 한다면 별 할 말은 없다만....
외에도 요즘은 가상 돔을 렌더링해서 돔에는 단 한 번만 렌더링하는 게 추세라든지 뭐 잡다한 이유가 많은데, jQuery 없이 코드를 짜면 체감되는 단점이 너무 크다.
가장 먼저, IE에서 대부분의 스크립트가 동작하지 않는다. 아무리 ie가 미워도 사람이 볼 수 있게는 해둬야 한다는 게 내 생각인데, 스크립트 대부분이 동작을 안 해버리니 쓸래야 쓸 수가 없다.
다음으로, 귀찮다. 성능이 눈에 띄게 차이 난다거나, 월등히 편하다면 당연히 jQuery를 갖다 버리고 js를 처음부터 다 다시 짤 수 있다. 그런데 당장에 $("#id")치면 될 일을 document.getElementById("id") 치고 있으려니 많이 귀찮은 게 사실이다. 물론 jQuery의 $(".elem") 이런 게 모두 함수니 귀찮아도 최대한 적게 쓰려고 노력은 하는 중이다.
귀찮은데, 크로스 브라우징까지 포기하며 0.몇 초 줄이려고 js를 다 다시 짤 필요가 있나 싶다.
언제까지고 IE가 저 모양이진 않을 테니, 순수한 js도 더 공부하고, 뷰나 앵귤러 같은 라이브러리도 공부해야겠다만, 당분간은 jQuery를 내다 버리긴 어렵지 않을까 싶다.