5P by neo 6달전 | favorite | 댓글 2개

Deno의 2023년 변화

  • Deno는 package.json 파일을 이해하며, node:fsnode:crypto 같은 내장 Node 모듈node: 지정자를 사용하여 가져올 수 있게 됨.
  • 새로운 웹 서버 API Deno.serve가 안정화되었고, HTTP 처리량이 연간 약 73% 향상됨.
  • deno compile 은 워커, 동적 임포트, npm 모듈을 지원하게 됨.
  • Deno는 웹 스트림(ReadableStreamWriteableStream)과 AbortController를 API 전반에 더 잘 활용하여 브라우저와 서버 측 프로그래밍 간의 격차를 좁힘.
  • Deno의 설정 파일 deno.json은 이제 가져오기 맵으로도 사용되며, 스키마를 단순화하고, 글로브 지원 및 유용한 최상위 "exclude" 속성을 추가함.
  • 오픈 소스 노트북 도구인 Jupyter가 JavaScript와 TypeScript를 사용하여 Deno를 지원하게 됨.
  • WebGPU가 거의 1년간의 개발 끝에 Deno에 추가됨.
  • Deno의 제로 설정 TypeScript는 LSP와 VS Code 통합의 상당한 개선을 통해 편집기 통합이 더 나아짐.
  • Deno 기반 웹 프레임워크인 Fresh는 Tailwind 지원, Partials, 레이아웃 파일 등 기능이 확장됨.
  • Deno DeployDeno KV, Queues, Cron과 같은 전 세계적으로 분산된 기본 요소로 더 강력해짐.
  • 플랫폼이 신뢰할 수 없는 다중 테넌트 JavaScript를 배포하고 실행할 수 있도록 자체 서비스 서브호스팅을 출시함.

Node 및 npm과의 호환성 향상

  • Deno는 node: 지정자를 통해 node:fs, node:child_process와 같은 내장 Node 모듈을 포함하여 Node 생태계와의 호환성을 확장함.
  • Node에서 Deno로의 원활한 전환을 위해 여러 새로운 기능을 도입함:
    • --unstable-byonm 플래그를 사용하면 선호하는 npm 패키지 관리자를 Deno 내에서 사용할 수 있음.
    • --unstable-sloppy-imports 플래그는 모듈 가져오기의 엄격함을 완화하여 다양한 코딩 스타일과 관행을 수용함.
    • --unstable-unsafe-proto 플래그는 많은 npm 패키지가 의존하는 Object.prototype.__proto__를 지원함.
  • Node-API의 안정화로 --unstable 플래그 없이 Node-API에 의존하는 npm 패키지를 사용할 수 있게 되어 지원 범위가 확대됨.

Deno.serve()를 통한 더 간단하고 빠른 웹 서버

  • Deno.serve() 함수를 도입하고 안정화하여 개발자가 최소한의 코드로 서버를 시작할 수 있게 함.
  • 코어 라이브러리와 이벤트 루프 메커니즘의 타겟팅된 최적화를 통해 성능이 크게 향상됨.
  • Deno의 HTTP 처리량은 기본 "Hello, world" 서버 설정을 사용한 벤치마크 테스트에서 눈에 띄게 증가함.

더 유연한 deno.json

  • Deno는 복잡한 설정 없이도 사용할 수 있는 프로그래밍 원칙을 지향하며, deno.json 설정 파일을 지속적으로 개선하여 사용의 용이성을 유지함:
    • deno.json을 가져오기 맵으로도 사용할 수 있게 함.
    • deno fmt는 세미콜론을 지원하여 코드 스타일에 대한 유연성을 제공함.
    • package.json과의 통합으로 Node와 Deno 환경 간의 전환을 용이하게 함.
    • deno.json 구조를 단순화하여 개발자가 더 직관적으로 탐색할 수 있게 함.
    • 글로브 패턴의 도입으로 파일 및 디렉토리의 포함 또는 제외를 더 정밀하게 제어할 수 있게 됨.

LSP를 통한 더 부드러운 개발 경험

  • Deno의 언어 서버 프로토콜(LSP) 통합은 정확한 정의 이동, 포괄적인 IntelliSense, TypeScript 프로젝트를 위한 원활한 코드 포맷팅 등의 기능을 제공함.
  • LSP를 개선하기 위해 많은 노력을 기울여 Deno에서의 코딩을 더 부드럽고 직관적으로 만듦.

WebGPU

  • WebGPU는 개발자가 JavaScript를 사용하여 GPU 하드웨어의 성능을 직접 활용할 수 있게 하는 첨단 기술을 Deno에 통합함.
  • WebGPU는 --unstable-webgpu 플래그 뒤에서 사용할 수 있으며, Deno 애플리케이션의 기능을 확장하는 중요한 이정표임.

Jupyter 노트북

  • 오픈 소스 노트북 도구인 Jupyter는 JavaScript와 TypeScript를 사용하여 Deno를 지원하게 됨.
  • 이를 통해 데이터 과학, 시각화 등을 현대적인 JavaScript와 TypeScript 및 웹 표준 API를 사용하여 수행할 수 있게 됨.

주목할 만한 오픈 소스 Rust 크레이트

  • Deno는 다양한 오픈 소스 프로젝트와 연계되어 있으며, Deno의 기능 세트를 확장하고 성능을 최적화하기 위해 적극적으로 기여함.
  • 올해 Deno는 독립적으로 유용할 수 있는 몇 가지 Rust 크레이트를 출시함.

