jquery는 자바 스크립트 라이브러리 또는 프레임 워크입니까? [닫은]


121

여기서 jquery는 프레임 워크 범주에서 언급됩니다. http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

jquery는 자바 스크립트 라이브러리 또는 프레임 워크입니까?


40
한 사람의 라이브러리는 다른 사람의 프레임 워크입니다.
nnnnnn

1
모든 답변이 똑같이 유효 하기 때문에 여기에서 주제를 벗어납니다 .“당신이 가장 좋아하는 ______은 무엇입니까?” . 또한 우리 모두가 라이브러리 나 프레임 워크라면 무엇이 중요할까요?
EJoshuaS-Monica 복원

답변:


169

도서관. 홈페이지 에 따르면 동의합니다.

프레임 워크는 일반적으로 솔루션을 구현하는 특정 방법을 강제하는 것이지만 jQuery는 원하는 작업을 더 쉽게 구현할 수있는 도구 일뿐입니다.


55
+1. 라이브러리는 프로그램에서 호출하는 것입니다. 프레임 워크는 프로그램을 호출하는 것입니다.
Thilo

1
라이브러리와 프레임 워크 비교는 "Inversion of Control"을 참조하십시오. stackoverflow.com/a/3057818/2144912
cheshireoctopus

30

14
동의하지만, 자칭 이름 / 슬로건은 아무것도 증명하지 않습니다. 수천 개의 소위 "프레임 워크"가 실제로 라이브러리에 있습니다.
kapex 2011

@Kapep 그러나 그 반대의 경우는 덜 일반적입니다. 많은 프레임 워크가 스스로를 "라이브러리"라고 부르는 것은 아닙니다. 나는 ... 일부 용어는 "프레임 워크"소리의 섹시한 것 같아요
프랭클린 유에게

19

확실히 자바 스크립트 라이브러리입니다. 하지만 프레임 워크인지 아닌지에 대해서는 프레임 워크가 아니라고 생각합니다. 소프트웨어 프레임 워크 에 대한 wikipedia 정의를 살펴보십시오 .

정의 된 애플리케이션 프로그래밍 인터페이스를 제공하는 소프트웨어 라이브러리 모음입니다.

그리고 jQuery는 단일 라이브러리 일뿐입니다. 그 후 다음과 같이 표시됩니다.

프레임 워크에는 일반 라이브러리와 구분하는 주요 구별 기능이 포함되어 있습니다.

  1. inversion of control-라이브러리 나 일반 사용자 응용 프로그램과 달리 프레임 워크에서 전체 프로그램의 제어 흐름은 호출자가 아니라 프레임 워크에 의해 결정됩니다.

그래서 저는 프레임 워크가 아니라고 생각합니다.


9

angularjs 웹 사이트 에 따르면

  • 라이브러리-웹 앱을 작성할 때 유용한 함수 모음입니다. 귀하의 코드가 담당하며
    적합하다고 판단 . 예 : jQuery.
  • 프레임 워크-코드가 세부 사항을 채우는 웹 애플리케이션의 특정 구현. 프레임 워크가 담당하며 특정 앱이 필요할 때 코드를 호출합니다. 예 : durandal, ember 등

5

프레임 워크와 Libarry가 반드시 상호 배타적 인 용어는 아닙니다. 프레임 워크는 일반적으로 라이브러리 또는 라이브러리 모음입니다.

엄밀히 말하면 jQuery는 라이브러리이지만 어느 정도 소프트웨어 프레임 워크의 정의를 충족합니다. 많은 사람들이 jQuery가 소프트웨어 프레임 워크의 정의를 충분히 충족시키지 못한다고 주장하지만 사실은 다른 JavaScript 프레임 워크도 프레임 워크의 정의를 완전히 충족하지 못한다는 것입니다.

소프트웨어 프레임 워크의 정의 특성 중 하나는 코드가 수정되지 않도록 보호된다는 것입니다. JavaScript에서 이것은 분명히 사실이 아닙니다. 클라이언트 측 코드로 호출 할 수있는 모든 라이브러리 또는 프레임 워크는 수정할 수 있지만 변경하는 것은 모범 사례에 위배됩니다. 따라서 Bootstrap 또는 AngularJS를 프레임 워크로 호출 할 수있는 경우 jQuery를 프레임 워크로 호출 할 수없는 이유가 없습니다. 이 링크 에는 jQuery가 프레임 워크라고하는 기준을 충족하는 방법에 대한 자세한 설명 포함되어 있습니다.

아마도 jQuery가 라이브러리보다 프레임 워크에 더 가까운 이유에 대한 가장 좋은 설명은 개발자로서 프레임 워크와 유사한 기능을 사용하지 않도록 선택할 수 있다는 사실입니다. 예를 들어, 간단한 jQuery 문과 표준 JavaScript 문을 같은 줄에 혼합 할 수 있습니다. AngularJS와 Bootstrap은 일반적으로 이것을 허용하지 않습니다. 따라서 jQuery가 프레임 워크인지 아닌지의 정확한 대답은 "프레임 워크로 사용하기로 선택했는지 여부에 따라 다릅니다"입니다.


2

나는 jQuery 자체가 실제로 프레임 워크가 아니라 라이브러리라는 모든 답변에 동의합니다. Saeed의 답변에 명시된 바와 같이 주요 특징 중 하나는 제어 반전입니다. 그러나 jQuery의 기능을 사용하여 자신 만의 프레임 워크를 만들 수 있습니다.

예 : 프레임 워크로 정의 된 jQuery 위에 빌드 된 프로젝트가 있습니다. jQuery Mobile : A Touch-Optimized Web Framework , JavaScriptMVCsammy.js 가 있습니다.

jQuery UI 와 같이 jQuery 위에 빌드 된 다른 라이브러리도 있습니다.

일부는 라이브러리와 프레임 워크를 정의 할 때 의미론처럼 보이지만 이러한 예제는 저에게 선을 그리는 데 도움이됩니다.


1

위 스레드의 거의 모든 사람들이 말하는 Inversion of control에 대해 이야기하면 jQuery는 FRAMEWORK입니다.

예를 들어 $ (document) .ready {} 함수를 작성할 때 IOC 가 있습니다. ...이 메서드를 호출하는 컨테이너이며 단순히 중괄호 안에 코드를 넣습니다. 우리는이 메서드의 호출자가 아니므로 "Inversion of Control"

이런 식으로 jQuery는 FRAMEWORK입니다.


1
Meh, 대부분의 크기가 큰 라이브러리는 어떤 목적으로 적어도 일종의 모호한 콜백 방식을 제공합니다. .NET Framework에 의존하지 않고도 많은 jQuery 코드를 작성할 수 있습니다 ready().
Nathan Tuggy

@NathanTuggy 그렇다면 Framework 대 Lib에 대한 자세한 논의조차도 IOC에 대해 이야기하는 이유입니다. 거기에 있다면 거기에 있습니다. "신뢰"또는 "신뢰하지 않음"에 대해 이야기하는 이유.
pinkman

프레임 워크 스타일의 IoC는 사용 의 필요성 이 특징이기 때문입니다. 원하는대로 특정 방식으로 일품 요리를 사용할 수는 없습니다. 프레임 워크에서는 선택의 여지가 없습니다. 제어 반전됩니다.
Nathan Tuggy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.