2013-04-18 11 views
0

node.js와 이벤트 기반 프로그래밍 및 노드 이벤트 루프와 같은 것에 대해 들어 봤습니다. 대학에서는 ASP.net 웹 응용 프로그램을 만들었다는 것을 기억합니다. 이 교수는 ASP.net이 클라이언트 측에서 서로 다른 이벤트에 의해 서버 측의 콜백 기능이 트리거되는 이벤트 기반 아키텍처를 사용한다고 전했다.노드에 사용되는 이벤트 기반 모델이 C# 응용 프로그램에 사용되는 이벤트 기반 모델과 동일합니까?

두 가지 기술이 이벤트 및 이벤트 구동 프로그래밍 개념을 사용합니까?

답변

1

둘 다 이벤트 아이디어를 사용한다는 점에서 비슷합니다. 외출 및 변경 사항을 찾는 것이 아니라 코드를 호출하는 것입니다. 그러나 실제로는 그것들은 상당히 다릅니다.

노드에서 (그리고 asp.net MVC에서) 클라이언트로부터 문제가되는 이벤트는 "이 URL이 요청되었습니다."입니다. 그게 전부 야. 요청의 내용 이외에는 세분성이 없습니다.

ASP.NET Webform에서는 클라이언트 페이지에서 발생한 이벤트를 기반으로 이벤트를 합성하기가 매우 어렵습니다. 당신이 얻는 이벤트는 "텍스트 변경", "버튼 클릭", "체크 박스 체크"... 기본적으로 똑같은 종류의 것들을 스트레이트 데스크톱 응용 프로그램에 넣을 수 있습니다.

Webforms 모델이 실제로 정말 빠르고 복잡해지고, 추상화 레이어가 아약스 호출과 같은 방식으로 작동하는 것으로 나타났습니다.

노드와 다른 점은 ASP.NET과 달리 거의 모든 것이 비동기 이벤트라는 것입니다. 데이터베이스 호출? 노드의 비동기, ASP.NET에서 동기화. 파일을 읽으시겠습니까? 노드의 비동기, ASP.NET에서 동기화. HTTP 요청을 다른 서버로 보내시겠습니까? 당신은 아이디어를 얻습니다.

ASP.NET은 이러한 작업을 비동기 적으로 수행 할 수 있지만 작업을 수행하지 않아야하며 스레드를 사용합니다. 노드에서 비동기 물건은 꽤 자연스럽고 스레드를 사용할 필요가 없기 때문에 어떤 경우에는 처리량이 높아집니다.

그래, 그들은 둘 다 "이벤트"라는 의미에서 동일하지만 세부 사항은 엄청나게 다릅니다.

1

예, 노드는 서버 측의 콜백 기능이 클라이언트 측의 다른 이벤트에 의해 트리거되는 이벤트 기반 아키텍처를 사용합니다.

왜 Node.js가 중요한가?

1) 클라이언트와 서버에서 동일한 언어를 사용하면 개발 속도가 빨라집니다.

2) 모든 웹 개발자는 이미 JavaScript를 알고 있습니다. 서버에서이를 사용하는 전환 경로는 학습 곡선이 낮습니다.

3) Node.js 용으로 빌드 된 모듈은 모두 이벤트 기반입니다. 다른 플랫폼에서 이벤트 기반 코드를 작성하려면 이벤트 구동 형 모듈을 찾기 위해 제 3 자 모듈을 탐색해야합니다. 예를 들어, Python을위한 몇 가지 이벤트 구동 라이브러리가 있지만 파이썬의 전통 때문에 대부분의 타사 네트워킹 라이브러리는 동기식입니다. Ruby, Java, Scala 및 다른 많은 플랫폼과 동일합니다.

4) 속도. Node.js는 V8 자바 스크립트 엔진에서 실행됩니다. Java 나 C#만큼 빠르지는 않지만 파이썬, 루비, PHP보다 가볍습니다. Python, Ruby 및 PHP는 웹 응용 프로그램 시장 점유율의 상당 부분을 차지합니다. 해당 언어를 기반으로 한 기본 경험이있는 개발자가 더 많은 속도를 필요로 할 때 Node.js는이를 찾을 수있는 논리적 인 곳입니다.

+0

그렇다면 큰 문제는 무엇입니까?수년간 주변에 있었던 ASP와 동일한 아키텍처라면 사람들이 왜 그렇게 많이 이야기하는 것을 들었습니까? 그것은 단지 새로운 것이기 때문에입니까? –