본문 바로가기

DevOps

Deno 2.8 업데이트로 달라진 점과 개발자가 주목해야 할 변화

728x90
반응형
728x170

이 글은 Deno 2.8 릴리스에서 추가·개선된 주요 기능과 변경 사항을 정리한 IT 기술 블로그입니다.
Deno를 이미 사용 중인 개발자뿐 아니라, 기존 Node.js 프로젝트에서 Deno 도입을 검토하는 분들을 위해 패키지 관리, 호환성, 성능, 디버깅, 테스트, CI·배포까지 전반적인 변화를 한눈에 이해할 수 있도록 정리했습니다.

반응형

Deno 2.8 개요와 배경

Deno는 JavaScript와 TypeScript를 위한 런타임으로, 보안·표준 Web API·단순한 도구 체계를 강점으로 발전해 왔습니다.
Deno 2.x 이후의 핵심 방향은 명확합니다.
Node.js 생태계와의 실질적인 호환성 강화, 그리고
개발·배포 경험의 단순화
입니다.

Deno 2.8은 이 방향성을 가장 잘 보여주는 릴리스로, npm 패키지 사용성, Node API 호환성, 성능, 디버깅 및 테스트 경험이 눈에 띄게 개선됐습니다.


npm 패키지 관리 경험의 변화

Deno 2.8에서는 기존 Node.js 프로젝트를 Deno로 옮기거나 병행 사용할 때의 장벽이 크게 낮아졌습니다.

접두사 없는 npm 패키지 설치

  • deno add와 deno install에서 접두사 없는 패키지 이름을 기본적으로 npm: 패키지로 처리
  • 기존의 npm install, yarn, pnpm install을 대체해 사용하기 쉬워짐

기존 Node 개발자가 별다른 학습 없이 바로 사용할 수 있는 흐름이 만들어졌다는 점이 핵심입니다.

취약점 자동 수정

  • deno audit fix 명령이 npm 의존성 취약 패키지를 자동으로 패치 버전 업그레이드
  • 메이저 버전 변경이 필요한 항목은 별도로 표시해 안정성을 유지

새롭게 추가된 CLI 하위 명령어

Deno 2.8은 개발·운영 전반을 지원하는 여러 하위 명령어를 추가했습니다.

  • deno ci : 재현 가능한 설치 환경 제공
  • deno pack : npm 배포용 tarball 생성
  • deno transpile : TypeScript → JavaScript 변환
  • deno why : 의존성 경로 추적
  • deno bump-version : 워크스페이스 버전 일괄 갱신

특히 모노레포나 CI 환경에서 설정과 스크립트 복잡도를 줄이는 데 실질적인 도움을 줍니다.


Node.js API 호환성의 큰 도약

Node.js 호환성은 Deno 도입을 망설이게 하던 가장 큰 이유 중 하나였습니다.
Deno 2.8에서는 이 부분이 크게 개선됐습니다.

  • Node 자체 테스트 스위트 기준
    • Deno 2.7: 약 42%
    • Deno 2.8: 76.4% (3,405 / 4,457)

또한 많은 node: 모듈이 지연 로드 방식으로 변경되어, 해당 모듈을 사용하지 않는 프로그램의 시작 속도도 빨라졌습니다.


성능 개선 포인트

실제 체감 가능한 성능 향상도 눈에 띕니다.

  • 콜드 npm 설치
    • 3,319ms → 906ms (약 3.66배 개선)
  • node:buffer base64 처리: 3.07배 향상
  • node:http 처리량: 2.21배 향상
  • node:crypto scrypt: 2.12배 향상

Deno가 “개발 경험은 좋은데 느리다”는 인식을 벗어나기 시작했다는 점에서 의미가 큽니다.


호환성 변경 시 주의할 점

Node.js와의 정합성을 맞추는 과정에서 일부 변경 사항도 있습니다.

  • 전역 setTimeout, setInterval이
    • 숫자 ID → Node의 Timeout 객체 반환
  • 반환값을 number로 저장하거나 산술 연산에 사용하던 코드는
    • NodeJS.Timeout 타입으로 수정 필요

