jQuery 대 AngularJS 대 Node.js [닫힌]


106

방금 웹 개발을 시작하고 있으며 지금까지 알고 있습니다.

HTML-웹 사이트 레이아웃

CSS-예쁘게 보이게

JavaScript-기능

그렇다면 jQuery , AngularJSNode.js는 무엇입니까?

빠른 검색을 수행 한 후 jQuery는 "JavaScript 라이브러리", AngularJS는 "JavaScript 기반 오픈 소스 프런트 엔드 웹 애플리케이션 프레임 워크", Node.js는 "JavaScript 런타임 환경"이라는 것을 알았습니다.

그것들은 모두 JavaScript와 관련이있는 것 같습니다. 그렇다면 새로운 언어입니까? '프레임 워크 / 라이브러리'는 무엇을 의미합니까?

간단한 답변을 주시면 감사하겠습니다. (저는 방금 웹 프로그래밍을 시작했지만 프로그래밍에 익숙합니다.)


2
"라이브러리"는 기본적으로 다른 사람이 작성하고 테스트 한 유용한 함수의 모음 일뿐입니다. jQuery는 JavaScript 함수의 모음입니다. "프레임 워크"는 일반적인 애플리케이션 구조 코드가 작성되어있는 일종의 추상화이며 특정 앱의 요구 사항에 맞게 일부를 재정의 할 수 있습니다. NodeJS는 브라우저가 아닌 다른 곳에서 JavaScript를 실행할 수있게 해주는 도구입니다 (종종 웹 서버에서 Java, DotNET 또는 PHP 등 대신).
nnnnnn

3
당신은 괜찮을 것입니다. 왜 그런지 알아? 당신은 영어를 구사하기 때문입니다. 이미 당신을 위해 많은 것들이 있습니다. 시간을내어 배우기 만하면됩니다. 우리나라에서는 영어가 큰 문제입니다. 나는 영어가 좋지 않다는 이유로 많은 사람들을 알고 있으며, 프로그래밍을 배우는 데 어려움을 겪고 있습니다 (많은 사람들이 포기하고 다른 직업으로 바꿨습니다). 그래도 말했듯이 많은 시간이 걸릴 것입니다.
vothaison

이 질문을 참조하십시오 .
nnnnnn

답변:


202

jQuery는 라이브러리 (클라이언트 측)입니다.

jQuery 는 빠르고 작고 가벼우 며 "덜 쓰고 더 많은 작업을 수행"하는 기능이 풍부한 JavaScript 라이브러리입니다.

다양한 브라우저에서 작동하는 사용하기 쉬운 API를 통해 HTML 문서 탐색 및 조작, 이벤트 처리, 애니메이션 및 Ajax 와 같은 작업을 훨씬 간단하게 만듭니다.

AngularJS는 MVC 프레임 워크 (클라이언트 측)입니다.

AngularJS 는 동적 웹 애플리케이션을 개발하기위한 클라이언트 측 JavaScript MVC 프레임 워크입니다.

HTML을 템플릿 언어로 사용하고 HTML 구문을 확장하여 애플리케이션의 구성 요소를 명확하고 간결하게 표현할 수 있습니다. AngularJS의 데이터 바인딩과 의존성 주입은 작성해야 할 많은 코드를 제거합니다. 그리고 모든 것이 브라우저 내에서 이루어 지므로 모든 서버 기술과의 이상적인 파트너가됩니다. AngularJS는 원래 Google에서 프로젝트로 시작되었지만 이제는 오픈 소스 프레임 워크입니다.

Node.js는 플랫폼 및 런타임 환경 (서버 측)입니다.

Node.js 는 Google Chrome의 자바 스크립트 엔진 (V8 엔진)을 기반으로 구축 된 서버 측 및 네트워킹 애플리케이션을 개발하기위한 오픈 소스 크로스 플랫폼 런타임 환경입니다. Node.js 애플리케이션은 JavaScript로 작성되며 OS X, Microsoft Windows 및 Linux의 Node.js 런타임 내에서 실행할 수 있습니다.

Node.js는 또한 Node.js를 사용하여 웹 애플리케이션 개발을 상당히 단순화하는 다양한 JavaScript 모듈의 풍부한 라이브러리를 제공합니다. Node.js는 이벤트 중심의 비 차단 I / O 모델을 사용하여 분산 장치에서 실행되는 데이터 집약적 인 실시간 애플리케이션에 완벽하고 가볍고 효율적입니다.

라이브러리 대 프레임 워크

라이브러리와 프레임 워크의 주요 차이점은 "Inversion of Control"입니다. 라이브러리에서 메서드를 호출하면 제어 할 수 있습니다. 그러나 프레임 워크를 사용하면 제어가 반전됩니다. 프레임 워크가 사용자를 호출합니다.

여기에 이미지 설명 입력

도서관

