Node.js Inventor Ryan Dahl 릴리스 Deno : TypeScript / V8 런타임 환경

Google V8 JavaScript 런타임 엔진 + TypeScript : Node.js 서버 개선


Node.js 웹 서버 표준은 Ryan Dahl이 2009 년에 도입 한 이후 최신 JavaScript 개발 플랫폼의 주요 측면이되었습니다. Apache 웹 서버는 스레드 프로세스를 기반으로 작동하지만 Node.js 서버는 이벤트 루프와 함께 작동합니다. 동시 사용자가 많으면 스레드 동시성이됩니다. "새는" Apache에서는 Node.js 서버가 콜백을 사용하여 매우 빠른 동시성 비율의 대기 시간을 제거합니다. JavaScript는 Dahl이 비 차단 I / O 요청 처리 구조로 웹 서버를 구축하기 위해 서버 측 런타임 환경으로 전사 한 이벤트 루프를 기반으로 설계되었습니다. 이를 통해 Node.js 애플리케이션 프로그래머는 TCP, DNS를 지원하면서 더 빠른 속도로 데이터를 스트리밍하는 동일한 하드웨어에서 동시에 실행되는 프로그램을 스크립팅 할 수 있습니다, & Apache가없는 HTTP 플랫폼 독립적 방식으로 작동하는 청크 요청 / 응답, 연결 유지 기능 및 친숙한 API를 사용하면 Python 종속성도 포함하지만 Node.js는 웹 서버 표준으로 성공했습니다. 거의 10 년 후 Dahl은 Node.js에 여전히 존재하는 실수를 해체하여 TypeScript와 호환되는 Rust / Go로 작성된 새로운 플랫폼을 다시 시작했습니다. & 안전한 샌드 박스 환경의 Google V8 런타임 엔진.

Deno 2018 : 실험적, 개발 적, & TypeScript 지원으로 제한

2018 년 첫 번째 Deno 릴리스는 JavaScript 개발 커뮤니티에서 Node.js의 최초 제작자가 발명했기 때문에 많은 관심을 끌었습니다. Dahl은 2018 JavaScript 컨벤션 JSConf.EU에서 세미나를 발표했습니다. "Node.js에 대해 후회하는 10 가지". Dahl은 프레임 워크에서 발견 한 많은 구조적 문제를 더 이상 변경할 수 없다고 애원했다. 왜냐하면 수많은 다른 JavaScript 프로젝트가 현재 설계되어있는 Node.js 기반을 기반으로하기 때문이다. 이 이중 실현에서 Dahl은 Deno 베타 릴리스 버전을 코딩했습니다..

“Node를 사용하는 것은 나를 위해 손톱에 못 박는 것과 같습니다. 내가 소개 한 버그를 보았습니다’이 시점에서 정말 버그’작동 방식을 다시 말하지만 버그이며 디자인 실수로 인해 수정할 수 없었습니다.’그것을 사용하는 너무 많은 소프트웨어.”

Dahl은 2017 년 TensorFlow와 함께 일하는 Google Brain Residency Program의 멤버 및 비디오 재 처리와 관련된 문제로 보냈습니다. Node.js 플랫폼에 대한 관점의 변화를 이해하려면 두 비디오를 비교하는 것이 좋습니다.

Ryan Dahl : Original Node.js 프레젠테이션 (2009)

  • "…V8 : 구글
  • libev : 이벤트 루프 라이브러리
  • 리비 오 : 스레드 풀 라이브러리
  • http 파서 : 라겔 HTTP 파서
  • evcom : libev 위에 스트림 소켓 라이브러리
  • udns : 비 차단 DNS 확인자…"

원래 Node.js 웹 서버 디자인에 대해 자세히 알아보십시오..

Node.js에 대해 후회하는 10 가지-Ryan Dahl-JSConf EU (2018)

  • "즉시 사용 가능한 TypeScript 지원.
  • 최신 버전의 V8을 사용합니다..
  • 패키지가 없습니다..
  • npm 없음.
  • 노드와 명시 적으로 호환되지 않습니다.
  • 참조 소스 코드 URL 만 가져옵니다..
  • 샌드 박스 코드를 실행하기 위해 파일 시스템 및 네트워크 액세스를 제어 할 수 있습니다.
  • 단일 실행 파일."

Deno에 대해 자세히 알아보기 : V8 기반의 안전한 TypeScript 런타임.

