jQuery에 대한 슬픈 고찰

국비 > 웹 퍼블리셔 > 백엔드 개발자 > 필요하면 뭐든 다 하는 개발자 > 지상 최강의 개발자

이런 루트를 밟아온 사람이라 jQuery 시대 를 알고있습니다.
그런데, jQuery를 까는 글을 보고 너무나 안타까워서 이런 글을 쓰게 되었습니다.

어둠의 시대

jQuery를 까는 사람은 ES6와 SPA가 나타난 이후에 프론트엔드를 시작하셨을겁니다. 응애
jQuery 시대를 살았던 사람은 결단코 jQuery를 깔 수 없으니까요.

Node.JS, ES6와 SPA라이브러리의 등장은 JavaScript 생태계의 천지개벽과 같았습니다.
문법도 거지같고아름답지 않고 쓰기도 어려웠던 JavaScript였기 때문이거든요.

let, const 도 없었으며, 대부분의 array method도 없었습니다.
지금 쓰는 문법은 다 없었어요. 아무것도 없었어요. 없었다구요.

아, 그런 문법이 있었는데요? 아뇨 없어요.
없었어요? 아니 없어요!

거지같은 JavaScript를 어떻게든 써야만 했습니다.
그래서 JavaScript로 왠만하면 뭘 안하던 그런 시대였습니다.

jQuery 시대

"jQuery는 쓸 줄 아는데 JavaScript는 쓸 줄 모른다."

라는 말이 존재하던 시대였습니다.
그 정도로 jQuery의 등장은 혁명이고 구원자였습니다.
그리피스?!

// JavaScript
document.getElementById('targetId');


// jQuery
$('#targetId');

// JavaScript
var xhr = new XMLHttpRequest();
xhr.open('https://...')
xhr.send();

xhr.onload = function(e) {
  // ...
};

xhr.onerror = function(e) {
  // ...
};

// jQuery
$.ajax({
  url: 'https://...',
  success: function(e) {
    // ...
  },
  failed: function(e) {
    // ...
  },
});

이런 기초적인 예제 말고도 jQuery는 굉장히 많은 편의성을 제공했습니다.
jQuery는 개발자들의 생산성을 비약적으로 높여줬습니다.
그리고 프론트엔드에 많은 가능성을 제시했습니다. 빛과 소금

querySelector를 쓰면 되지 않냐? fetch를 쓰면 되지 않냐? 라고 하는 사람이 있겠지만, 앞에서 얘기했듯이 "없었어요."
querySelector 는 IE9부터 지원하는 문법입니다.
fetch 는 IE11 까지도 아예 쓸 수 없습니다.

그 시대에는 IE6 까지 지원하는게 일반적이었습니다.
(jQuery에 영감을 받아 탄생한 querySelector같은 문법들도 있을 정도입니다.)

jQuery는 그 모든걸 처리해주면서도 편리한 문법을 제공했습니다.
거의 모든 라이브러리는 jQuery의존성을 가지고 제작됐고
모든(이라고 할 수 있을 정도로) 개발자는 jQuery를 사용했습니다.

그리고 베헤리트마냥 버전이 안맞으면 다 제물로 바쳐졌...

ES6과 SPA의 등장

내가 알던 그 찐따같던 JavaScript 맞냐? TypeScript는 전설이다... 어?

그런 찐따같던 JavaScript도 Node.JS 가 나타나고, 브라우저에서만 돌아가던 찐따같던 언어가 아닌
수많은 가능성을 지닌 프로그래밍 언어로 재탄생하게 되었습니다.
그 전까진 프로그래밍 언어가 아니라 브라우저 언어였달까

그러면서 ES6가 논의되며 지금 우리가 사용하는 문법들이 탄생하게 되죠.
이 쯔음 Node.JS 시대가 시작되며 프론트엔드 개발자 라는 단어가 본격적으로 쓰이게 됩니다.
(그 전까진 프론트엔드 개발자 많이 쓰이는 단어는 아니었음)

"Github가 jQuery를 덜어냈다더라" 라던가, 그런 말들이 슬슬 들리기 시작했죠.
이제는 jQuery에 의존하지 않아도 충분히 개발이 가능한 시대가 된겁니다.
그 쯔음부터 jQuery를 쓰지 않는게 점점 트랜드가 되어갔습니다.

jQuery의 탄생이 혁명이었던 것 처럼 React같은 SPA의 등장도 혁명적이었습니다.
컴포넌트의 재사용이 그 전까지는 거의 뭐 없다시피 했거든요.

function someComponent(id) {
  return '<div id=' + id + '>'
    + 'some text'
    + '</div>';
}

target.addChild(someComponent('targetId'));
targetId.innerText = 'changed text';

이런 식으로 쓰고싶지도 않고 쓰지도 않았으니까요.

어 느새 부터 jQuery 는 안 멋져

이제는 JavaScript도 좋아졌고, Angular, React, Vue, Svelte 등의 프레임워크들이 나오면서
더 이상 jQuery가 없어도 개발이 충분히 가능해졌습니다.
오히려 버전 안맞아서 터지는 jQuery보다 낫지

옛날엔 "jQuery없이 쌩 JavaScript로 어떻게 하냐?" 라고 했는데
이젠 쌩 JavaScript도 쓸만해졌으니까요.

ES6와 SPA가 나오기 전 까지 암흑같던 JavaScript 생태계를 밝혀준 등불 역할을 잘 해주었습니다.

jQuery가 나쁜게 아닙니다. JavaScript가 발전하고 시대가 바뀐거지.
이젠 jQuery가 미래가 아닐 뿐입니다.

그러니 이 글을 보신 여러분은 앞으로 jQuery를 깎아내리지 않았으면 좋겠습니다.
한 시대를 밝혀준 등불이고, 이젠 그 등불이 없어도 JavaScript 세상이 밝아진 것 뿐이니까요.

좋은 웹페이지 즐겨찾기