jQuery
jQuery(제이쿼리)는 HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리다. 거의 모든 웹 브라우저에 대응할 정도로 브라우저 호환성이 있으며, 존 레식이 2006년 뉴욕 시 바캠프(Barcamp NYC)에서 공식적으로 소개하였다.
원저자 | 존 레식 |
---|---|
개발자 | The jQuery Team |
발표일 | 2006년 8월 26일 |
안정화 버전 | 3.7.1
/ (2023년 8월 28일[1] ) |
저장소 | |
프로그래밍 언어 | 자바스크립트 |
크기 | 27 ~ 274 KB |
종류 | 자바스크립트 라이브러리 |
라이선스 | MIT 허가서 |
웹사이트 | jquery |
jQuery는 MIT 라이선스를 가진 자유 오픈 소프트웨어이다.[2] jQuery의 문법은 코드 보기, 문서 객체 모델 찾기, 애니메이션 만들기, 이벤트 제어, Ajax 개발을 쉽게 할 수 있도록 디자인되었다. 또한, jQuery는 개발자가 플러그인을 개발할 수 있는 기능을 제공한다.
마이크로소프트와 노키아는 자사 플랫폼에 jQuery를 포함하는 계획을 발표한 바 있다.[3] 마이크로소프트는 비주얼스튜디오[4]의 ASP.NET AJAX 프레임워크와 ASP.NET MVC 프레임워크에 적용했고, 노키아는 자사의 런타임 웹 위젯 개발 플랫폼에 통합하였다.[5]
기능
편집- DOM 요소 선택 기의 파생 프로젝트이다.[6]
- DOM 탐색 및 수정 (CSS 1-3 지원)
- CSS 셀렉터에 기반한 DOM 조작
- 이벤트
- 특수효과 및 애니메이션
- AJAX
- JSON 파싱
- 플러그인을 통한 확장성
- 유틸리티
- 호환성 메소드 (
inArray()
,each()
함수 등) - 멀티브라우저 지원 (크로스브라우저와는 다름)
브라우저 지원
편집jQuery 1.x와 2.x는 모두 최신 안정화 버전 및 그 이후 버전의 파이어폭스, 구글 크롬, 사파리, 그리고 오페라를 지원한다. 1.x 버전은 인터넷 익스플로러 6 및 그 이후 버전을 지원한다. 그러나 2.x 버전에서는 인터넷 익스플로러 6-8 버전이 지원되지 않으며 인터넷 익스플로러 9 또는 그 이후 버전을 지원한다.[7]
사용법
편집jQuery는 한 개의 자바스크립트 파일로 존재한다. 공통의 DOM, 이벤트, 특수 효과, Ajax 함수를 포함한다. 다음 코드를 쓰면 웹 페이지에 포함시킬 수 있다.
<script type="text/javascript" src="path/to/jQuery.js"></script>
jQuery는 두 가지의 상호 작용 스타일을 갖고 있다:
$
함수 이용. jQuery 오브젝트의 팩토리 메소드이다. 각각의 함수들은 jQuery 오브젝트를 반환하고 서로 연계할 수 있다.$.
-가 앞에 붙은 함수 이용. 이들 함수는 jQuery 오브젝트 그 자체와 연동되지는 않는다.
일반적으로 여러 개의 DOM 노드들을 조작하는 작업은 $
함수로 시작된다. CSS 셀렉터 스트링을 가지고 호출된다. 결과적으로 0개 혹은 그 이상의 HTML 페이지 내의 요소를 레퍼런스하는 jQuery 오브젝트가 반환된다. 이 노드 집합들은 jQuery 오브젝트에 대해 인스턴스 메소드들을 적용함으로써 조작될 수 있다. 혹은 노드들 그 자체가 조작될 수 있다. 예를 들면 다음과 같다:
$("div.test").add("p.quote").addClass("blue").slideDown("slow");
클래스에 test
를 포함하는 모든 div
엘리먼트와 클래스에 quote
를 포함하는 p
엘리먼트를 찾는다. 찾아낸 모든 요소에 blue
클래스를 추가한다. 그 뒤 아래쪽으로 내려가는되는 애니메이션 효과를 준다. $
및 add
함수는 찾아낸(matched) 집합(set)에 영향을 준다. addClass
및 slideDown
함수는 레퍼런스된 노드들에 영향을 준다.
$.
가 앞에 붙은 함수들은, 전역 프로퍼티나 행동에 영향을 주는, 유틸리티 메소드들이다. 예를 들면 다음과 같다:
$.each([1,2,3], function() {
document.write(this + 1);
});
234
를 도큐먼트에 출력한다.
$.ajax
및 관련 메소드로 Ajax를 수행하여 원격 데이터를 로드하거나 조작할 수 있다.
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
파라미터 name=John&location=Boston
을 주면서 some.php에 요청을 보낸다.요청이 성공적으로 수행되었으면, 그 응답이 alert()
된다.
배포 내역
편집버전 | 최초 릴리스 | 마지막 업데이트 | 최소 크기 (KB) | 비고 |
---|---|---|---|---|
1.0 | 2006년 8월 26일 | 최초 안정판 | ||
1.1 | 2007년 1월 14일 | |||
1.2 | 2007년 9월 10일 | 1.2.6 | 54.5 | |
1.3 | 2009년 1월 14일 | 1.3.2 | 55.9 | 코어에 시즐 셀렉터 엔진(Sizzle Selector Engine) 도입 |
1.4 | 2010년 1월 14일 | 1.4.4 | 76.7 | |
1.5 | 2011년 1월 31일 | 1.5.2 | 83.9 | 디퍼드(Deferred) 콜백 관리, ajax 모듈 재작성 |
1.6 | 2011년 5월 3일 | 1.6.4 | 89.5 | attr(), val() 함수의 상당한 성능 개선 |
1.7 | 2011년 11월 3일 | 1.7.2 (2012년 3월 21일 | )92.6 | 새 이벤트 API: .on(), .off() - 구 API는 여전히 지원. |
1.8 | 2012년 8월 9일 | 1.8.3 (2012년 11월 13일 | )91.4 | 시즐 셀렉터 엔진 재작성. 애니메이션 및 $(html, props) 유연성 개선. |
1.9 | 2013년 1월 15일 | 1.9.1 (2013년 2월 4일 | )90.5 | 구식 인터페이스 제거 및 코드 정리 |
1.10 | 2013년 5월 24일 | 1.10.2 (2013년 7월 3일 | )90.9 | 1.9와 2.0 베타 사이클에서 보고된 버그 수정 및 차이점 통합 |
1.11 | 2014년 1월 24일 | 1.11.3 (2015년 4월 28일 | )93.7 | |
1.12 | 2016년 1월 8일 | 1.12.4 (2016년 5월 20일 | )94.9 | |
2.0 | 2013년 4월 18일 | 2.0.3 (2013년 7월 3일 | )81.7 | 성능 개선 및 파일 크기 축소를 위해 IE 6-8 지원 중단 |
2.1 | 2014년 1월 24일 | 2.1.4 (2015년 4월 28일 | )82.4 | |
2.2 | 2016년 1월 8일 | 2.2.4 (2016년 5월 20일 | )83.6 | |
3.0 | 2016년 6월 9일[8] | 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일[9] | 3.2.1 (2017년 3월 20일 | )84.6 | <template> 요소 내용 검색 지원 추가. 다양한 구 메소드 구식화.
|
3.3 | 2018년 1월 19일[10] | 3.3.1 (2018년 1월 20일[11] | )84.9 | 오래된 함수 구식화, 클래스를 수용하는 함수는 이제 배열 형태로 지원. |
3.4 | 2019년 4월 10일[12] | 3.4.1 (2019년 5월 1일)[13] | 86.1 | 성능 개선, nonce 및 nomodule 지원, 라디오 요소 수정, 사소한 보안 문제 수정.
|
3.5 | 2020년 4월 10일[14] | 3.5.1 (2020년 5월 4일)[15] | 87.4 | 보안 문제 수정, .even() & .odd() 메소드, jQuery.trim 구식화
|
3.6 | 2021년 3월 2일 | 3.6.0 (2021년 3월 2일)[16] | 88.2 | 버그 수정. JSONP 오류가 있을 때 JSON을 반환 |
3.7 | 2021년 5월 11일 | 3.7.0 (2023년 5월 11일) | 85.4 | .uniqueSort() 메서드, 성능 개선, 음수 여백의 .outerWidth(true) & .outerHeight(true) 처리, 포커스 수정 |
같이 보기
편집각주
편집- ↑ jquery.org, jQuery Foundation-. “jQuery 3.7.0 Released: Staying in Order | Official jQuery Blog” (미국 영어).
- ↑ “jQuery Project License”. jQuery Foundation. 2017년 3월 11일에 확인함.
- ↑ Resig, John (2008년 9월 28일). “jQuery, Microsoft, and Nokia”. 《jQuery Blog》. jQuery. 2009년 1월 29일에 확인함.
- ↑ Guthrie, Scott (2008년 9월 28일). “jQuery and Microsoft”. 《ScottGu's Blog》. 2019년 4월 15일에 확인함.
- ↑ “Guarana UI: A jQuery Based UI Library for Nokia WRT”. 《Forum Nokia》. 2011년 8월 16일에 원본 문서에서 보존된 문서. 2010년 3월 30일에 확인함.
- ↑ Resig, John (2009년 1월 14일). “jQuery 1.3 and the jQuery Foundation”. 《jQuery Blog》. 2014년 3월 26일에 확인함.
- ↑ Browser Support | jQuery
- ↑ Chesters, James (2016년 6월 15일). “Long-awaited jQuery 3.0 Brings Slim Build”. infoq.com. 2017년 1월 28일에 확인함.
- ↑ “jQuery 3.2.0 Is Out!”. 《jQuery Blog》. 2017년 3월 16일. 2018년 3월 12일에 확인함.
- ↑ “jQuery 3.3.0 – A fragrant bouquet of deprecations and…is that a new feature?”. 《jQuery Blog》. 2018년 1월 19일. 2019년 4월 15일에 확인함.
- ↑ “jQuery 3.3.1 – fixed dependencies in release tag”. 《jQuery Blog》. 2018년 1월 20일. 2019년 4월 15일에 확인함.
- ↑ “jQuery 3.4.0 Released”. 《jQuery Blog》. 2018년 4월 10일. 2019년 4월 15일에 확인함.
- ↑ “jQuery 3.4.1: triggering focus events in IE and finding root elements in iOS 10”. 《jQuery Blog》. jQuery Foundation.
- ↑ “jQuery 3.5.0 Released!”. 《jQuery Blog》. 2020년 4월 10일. 2020년 4월 11일에 확인함.
- ↑ “jQuery 3.5.1 Released: Fixing a Regression”. 《jQuery Blog》. jQuery Foundation.
- ↑ jquery.org, jQuery Foundation-. “jQuery 3.6.0 Released! | Official jQuery Blog” (미국 영어). 2021년 3월 27일에 확인함.
참고 문헌
편집- 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
외부 링크
편집- JQuery - 공식 웹사이트