기존 코드가 있다면 이 부분은 반드시 점검해야 합니다.


TypeScript와 타입 지원 강화

  • TypeScript 6.0.3 내장
  • deno check와 LSP가 기본적으로 lib.node를 포함
  • 별도 설정 없이도 NodeJS.*, Buffer, process 타입을 인식

Node 타입 설정 때문에 발생하던 초기 설정 부담이 사실상 사라졌습니다.


디버깅과 프로파일링 기능 확장

Deno 2.8은 디버깅과 성능 분석에서도 큰 진전을 보였습니다.

  • Chrome DevTools Network 탭에서
    • fetch()
    • node:http / node:https
    • WebSocket 트래픽 확인 가능
  • CPU 프로파일링 지원
    • --cpu-prof
    • --cpu-prof-flamegraph
    • --cpu-prof-md

SVG 플레임그래프와 Markdown 리포트까지 생성할 수 있어, 성능 분석이 훨씬 수월해졌습니다.


패키지·워크스페이스 관리 기능 강화

새로운 옵션과 프로토콜이 추가되어 대규모 프로젝트 관리가 쉬워졌습니다.

  • catalog: 프로토콜로 모노레포 버전 통일
  • deno install --os --arch로 크로스 플랫폼 설치
  • --prod 옵션으로 프로덕션 전용 설치
  • nodeModulesLinker: "hoisted" 지원
  • .npmrc의 min-release-age 인식
  • --package-json으로 기존 Node 프로젝트 이전 보완

deno compile의 프레임워크 인식 개선

deno compile은 주요 웹 프레임워크를 자동 감지합니다.

  • Next.js
  • Astro
  • Fresh
  • Remix
  • SvelteKit
  • Nuxt
  • SolidStart
  • TanStack Start
  • Vite SSR

프로젝트를 감지해 deno task build를 실행하고, 적절한 진입점을 자동 생성합니다.
대형 npm 의존성 트리를 처리할 때도 진행 상황을 표시해 신뢰도를 높였습니다.


테스트와 Web API 확장

  • Deno.test()의
    • sanitizeOps
    • sanitizeResources 기본값이 false로 변경
  • 테스트 단위 timeout 지원
  • 함수 단위 coverage 추가
  • Web API 확장
    • OffscreenCanvas
    • 전송 가능한 Headers, Request, Response, Streams
    • SHA3 digest
    • P-521 Web Crypto 지원

업그레이드 방식과 런타임 기반 개선

  • deno upgrade 시
    • delta 업데이트 적용
    • 다운로드 크기 약 48MB → 3~6MB
  • deno upgrade pr <number>로 PR 빌드 설치 가능
  • V8 엔진 버전: 14.6

업데이트 부담이 줄어들면서 최신 버전 유지가 훨씬 쉬워졌습니다.


728x90

Deno 2.8은 단순한 기능 추가 릴리스를 넘어, Node.js 생태계와 본격적으로 경쟁·공존할 수 있는 단계에 들어섰음을 보여줍니다.

  • npm 패키지 사용성 개선
  • Node API 호환성의 대폭 상승
  • 눈에 띄는 성능 향상
  • 디버깅·테스트·CI·배포 경험의 통합

이제 Deno는 “새로운 런타임”이 아니라, 실제 프로덕션에서 선택 가능한 대안으로 평가할 수 있는 수준에 도달했습니다.
앞으로 기존 Node 프로젝트의 점진적 이전이나, 새로운 프로젝트에서의 Deno 채택 사례가 더욱 늘어날 것으로 기대됩니다.

300x250

https://deno.com/blog/v2.8

 

Deno 2.8 | Deno

`import defer`, six new subcommands (`deno transpile`, `deno pack`, `deno bump-version`, `deno ci`, `deno why`, `deno audit fix`), network debugging in Chrome DevTools, framework-aware `deno compile`, and 3.66x faster cold npm installs.

deno.com

728x90
반응형
그리드형