Fresh

  • Fresh는 클라이언트 측 JavaScript를 기본적으로 전송하지 않는 Deno의 현대적인 전체 스택 웹 프레임워크로, 사용하기 쉽고 성능을 향상시키기 위해 계속 개선됨.

Deno의 클라우드 비즈니스 확장

  • Deno Subhosting은 Netlify의 엣지 함수와 Deco.cx 고객의 전자 상거래 상점을 지원하는 동안 자체 서비스로 전환되어 누구나 무료로 사용할 수 있게 됨.
  • Deno KV, Queues, Cron과 같은 클라우드 기본 요소를 출시하여 웹 개발을 근본적으로 단순화하는 비전을 향해 진전을 이룸.

Deno 2

  • Deno 2는 Node와 npm과의 호환성을 개선하고, 프로젝트의 종속성을 관리하고 최적화하는 데 관한 흥미로운 발표를 포함하여 개선된 런타임을 제공할 예정임.

GN⁺의 의견:

  • Deno는 Node.js와의 호환성을 크게 향상시키고, 웹 개발을 단순화하는 데 중점을 두고 있음이 중요함. 이는 기존 Node.js 개발자들에게 Deno로의 전환을 더 쉽게 만들고, Deno의 채택을 촉진할 수 있음.
  • WebGPU와 같은 첨단 기능의 통합은 Deno가 단순한 서버 사이드 플랫폼을 넘어서 더 넓은 범위의 애플리케이션 개발에 적합하게 만들고 있음을 보여줌. 이는 특히 GPU를 활용한 고성능 컴퓨팅이 필요한 개발자들에게 매력적일 수 있음.
  • Fresh 프레임워크와 Deno Deploy의 발전은 Deno가 전체 스택 웹 개발에서 중요한 역할을 할 수 있음을 시사하며, 클라우드 기반 서비스로서의 Deno의 위치를 강화함. 이러한 발전은 Deno가 현대 웹 개발의 주요 플레이어로 자리 잡을 가능성을 높이고 있음.

Fresh 경험해보니 기대가 너무 컸는지 실망이 더 컸습니다. 왜인지는 이미 아래 의견에 나와 있으니 패스...

Hacker News 의견
  • 한 사용자는 인터넷에 연결되지 않은 환경에서 Deno 애플리케이션을 가져오는 방법을 아직 찾지 못했으며, 이에 대한 문서가 전혀 없다고 지적함. 이 사용자는 Deno가 기업 환경에서 희망을 가질 수 없다고 생각함.
  • 다른 사용자는 WebGPU 기능에 관심을 표현하며, Slint 프레임워크를 통해 브라우저나 웹뷰 없이 자바스크립트/타입스크립트로 데스크톱 GUI를 만들고 있음을 설명함. Deno가 직접 윈도우를 띄울 수 있다면, 모든 플랫폼에 대해 네이티브 바이너리 대신 wasm을 배포할 수 있을 것이라고 기대함. 그러나 WebGPU 기능이 윈도우를 띄우는 API를 포함하지 않아 여전히 추가 라이브러리가 필요하다고 덧붙임.
  • 한 사용자는 Deno의 컴파일 상황이 개선되기를 바라며, 생성된 실행 파일이 90MB 이상이고 압축 시 오류가 발생하여 Go 언어처럼 배포하기 어렵다고 지적함. Deno가 Node.js의 pkg 솔루션보다 크기 면에서 더 나빠졌다고 언급함.
  • 또 다른 사용자는 Deno가 러스트 호스트 프로세스에 내장될 수 있는 더 큰 지원을 보고 싶어함. 자바스크립트 번들러를 작성 중이며, 플러그인을 실행하기 위해 Node.js 런타임이 필요하지만, deno-core 크레이트가 매우 기본적이고 내장하기 어렵다고 언급함. Deno가 JS 도구 세계에서 "플러그인 런타임"이 될 수 있을 것이라고 기대하며, 현재는 Rust 호스트 프로세스에서 stdio를 사용하여 Node.js 자식 프로세스와 통신하고 있음을 설명함.
  • 한 사용자는 자바스크립트를 좋아하지 않지만, Deno를 사용해보고 매우 부드럽고 빠른 경험을 했다고 긍정적인 의견을 표현함.
  • 또 다른 사용자는 2023년에 처음으로 비트리비얼한 Deno 앱을 프로덕션에 배포했으며, 여러 진입점이 있는 저장소에서 lock 파일을 동기화하는 학습 과정에 어려움을 겪었지만, 전반적으로 좋은 경험이었다고 말함.
  • Jupyter가 Deno를 사용하여 자바스크립트와 타입스크립트를 지원하게 되었다는 소식에 대해 한 사용자는 긍정적인 반응을 보이면서도, 파이썬이 숫자와 수학에 뛰어난 지원을 제공하는 점을 언급하며, 이를 사용하고 싶어하는 사람이 있을지 의문을 제기함.
  • 한 사용자는 기사 끝에 링크된 JSR의 대기 목록에 가입할 수 있으며, Deno 팀이 무엇을 만들고 있는지 궁금해함.
  • Deno Deploy가 GCP 지역을 35개에서 12개로 줄였다는 소식에 대한 링크를 공유한 사용자가 있음.
  • Fresh라는 웹 개발 프레임워크를 사용하고 싶어하지만, 현재 Tailwind만 지원하는 것은 미성숙해 보인다고 지적하는 사용자가 있음. 다음 반복에서 CSS 번들링이 아닌 뷰 전환을 우선시하는 것에 대해 의아해함.