Node.js의 문제점 : 웹 보안, 모듈, Index.js, & 빌드 프로세스

Dahl은 JSConf.EU 행사에서 Deno를 소개하면서 "서버 측 JavaScript가 성공하려면 이벤트 루프가 필요했습니다" IT 실무에서 널리 채택되고있는 Node.js의 가장 큰 부분이었습니다. Dahl은 HTTP 프로토콜 이후 2012 년 Node.js 프로젝트를 떠났습니다. & SSL 지원이 설정되었습니다. 그 당시 Node.js는 작은 핵심, Windows Server 지원 및 안정적인 API 시스템과 NPM을 통한 외부 모듈의 에코 시스템이 증가했습니다. 지난 6 개월 동안 Dahl은 다른 목표로 플랫폼에서 코딩을 다시 시작했습니다..

Dahl은 Node.js 웹 서버 프로젝트에 대한 후회와 관련하여 다음과 같이 말했습니다.

  • 유감: 비동기 / 대기 약속을 사용하지 않음
  • 유감: 웹 보안, 쓰기 권한, & 파일 액세스
  • 유감: 빌드 시스템 (GYP / GN / Python)
    —> FFI (Foreign Function Interface)
  • 유감: JSON & NPM 중앙 저장소 종속성
  • 유감: node_modules가 너무 무겁습니다 & 확장없이 종종 필요
  • 유감: Index.js는 모듈 로딩 시스템을 복잡하게합니다 & 지나치게 "귀엽다"

전반적으로 Dahl은 여전히 ​​I / O 구조 인 Node.js를 좋아한다고 인정했습니다., & 플랫폼에서 프로그래밍하지만 새로운 제품으로 이러한 후회를 해결하기 위해 Deno 런타임 환경을 구축했습니다..

Bash를 사용하여 Deno를 설치하십시오.

별명 file_server ="데노

https://deno.land/x/net/file_server.ts –allow-net"

최신 버전의 Deno로 업그레이드하십시오.

file_server –reload

TypeScript 용 Deno Web Server 런타임 환경에 대해 자세히 알아보기.

Deno : Node.js의 주요 제품 시계, JavaScript, & TypeScript 지원

Deno는 JavaScript를 보안 샌드 박스로 사용하며 사용자는 런타임시 보안 네트워크를 선택할 수 있습니다. 임의의 고유 함수를 V8에 바인드 할 수 없습니다. 대신 모든 시스템 호출은 메시지 전달에 의해 이루어집니다. Deno는 현재 다른 Node.js 모듈과의 호환성을 지원하지 않고 TypeScript 지원에만 중점을 둡니다. 가져온 모든 파일에는 파일 확장자가 필요합니다 & 컴파일시 더 빠른 시작 시간을 위해 V8 스냅 샷을 사용하십시오. Dahl은 현재 Deno를 C ++, Go로 프로그래밍하고 있습니다., & 녹. 많은 발전 & Deno가 도입 한 변경 사항은 결국 Node.js 프로젝트에 다시 통합 될 가능성이 높습니다. Deno는 JavaScript, TypeScript의 미래를 지켜 볼 중요한 프로젝트입니다., & Node.js 개발.

노드 EventMachine :: run () : "비동기 이벤트 기반 JavaScript 런타임 인 ​​Node는 확장 가능한 네트워크 애플리케이션을 빌드하도록 설계되었습니다. 이것은 OS 스레드가 사용되는 오늘날의보다 일반적인 동시성 모델과 대조됩니다. 스레드 기반 네트워킹은 상대적으로 비효율적이며 사용하기가 매우 어렵습니다. 또한 노드가 없기 때문에 프로세스를 교착 상태에 대해 걱정할 필요가 없습니다. Node의 기능은 거의 직접 I / O를 수행하지 않으므로 프로세스가 차단되지 않습니다. 블록이 없기 때문에 확장 가능한 시스템은 노드에서 개발하는 것이 매우 합리적입니다. 노드는 Ruby의 이벤트 머신 또는 Python의 트위스트와 같은 시스템과 디자인이 비슷하고 영향을받습니다. 노드는 이벤트 모델을 조금 더 발전시킵니다. 라이브러리 대신 런타임 구조로 이벤트 루프를 표시합니다.." Node.js에 대해 더 알아보기.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map