웹 애플리케이션을 작성할 때 유용한 함수 모음입니다. 코드가 담당하며 적합하다고 판단되면 라이브러리를 호출합니다. 예 : jQuery.

뼈대

코드가 세부 사항을 채우는 웹 애플리케이션의 특정 구현. 프레임 워크가 담당하며 특정 애플리케이션이 필요할 때 코드를 호출합니다. 예 : AngularJS, Durandal , Ember.js


27

간단히 말해서

  • jQuery-HTML 및 CSS를 조작하는 JavaScript 함수 모음입니다.
  • AngularJS-HTML 및 CSS를 구성하는 데 도움이되는 JavaScript 프레임 워크입니다.
  • Node.js-는 자바 스크립트 런타임입니다 ... 일종의 서버 나 로컬 컴퓨터의 브라우저와 비슷하지만 모든 브라우저 렌더링 엔진과 추가 기능이 없습니다. 단지 런타임 일뿐입니다.

라이브러리와 프레임 워크의 주요 차이점 :
프레임 워크 는 특정 아키텍처를 강요하고 애플리케이션이 기대치를 따르기를 기대합니다.
라이브러리 는 종종 매우 특정한 문제를 해결하기위한 세분화 된 기능을 제공하는 저수준 빌딩 블록 모음입니다 (예 : jquery.post () 함수)*


17

jQuery

jQuery는 많은 일을하는 라이브러리입니다. 여기에는 편리하고 일반적으로 사용되는 많은 함수가 포함되어 있으므로이 코드를 직접 작성할 필요가 없습니다. 석기 시대에 목수가되는 것과 다양한 전동 공구를 마음대로 사용할 수있는 것의 차이입니다.

AngularJS

AngularJS는 대화 형 웹 사이트 및 웹 애플리케이션 을위한 프런트 엔드, 그래픽 사용자 인터페이스 (GUI) 를 구축하는 데 사용되는 프레임 워크 입니다. Node.js와 함께 사용할 때 강력한 조합을 만듭니다.

Node.js

Node는 백그라운드에서 데이터를 가져 오는 API REST 엔드 포인트 와 같은 백엔드 웹 서비스 를 빌드하는 데 사용되는 프레임 워크 입니다. AngularJS를 사용하여 버튼과 GUI 요소를 이러한 엔드 포인트에 연결하여 풍부한 데이터 기반 웹 애플리케이션 및 웹 보고서를 구축 할 수 있습니다. RESTful이기 때문에 이러한 서비스는 프런트 엔드가 요청을 보내고 (사용자가 버튼을 클릭) 데이터베이스 쿼리를 실행하거나 파일을 읽고 일부 데이터를 다시 뱉어 내고 웹 애플리케이션이 사용자에게 표시 할 때까지 대기합니다.

일반적인 프레임 워크

초기 목수 비유의 프레임 워크는 전문 건축업자 팀과 계약하여 작업을 수행하는 것과 같습니다. 당신은 그 일을 충분히 자세하게 설명하고 그들이 인계하고 실제로 그것을 완료합니다. 따라서 작업을 직접 수행하는 대신 빌더 팀이 이해할 수 있도록 올바른 언어로 작업 사양을 작성하는 것으로 작업이 축소됩니다.

AngularJS는 전기와 함께 인테리어 디자인 팀과 같을 것이고 Node.js는 그 밖의 모든 것입니다. 지나치게 단순화 되었습니까? 아마도. 그러나 당신은 간단한 설명을 요청했습니다.

따라서 AngularJS와 Node.js를 그 반대라고 생각할 수 있지만 동일한 애플리케이션이나 프로젝트에서 함께 사용할 수 있습니다. 그들은 다른 목적을 충족하지만 둘 다 자바 스크립트 (그리고 어느 정도는 jQuery)를 사용합니다.


7
  • 프레임 워크 : 코드 를 표시 하는 방법에 대한 주어진 구조를 설명 합니다. 특정 문제를 해결 / 단순화하거나 아키텍처를 "순서"로 가져 오기위한 일부 도우미, 생성자 등과 함께 코드 템플릿과 매우 유사합니다. 예 : Backbone.js , RequireJS, Socket.IO . 프레임 워크 공통 애플리케이션 기능을 캡슐화 하여 개발자가 애플리케이션에 고유 한 부분에 집중할 수 있도록합니다.

  • 라이브러리 : 브라우저, DOM 모델 등과 같은 다양한 레이어를 고도로 추상화하는 전체 툴킷입니다. 또한 훌륭한 툴킷으로서 작업 할 수있는 많은 도구와 깔끔한 도구를 제공하여 일반적으로 코딩 경험을 단순화합니다. 예는 jQuery 및 MooTools 입니다.

여기에 자세한 내용은.


"Library : Is an entire toolkit" -목적이 날짜 / 시간 데이터를 처리하는 것이라면 매우 작은 도구 키트가 될 수 있음을 주목하십시오.
nnnnnn

