Published on

JS 단원 04: jQuery 핵심 문법과 현대 대체 기술

1. jQuery란 무엇인가?

  • 2006년 등장, DOM 조작을 간편하게 만들어준 JavaScript 라이브러리
  • 주요 목적: 브라우저 간 호환성 문제 해결, 문법 단축

2. 기본 선택자와 조작

2-1. 요소 선택

$("#id");
$(".class");
$("div > ul li");

2-2. 내용 읽고 쓰기

$("#msg").text("텍스트 변경");
$("#msg").html("<strong>HTML 변경</strong>");

3. 스타일과 클래스 조작

$("#box").css("color", "red");
$("#box").addClass("active").removeClass("hidden");

4. 이벤트 처리

$("#btn").on("click", function () {
  alert("클릭됨");
});

$("#btn").hover(
  function () { console.log("마우스 진입"); },
  function () { console.log("마우스 이탈"); }
);

5. 애니메이션 효과

$("#box").hide();
$("#box").fadeIn(300);
$("#box").slideUp();

6. AJAX 요청

$.ajax({
  url: "/api/data",
  type: "GET",
  success: function (res) {
    console.log(res);
  }
});

간단히:

$.get("/api/data", function (res) {
  console.log(res);
});

7. DOM 조작

$("<p>새 요소</p>").appendTo("#container");
$("#container").append("<p>또 다른 요소</p>");

8. jQuery가 대체된 이유

8-1. 브라우저 간 API 표준화 완료

  • querySelector, addEventListener, fetch 등으로 대체 가능

8-2. React, Vue 등의 컴포넌트 기반 UI로 이동

  • Virtual DOM과 상태 기반 렌더링 방식으로 전환

8-3. 파일 크기와 의존성 부담

  • jQuery 전체를 불러오는 것은 현대 SPA에서 비효율

9. jQuery → Vanilla JS 전환 예시

jQuery 방식

$(".item").on("click", function () {
  $(this).toggleClass("active");
});

바닐라 JS 방식

document.querySelectorAll(".item").forEach((el) => {
  el.addEventListener("click", function () {
    el.classList.toggle("active");
  });
});

10. 현대 프레임워크에서는?

  • React: 상태 기반 렌더링, DOM 직접 조작 지양
  • Vue: 선언적 바인딩, v-on, v-model 등 자체 문법
  • jQuery 사용 시: 레거시 유지보수, 간단한 정적 사이트에만 권장

요약

  • jQuery는 간결한 문법과 호환성 이슈 해결로 널리 사용되었음
  • 현대 JS는 DOM API 표준화, 프레임워크 중심으로 흐름 전환
  • jQuery는 유지보수 프로젝트나 간단한 플러그인 구현 정도에 한정

심화학습

Q1. jQuery를 현재 프로젝트에서 사용하는 것이 문제가 되는 경우는 언제인가요?
A1. React/Vue와 혼용 시 충돌이 발생하거나, 번들 크기 증가, 유지보수 혼란을 유발할 수 있습니다.


Q2. jQuery와 fetch를 비교하면 어떤 차이가 있나요?
A2. jQuery의 AJAX는 콜백 기반이며, fetch는 Promise 기반으로 비동기 처리가 더 유연합니다.


Q3. jQuery는 더 이상 사용할 필요가 없는가요?
A3. 대부분의 SPA 및 프레임워크 기반 개발에서는 필요 없지만, 간단한 정적 페이지나 기존 유지보수에는 여전히 사용할 수 있습니다.