# 2023년의 Deno

> Clean Markdown view of GeekNews topic #13221. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=13221](https://news.hada.io/topic?id=13221)
- GeekNews Markdown: [https://news.hada.io/topic/13221.md](https://news.hada.io/topic/13221.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-02-06T09:55:26+09:00
- Updated: 2024-02-06T09:55:26+09:00
- Original source: [deno.com](https://deno.com/blog/deno-in-2023)
- Points: 5
- Comments: 2

## Topic Body

### Deno의 2023년 변화  
  
- Deno는 `package.json` 파일을 이해하며, `node:fs`와 `node:crypto` 같은 **내장 Node 모듈**을 `node:` 지정자를 사용하여 가져올 수 있게 됨.  
- 새로운 웹 서버 API `Deno.serve`가 안정화되었고, HTTP 처리량이 연간 약 73% 향상됨.  
- **`deno compile`** 은 워커, 동적 임포트, npm 모듈을 지원하게 됨.  
- Deno는 **웹 스트림**(`ReadableStream`과 `WriteableStream`)과 `AbortController`를 API 전반에 더 잘 활용하여 브라우저와 서버 측 프로그래밍 간의 격차를 좁힘.  
- Deno의 설정 파일 `deno.json`은 이제 가져오기 맵으로도 사용되며, 스키마를 단순화하고, 글로브 지원 및 유용한 최상위 `"exclude"` 속성을 추가함.  
- 오픈 소스 노트북 도구인 **Jupyter**가 JavaScript와 TypeScript를 사용하여 Deno를 지원하게 됨.  
- **WebGPU**가 거의 1년간의 개발 끝에 Deno에 추가됨.  
- Deno의 **제로 설정 TypeScript**는 LSP와 VS Code 통합의 상당한 개선을 통해 편집기 통합이 더 나아짐.  
- Deno 기반 웹 프레임워크인 **Fresh**는 Tailwind 지원, Partials, 레이아웃 파일 등 기능이 확장됨.  
- **Deno Deploy**는 **Deno 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가 현대 웹 개발의 주요 플레이어로 자리 잡을 가능성을 높이고 있음.

## Comments



### Comment 22920

- Author: [hidden]
- Created: 2024-02-07T14:57:54+09:00
- Points: 1

[숨김 처리된 댓글입니다]

### Comment 22859

- Author: neo
- Created: 2024-02-06T09:55:26+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39259068) 
- 한 사용자는 인터넷에 연결되지 않은 환경에서 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 번들링이 아닌 뷰 전환을 우선시하는 것에 대해 의아해함.