7

그들이 날마다 인기를 얻고있는 이유는 다음과 같습니다.

jQuery

  • Jquery 코드는 비교적 짧습니다. 때로는 5 줄의 jQuery 코드가 25 줄의 기존 JavaScript 코드와 동일합니다 (예 : AJAX로 데이터 파일로드). 이것은 더 적은 코드와 훨씬 더 작은 파일을 의미합니다.
  • 대용량 라이브러리 : jQuery를 사용하면 다른 JavaScript 라이브러리와 비교하여 수많은 기능을 수행 할 수 있습니다.
  • Ajax로 작업하기 매우 쉬움 : jQuery를 사용하면 Ajax 템플릿을 훨씬 쉽게 개발할 수 있으며, Ajax는 전체 페이지를 다시로드하지 않고도 페이지에서 작업을 수행 할 수있는 세련된 인터페이스를 제공합니다.

AngularJS

  • 양방향 데이터 바인딩 : jQuery에서 간단한 양방향 데이터 바인딩 이벤트를 작성할 수 있지만 JavaScript MVC 라이브러리는 모델을 뷰에 연결하는보다 선언적인 (HTML 사용) 방법을 제공합니다.
  • SPA ( 단일 페이지 애플리케이션 )에 적합 : AngularJS, Aurelia, Ember.jsMeteor 와 같은 라이브러리 는 jQuery에서 모든 것을 작성하는 대신 모든 배관을 제공합니다.

Node.js

  • 빠르다 : 초고속 자바 스크립트 실행 외에도 Node.js의 진정한 마법은 이벤트 루프입니다. 이벤트 루프는 모든 I / O 작업을 비동기 적으로 수행하는 단일 스레드입니다. 전통적으로 I / O 작업은 작업을 수행하기 위해 병렬 스레드를 생성하여 동기식 (차단) 또는 비동기식으로 실행됩니다.
  • Real-time Made Easy : Node.js가 많은 동시 연결에서 탁월하다면 채팅 및 게임과 같은 다중 사용자, 실시간 웹 응용 프로그램에서 탁월하다는 것이 합리적입니다. Node.js의 이벤트 루프는 다중 사용자 요구 사항을 처리합니다.

2
"5 줄의 jQuery 코드는 기존 JavaScript 코드의 25 줄과 동일합니다." -수행하려는 작업에 따라 다릅니다. 일부 작업에는 최소한의 차이가 있고 다른 작업에는 큰 차이가 있습니다. "이것은 더 작은 파일과 더 빠른 웹 페이지 로딩을 의미합니다." -jQuery가 직접 작성하지 못하도록 저장 한 코드는 모두 브라우저에 다운로드해야하는 jQuery 파일에 포함되어 있습니다. 따라서 총 코드 양은 아마도 더 많을 것입니다.
nnnnnn

해당 파일은 문서가로드되는 동안로드됩니다. 가장 좋은 방법은 DOM이로드 될 때까지 js를 사용하지 않는 것입니다. 그들은 당신의 클릭 또는 마우스 오버 이벤트의 실행 속도에 변화를 해달라고
ab29007

귀하의 답변에서 "빠른 로딩"이라고 말했습니다. 그것은 사실이 아니거나 확실히 보편적으로 사실이 아닙니다. "문서가로드되는 동안"로드되는 파일은 여전히 ​​다운로드해야하며 (페이지에 따라) 사용자가 페이지와 의미있게 상호 작용하기 전에 다운로드해야합니다. (참고 : jQuery가 전혀 나쁘다고 말하는 것이 아니라 설명이 기껏해야 오해의 소지가 있다는 것입니다.)
nnnnnn

나는 빠른 로딩을 제거 할 수 있도록 확인 당신은 .. 생각하면
ab29007

같은 프로그램에서 JQuery와 javascript를 작성할 수 있습니까?
K Split X

6

HTML, CSS 및 JavaScript를 사용하여 대화 형 웹 사이트를 만듭니다.

jQuery는 JavaScript로 작성된 도구입니다.

AngularJS는 JavaScript로 작성된 도구입니다.

React는 JavaScript로 작성된 도구입니다.

이러한 도구는 자체 규칙에 따라 HTML, CSS 및 JavaScript 간의 상호 작용을 관리하는 데 도움이됩니다. 도구가 정말 커지면 특성에 따라 "라이브러리"또는 "프레임 워크"와 같은 이름을 사용할 수 있습니다.

우리는 종종 웹 브라우저에서 JavaScript를 실행합니다. 하지만 몇 년 전부터 Node.js라는 것이 등장하여 브라우저 외부에서 JavaScript를 쉽게 실행할 수있었습니다. 저는 이것을 "브라우저 외부에서 JavaScript를 실행하는 프로그램"이라고 생각하고 싶습니다 (즉, 볼 HTML이나 CSS가 없음).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.