{{위키데이터 속성 추적}}
{{소문자}}
{{소프트웨어 정보
|이름 = jQuery
|다른이름 = 
|로고 = JQuery-Logo.svg
|로고크기 = 200px
|로고설명 = 
|화면 = 
|화면크기 =
|설명 = 
|원저자 = [[존 레식]]
|개발자 = [https://jquery.org/team/ The jQuery Team]
|발표일 = {{시작 날짜와 나이|2006|8|26}}
| latest release version = 3.7.1
| latest release date    = ({{시작 날짜와 나이|2023|08|28}})<ref name="blog-370-release">{{웹 인용|last=jquery.org|first=jQuery Foundation-|title=jQuery 3.7.0 Released: Staying in Order {{!}} Official jQuery Blog|url=https://blog.jquery.com/2023/05/11/jquery-3-7-0-released-staying-in-order/|language=en-US}}</ref>
|미리보기 버전 = 
|미리보기 버전 출시일 = 
|지원중단 = 
|상태 = 
|저장소 = 
|프로그래밍 언어 = [[자바스크립트]]
|엔진 = 
|운영체제 = 
|플랫폼 = 
|기본포함 = 
|대체함 = 
|대체됨 = 
|서비스이름 = 
|크기 = 27 ~ 274 KB
|표준 = 
|언어 = 
|언어수 = 
|언어각주 = 
|종류 = [[자바스크립트 라이브러리]]
|라이선스 = [[MIT 허가서]]
|허가 = 
|웹사이트 = {{공식 URL}}
|기준 = 
}}
'''jQuery'''(제이쿼리)는 [[HTML]]의 [[클라이언트 사이드]] 조작을 단순화 하도록 설계된 [[크로스 플랫폼]]의 [[자바스크립트 라이브러리]]다. 거의 모든 [[웹 브라우저]]에 대응할 정도로 브라우저 [[호환성]]이 있으며, [[존 레식]]이 [[2006년]] 뉴욕 시 [[바캠프]](Barcamp NYC)에서 공식적으로 소개하였다.

jQuery는 [[MIT 라이선스]]를 가진 [[자유 오픈 소프트웨어]]이다.<ref name="jqorg-license2">{{웹 인용|url=https://github.com/jquery/jquery/blob/master/LICENSE.txt|title=jQuery Project License|publisher=jQuery Foundation|accessdate=2017-03-11}}</ref> jQuery의 문법은 코드 보기, [[문서 객체 모델]] 찾기, 애니메이션 만들기, 이벤트 제어, [[Ajax]] 개발을 쉽게 할 수 있도록 디자인되었다. 또한, jQuery는 개발자가 [[플러그인]]을 개발할 수 있는 기능을 제공한다.

[[마이크로소프트]]와 [[노키아]]는 자사 플랫폼에 jQuery를 포함하는 계획을 발표한 바 있다.<ref name="2008-09-28">{{웹 인용|url=http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/ |title=jQuery, Microsoft, and Nokia |date=2008-09-28 |last=Resig |first=John |publisher=jQuery |work=jQuery Blog |accessdate=2009-01-29 }}</ref> [[마이크로소프트]]는 [[비주얼스튜디오]]<ref>{{웹 인용|url=https://weblogs.asp.net/scottgu/jquery-and-microsoft |title=jQuery and Microsoft |last=Guthrie |first=Scott |work=ScottGu's Blog |date=2008-09-28 |accessdate=2019-04-15 }}</ref>의 ASP.NET AJAX 프레임워크와 ASP.NET MVC 프레임워크에 적용했고, [[노키아]]는 자사의 [[런타임]] [[웹]] [[위젯]] 개발 플랫폼에 통합하였다.<ref>{{웹 인용|url=http://wiki.forum.nokia.com/index.php/Guarana_UI:_a_jQuery-Based_UI_Library_for_Nokia_WRT|title=Guarana UI: A jQuery Based UI Library for Nokia WRT|work=Forum Nokia|archiveurl=https://web.archive.org/web/20110816054350/http://www.developer.nokia.com/Community/Wiki/Guarana_UI:_a_jQuery-Based_UI_Library_for_Nokia_WRT|archivedate=2011-08-16|url-status=dead|accessdate=2010-03-30}}</ref>

== 기능 ==
* [[문서 객체 모델|DOM]] 요소 선택 기의 파생 프로젝트이다.<ref>{{웹 인용 |제목=jQuery 1.3 and the jQuery Foundation |url=http://blog.jquery.com/2009/01/14/jquery-13-and-the-jquery-foundation/ |성=Resig |이름=John |날짜=2009-01-14 |웹사이트=jQuery Blog | 확인날짜=2014-03-26 }}</ref>
* DOM 탐색 및 수정 (CSS 1-3 지원)
* [[CSS]] 셀렉터에 기반한 [[문서 객체 모델|DOM]] 조작
* 이벤트
* 특수효과 및 애니메이션
* [[AJAX]]
* [[JSON]] 파싱
* 플러그인을 통한 확장성
* 유틸리티
* 호환성 메소드 (<code>inArray()</code>, <code>each()</code> 함수 등)
* 멀티브라우저 지원 (크로스브라우저와는 다름)

=== 브라우저 지원 ===
jQuery 1.x와 2.x는 모두 최신 안정화 버전 및 그 이후 버전의 [[파이어폭스]], [[구글 크롬]], [[사파리 (웹 브라우저)|사파리]], 그리고 [[오페라 (웹 브라우저)|오페라]]를 지원한다. 1.x 버전은 [[인터넷 익스플로러]] 6 및 그 이후 버전을 지원한다. 그러나 2.x 버전에서는 인터넷 익스플로러 6-8 버전이 지원되지 않으며 인터넷 익스플로러 9 또는 그 이후 버전을 지원한다.<ref>[http://jquery.com/browser-support/ Browser Support | jQuery]</ref>

== 사용법 ==
jQuery는 한 개의 [[자바스크립트]] 파일로 존재한다. 공통의 DOM, 이벤트, 특수 효과, [[Ajax]] 함수를 포함한다. 다음 코드를 쓰면 웹 페이지에 포함시킬 수 있다.
<syntaxhighlight lang="html4strict">
<script type="text/javascript" src="path/to/jQuery.js"></script>
</syntaxhighlight>

jQuery는 두 가지의 상호 작용 스타일을 갖고 있다:
* <code>$</code> 함수 이용. jQuery 오브젝트의 팩토리 메소드이다. 각각의 함수들은 jQuery 오브젝트를 반환하고 서로 연계할 수 있다.
* <code>$.</code> -가 앞에 붙은 함수 이용. 이들 함수는 jQuery 오브젝트 그 자체와 연동되지는 않는다.

일반적으로 여러 개의 DOM 노드들을 조작하는 작업은 <code>$</code> 함수로 시작된다. CSS 셀렉터 스트링을 가지고 호출된다. 결과적으로 0개 혹은 그 이상의 HTML 페이지 내의 요소를 레퍼런스하는 jQuery 오브젝트가 반환된다. 이 노드 집합들은 jQuery 오브젝트에 대해 인스턴스 메소드들을 적용함으로써 조작될 수 있다. 혹은 노드들 그 자체가 조작될 수 있다. 예를 들면 다음과 같다:

<syntaxhighlight lang=javascript>
$("div.test").add("p.quote").addClass("blue").slideDown("slow");
</syntaxhighlight>

클래스에 <code>test</code>를 포함하는 모든 <code>div</code> 엘리먼트와 클래스에 <code>quote</code>를 포함하는 <code>p</code> 엘리먼트를 찾는다. 찾아낸 모든 요소에 <code>blue</code> 클래스를 추가한다. 그 뒤 아래쪽으로 내려가는되는 애니메이션 효과를 준다. <code>$</code> 및 <code>add</code> 함수는 찾아낸(matched) 집합(set)에 영향을 준다. <code>addClass</code> 및 <code>slideDown</code> 함수는 레퍼런스된 노드들에 영향을 준다.

<code>$.</code>가 앞에 붙은 함수들은, 전역 프로퍼티나 행동에 영향을 주는, 유틸리티 메소드들이다. 예를 들면 다음과 같다:

<syntaxhighlight lang=javascript>
$.each([1,2,3], function() {
  document.write(this + 1);
});
</syntaxhighlight>

<code>234</code>를 도큐먼트에 출력한다.

<code>$.ajax</code> 및 관련 메소드로 [[Ajax]]를 수행하여 원격 데이터를 로드하거나 조작할 수 있다.

<syntaxhighlight lang=javascript>
$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});
</syntaxhighlight>

파라미터 <code>name=John&location=Boston</code>을 주면서 some.php에 요청을 보낸다.요청이 성공적으로 수행되었으면, 그 응답이 <code>alert()</code>된다.

== 배포 내역 ==

{| class="wikitable sortable"
|-
! 버전
! 최초 릴리스
! 마지막 업데이트
! 최소 크기 (KB)
! 비고
|-
| 1.0
| {{시작 날짜|2006|08|26}}
|
|
| 최초 안정판
|-
| 1.1
| {{시작 날짜|2007|01|14}}
|
|
|
|-
| 1.2
| {{시작 날짜|2007|09|10}}
| 1.2.6
| 54.5
|
|-
| 1.3
| {{시작 날짜|2009|01|14}}
| 1.3.2
| 55.9
| 코어에 시즐 셀렉터 엔진(Sizzle Selector Engine) 도입
|-
| 1.4
| {{시작 날짜|2010|01|14}}
| 1.4.4
| 76.7
|
|-
| 1.5
| {{시작 날짜|2011|01|31}}
| 1.5.2
| 83.9
| 디퍼드(Deferred) 콜백 관리, ajax 모듈 재작성
|-
| 1.6
| {{시작 날짜|2011|05|03}}
| 1.6.4
| 89.5
| attr(), val() 함수의 상당한 성능 개선
|-
| 1.7
| {{시작 날짜|2011|11|03}}
| 1.7.2 ({{시작 날짜|2012|03|21}})
| 92.6
| 새 이벤트 API: .on(), .off() - 구 API는 여전히 지원.
|-
| 1.8
| {{시작 날짜|2012|08|09}}
| 1.8.3 ({{시작 날짜|2012|11|13}})
| 91.4
| 시즐 셀렉터 엔진 재작성. 애니메이션 및 $(html, props) 유연성 개선.
|-
| 1.9
| {{시작 날짜|2013|01|15}}
| 1.9.1 ({{시작 날짜|2013|02|04}})
| 90.5
| 구식 인터페이스 제거 및 코드 정리
|-
| 1.10
| {{시작 날짜|2013|05|24}}
| 1.10.2 ({{시작 날짜|2013|07|03}})
| 90.9
| 1.9와 2.0 베타 사이클에서 보고된 버그 수정 및 차이점 통합
|-
| 1.11
| {{시작 날짜|2014|01|24}}
| 1.11.3 ({{시작 날짜|2015|04|28}})
| 93.7
|
|-
| 1.12
| {{시작 날짜|2016|01|08}}
| 1.12.4 ({{시작 날짜|2016|05|20}})
| 94.9
|
|-
| 2.0
| {{시작 날짜|2013|04|18}}
| 2.0.3 ({{시작 날짜|2013|07|03}})
| 81.7
| 성능 개선 및 파일 크기 축소를 위해 IE 6-8 지원 중단
|-
| 2.1
| {{시작 날짜|2014|01|24}}
| 2.1.4 ({{시작 날짜|2015|04|28}})
| 82.4
|
|-
| 2.2
| {{시작 날짜|2016|01|08}}
| 2.2.4 ({{시작 날짜|2016|05|20}})
| 83.6
|
|-
| 3.0
| {{시작 날짜|2016|6|9}}<ref>{{웹 인용|url=https://www.infoq.com/news/2016/06/jQuery-3|title=Long-awaited jQuery 3.0 Brings Slim Build|last=Chesters|first=James|date=2016-06-15|publisher=infoq.com|accessdate=2017-01-28}}</ref>
| 3.0.0 ({{시작 날짜|2016|6|9}})
| 84.3
| 디퍼드(Deferred)의 Promises/A+ 지원, $.ajax 및 $.when, .data() HTML5 호환
|-
| 3.1
| {{시작 날짜|2016|7|7}}
| 3.1.1 ({{시작 날짜|2016|9|23}})
| 84.7
| jQuery.readyException 추가, 레디 핸들러 오류 표시(ready handler errors are now not silenced)
|-
| 3.2
| {{시작 날짜|2017|3|16}}<ref>{{웹 인용|title=jQuery 3.2.0 Is Out!|work=jQuery Blog|url=https://blog.jquery.com/2017/03/16/jquery-3-2-0-is-out/|accessdate=12 March 2018|date=16 March 2017}}</ref>
| 3.2.1 ({{시작 날짜|2017|3|20}})
| 84.6
| <code><nowiki><template></nowiki></code> 요소 내용 검색 지원 추가. 다양한 구 메소드 구식화.
|-
| 3.3
| {{시작 날짜|2018|1|19}}<ref>{{웹 인용|title=jQuery 3.3.0 – A fragrant bouquet of deprecations and…is that a new feature?|work=jQuery Blog|url=https://blog.jquery.com/2018/01/19/jquery-3-3-0-a-fragrant-bouquet-of-deprecations-and-is-that-a-new-feature/|accessdate=2019-04-15|date=2018-01-19}}</ref>
| 3.3.1 ({{시작 날짜|2018|1|20}})<ref>{{웹 인용|title=jQuery 3.3.1 – fixed dependencies in release tag|work=jQuery Blog|url=https://blog.jquery.com/2018/01/20/jquery-3-3-1-fixed-dependencies-in-release-tag/|accessdate=2019-04-15|date=2018-01-20}}</ref>
| 84.9
| 오래된 함수 구식화, 클래스를 수용하는 함수는 이제 배열 형태로 지원.
|-
|3.4
| {{시작 날짜|2019|4|10}}<ref>{{웹 인용|title=jQuery 3.4.0 Released|work=jQuery Blog|url=https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/|accessdate=2019-04-15|date=2018-04-10}}</ref>
|3.4.1 (2019년 5월 1일)<ref>{{웹 인용|url=https://blog.jquery.com/2019/05/01/jquery-3-4-1-triggering-focus-events-in-ie-and-finding-root-elements-in-ios-10/|title=jQuery 3.4.1: triggering focus events in IE and finding root elements in iOS 10|publisher=jQuery Foundation|work=jQuery Blog}}</ref>
|86.1
| 성능 개선, <code>nonce</code> 및 <code>nomodule</code> 지원, 라디오 요소 수정, 사소한 보안 문제 수정.
|-
|3.5
| {{시작 날짜|2020|4|10}}<ref name="blog-350-release">{{웹 인용|title=jQuery 3.5.0 Released!|work=jQuery Blog|url=https://blog.jquery.com/2020/04/10/jquery-3-5-0-released/|accessdate=2020-04-11|date=2020-04-10}}</ref>
|3.5.1 (2020년 5월 4일)<ref>{{웹 인용|url=https://blog.jquery.com/2020/05/04/jquery-3-5-1-released-fixing-a-regression/|title=jQuery 3.5.1 Released: Fixing a Regression|publisher=jQuery Foundation|work=jQuery Blog}}</ref>
|87.4
| 보안 문제 수정, <code>.even()</code> &amp; <code>.odd()</code> 메소드, <code>jQuery.trim</code> 구식화
|-
|3.6
| {{시작 날짜|2021|3|2}}
| 3.6.0 (2021년 3월 2일)<ref>{{웹 인용|last=jquery.org|first=jQuery Foundation-|title=jQuery 3.6.0 Released! {{!}} Official jQuery Blog|url=https://blog.jquery.com/2021/03/02/jquery-3-6-0-released/|access-date=2021-03-27|language=en-US}}</ref>
|88.2
| 버그 수정. JSONP 오류가 있을 때 JSON을 반환
|-
|3.7
| {{시작 날짜|2021|5|11}}
| 3.7.0 (2023년 5월 11일)
|85.4
| .uniqueSort() 메서드, 성능 개선, 음수 여백의 .outerWidth(true) & .outerHeight(true) 처리, 포커스 수정
|}

== 같이 보기 ==
* [[자바스크립트 프레임워크 비교]]
* [[JQuery Mobile]]
* [[JQuery UI]]
* [[웹 프레임워크]]
* [[자바스크립트 라이브러리]]
== 각주 ==
{{각주}}

== 참고 문헌 ==
* Learning jQuery, {{ISBN|1-84719-250-5}}
* jQuery in Action, {{ISBN|1-933988-35-5}}
* Beginning JavaScript with DOM Scripting and Ajax, {{ISBN|1-59059-680-3}}
* Hacking del.icio.us, {{ISBN|0-470-03785-7}}
* Pro JavaScript Techniques, {{ISBN|1-59059-727-3}}
* AJAX and PHP: Building Responsive Web Applications, {{ISBN|1-904811-82-5}}
* Web Development Solutions, {{ISBN|1-59059-806-7}}

== 외부 링크 ==
{{위키공용분류}}
* {{공식 웹사이트}}

{{위젯 툴킷}}
{{ECMA스크립트}}
{{웹 프레임워크}}
{{전거 통제}}

[[분류:자바스크립트 라이브러리]]
[[분류:2006년 소프트웨어]]
[[분류:Ajax]]
[[분류:웹 개발]]
[[분류:자바스크립트로 작성된 자유 소프트웨어]]
[[분류:MIT 라이선스 소프트웨어]]
[[분류:웹 프레임워크]]