디노 (소프트웨어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
디노(Deno)는 라이언 달이 Node.js의 문제점을 해결하기 위해 개발한 JavaScript/TypeScript 런타임 환경이다. 2018년 처음 공개되었으며, 웹 브라우저와 유사하게 ES 모듈을 기본으로 지원하고, URL을 통한 종속성 로드, 샌드박스 환경에서의 보안 강화, TypeScript 기본 지원 등의 특징을 가진다. Deno는 Rust로 작성되었으며, 2020년 5월 13일에 공식 버전 1.0이 출시되었고, Deno 개발을 가속화하기 위해 2021년 Deno 회사가 설립되었다. Deno는 Node.js와 달리, NPM과 같은 패키지 관리자를 사용하지 않고, 내장된 표준 라이브러리를 제공하며, Deno Deploy, Deno Fresh, Deno SaaSKit 등의 구성 요소를 포함한다.
더 읽어볼만한 페이지
- 런타임 시스템 - 런타임 라이브러리
런타임 라이브러리는 프로그래밍 언어의 기능을 지원하고 컴파일러에 의해 자동으로 링크되며, 예외 처리, 메모리 할당 등의 기능을 제공하고 디버깅 및 릴리스 용도에 따라 여러 버전이 존재한다. - 런타임 시스템 - 메모리 오더링
메모리 오더링은 컴파일러와 CPU가 메모리 접근 순서를 최적화하는 과정에서 멀티 스레드 환경의 데이터 일관성을 해칠 수 있는 문제로, 메모리 배리어를 통해 제어하고 메모리 모델을 이해해야 한다. - 2018년 소프트웨어 - IGTV
IGTV는 인스타그램 계정으로 로그인하여 사용할 수 있는 동영상 플랫폼 서비스로, 모바일과 데스크톱에서 각기 다른 사양의 동영상 업로드, 자동 재생, 프로필 탭, 페이스북 페이지 연동, 가로형 동영상 지원 등의 기능을 제공했다. - 2018년 소프트웨어 - 안드로이드 파이
안드로이드 파이는 구글이 개발한 안드로이드 운영체제의 9번째 버전으로, Material Design 2를 활용한 인터페이스 개선, 노치 디자인 지원, 제스처 기반 탐색 막대, 강화된 전력 관리 기능, 보안 강화 및 플랫폼 개선 등을 특징으로 한다. - 패키지 관리 시스템 - 패키지 관리자
컴퓨터 프로그램의 설치, 업데이트, 제거를 자동화하는 패키지 관리자는 소프트웨어 패키지 관리, 의존성 관리, 설정 관리 기능을 제공하여 다양한 운영 체제와 프로그래밍 언어에서 활용된다. - 패키지 관리 시스템 - 제거 프로그램
제거 프로그램은 컴퓨터에 설치된 소프트웨어를 완전히 제거하기 위해 로거, 제거 프로그램, 분석기, 감시자 등의 도구를 활용하며, 설치 기록을 바탕으로 프로그램 및 관련 파일을 삭제하고 레지스트리를 정리하는 기능을 제공한다.
2. 역사
Deno는 2018년 JSConf EU에서 Node.js의 창시자인 라이언 달이 Node.js의 설계상 한계를 극복하기 위해 발표하며 시작되었다.[7][37][58] 초기 개발 과정에서 Go에서 Rust로 핵심 언어를 변경하고,[10][42][60] 비동기 처리 방식으로 Tokio를 채택하는 등[11][61] 기술적인 변화를 거쳤으며, Node.js의 의존성 문제 해결을 목표로 자체 표준 라이브러리도 구축했다.[15][46][65]
2020년 5월 13일 공식 1.0 버전이 출시되었고,[16][66] 이듬해인 2021년에는 Deno 개발 및 상업적 지원을 위한 Deno 회사가 설립되었다. 이후 서버리스 플랫폼 Deno Deploy,[17][18] 풀 스택 웹 프레임워크 Deno Fresh[20] 등이 주요 서비스로 출시되었으며, 2024년 10월에는 Node.js 호환성을 개선한 Deno 2.0이 발표되었다.[23]
2. 1. 개발 배경
Deno는 2018년 JSConf EU에서 라이언 달의 "Node.js에 대해 내가 후회하는 10가지"라는 발표를 통해 처음 공개되었다.[7][37][58] 달은 이 발표에서 Node.js의 초기 설계 결정에 대한 몇 가지 후회를 언급했는데, 주요 내용은 다음과 같다.[8][40][58]- API 설계 시 프로미스를 사용하지 않은 점
- 레거시 빌드 시스템인 GYP의 사용
- 'node_modules' 및 'package.json' 사용
- 파일 확장자를 명시하지 않는 방식
- 'index.js'를 통한 암묵적인 모듈 해석(magical module resolution)
- V8의 샌드박스 환경을 벗어나는 구조
달은 이러한 문제점들의 해결책으로 Deno의 프로토타입을 선보였다. 이 프로토타입은 프로토콜 버퍼와 같은 직렬화 도구를 이용한 메시지 전달 방식으로 시스템 호출 바인딩을 구현하고, 접근 제어를 위해 명령줄 플래그를 사용하는 것을 목표로 했다.
Deno는 초기에 Go로 작성되었으며, 권한이 필요한 부분(Go, 시스템 호출 접근)과 권한이 없는 부분(V8) 사이의 통신을 위해 프로토콜 버퍼를 사용한 직렬화 방식을 채택했다.[9][41][59] 그러나 Go를 사용함으로써 발생하는 이중 런타임 환경과 가비지 컬렉션 부담에 대한 우려로 인해, 곧 Rust로 핵심 코드를 재작성하게 되었다.[10][42][60]
비동기 이벤트 처리 방식으로는 기존 Node.js에서 사용되던 libuv 대신 Tokio가 도입되었다.[11][61] 또한, 더 빠른 "제로 카피" 직렬화 및 역직렬화를 위해 FlatBuffers가 채택되었으나,[12][43][62] 2019년 4월 발표된 벤치마크 결과에서 직렬화 과정의 상당한 오버헤드가 확인되어[13][44][63] 같은 해 8월 말 FlatBuffers는 제거되었다.[14][45][64]
Go의 표준 라이브러리를 모델로 삼아, Deno 자체 표준 라이브러리가 2018년 11월에 만들어졌다. 이는 다양한 도구와 유틸리티를 기본적으로 제공함으로써 Node.js의 고질적인 문제 중 하나였던 의존성 트리 폭발 문제를 일부 해결하려는 목적을 가졌다.[15][46][65]
공식 Deno 1.0 버전은 2020년 5월 13일에 출시되었다.[16][66]
2021년 3월 29일에는 Deno 개발을 가속화하고 상업적 지원을 제공하기 위해 Deno 회사가 설립되었음이 발표되었다. 이 회사는 Shasta Ventures, 모질라 코퍼레이션 등으로부터 투자를 유치했다.
2. 2. 초기 개발 과정
라이언 달은 JSConf EU 2018에서 "Node.js에 관해 후회하는 10가지"라는 발표를 통해 디노(Deno)를 처음 소개했다.[58][7][37] 그는 이 발표에서 Node.js의 초기 설계 결정에 대한 여러 후회되는 점을 언급했는데, 주요 내용은 다음과 같다.[58][8][40]- API 디자인에서 promise를 사용하지 않은 점
- 레거시 빌드 시스템인 GYP 사용
- node_modules 및 package.json 사용 방식
- 파일 확장자를 명시적으로 사용하지 않는 점
- index.js를 이용한 모호한 모듈 해석(magical module resolution)
- V8의 샌드박스 환경을 의도치 않게 약화시킨 점
이러한 문제점들에 대한 해결책으로, 달은 프로토콜 버퍼와 같은 직렬화 도구를 이용해 메시지 전달 방식으로 시스템 호출 바인딩을 구현하고, 명령 줄 플래그를 통해 접근 제어를 강화하는 디노의 초기 프로토타입을 선보였다.[58][8][40]
디노는 처음에 Go 언어로 작성되었다. 이 초기 버전은 권한이 필요한 부분(Go 언어, 시스템 호출 접근)과 권한이 없는 부분(V8) 사이의 통신을 위해 프로토콜 버퍼를 직렬화 방식으로 사용했다.[59][9][41] 하지만 Go 언어를 사용하면서 발생하는 이중 런타임 환경과 쓰레기 수집의 부담 문제 때문에, 곧 Rust 언어로 핵심 코드를 재작성하게 되었다.[60][10][42]
또한, 비동기 이벤트 처리 방식도 Node.js가 사용하는 libuv 대신 Tokio를 기반으로 구현되었다.[61][11][43] 초기에는 더 빠른 "제로-카피" 직렬화 및 역직렬화를 목표로 FlatBuffers를 도입하기도 했다.[62][12][43] 그러나 2019년 4월에 진행된 벤치마크 결과, FlatBuffers 방식이 상당한 오버헤드를 유발하는 것으로 나타나면서[63][13][44], 결국 2019년 8월 말에 FlatBuffers는 제거되었다.[64][14][45]
한편, Go의 표준 라이브러리를 모델로 삼아, 광범위한 기본 도구와 유틸리티를 제공하는 디노 자체 표준 라이브러리가 2018년 11월에 만들어졌다.[65][15][46] 이는 Node.js에서 종종 문제가 되는 복잡한 의존성 트리 문제를 일부 해소하기 위한 시도였다.[65][15][46]
2. 3. Deno 회사 설립 및 투자 유치
2021년 3월 29일, Deno의 개발을 더욱 발전시키고 사용자에게 상업적 서비스를 제공하기 위해 Deno Land Inc가 설립되었다.[1] 이 회사는 샤스타 벤처스(Shasta Ventures), 모질라 재단(Mozilla Corporation) 등으로부터 수백만 달러의 자금을 지원받았다.[1]1년 후, Deno는 세쿼이아 캐피탈(Sequoia Capital)이 주도한 2100만달러 규모의 시리즈 A 투자를 추가로 유치했다고 발표했다.[31]
2. 4. 주요 릴리즈
공식 디노 1.0은 2020년 5월 13일에 출시되었다.[16]Cloudflare Workers에서 영감을 얻은 Deno Deploy는 2021년 6월 23일에 출시되었다.[17][18] 2022년 5월 4일에 발표된 Beta 4는 대시보드를 개선하고 청구 기능을 추가했다.[19]
Deno Fresh 1.0은 2022년 6월 28일에 발표되었다.[20] 이는 기본적으로 클라이언트에 자바스크립트를 전송하지 않는 디노를 위한 새로운 풀 스택 웹 프레임워크이다. 이 프레임워크는 빌드 단계가 없어 배포 시간을 획기적으로 개선할 수 있다. 버전 1.1은 2022년 9월 8일에 출시되었다.[21]
Deno SaaSKit 베타는 2023년 4월 4일에 발표되었다.[22] 이는 Fresh와 Deno로 구축된 오픈 소스, 최신 SaaS 템플릿이다.
디노 2는 2024년 10월 9일에 출시되었다.[23] 이는 주로 Node.js 호환성 개선을 가져오고 더 이상 사용되지 않는 기능을 제거하는 데 중점을 두었다.
3. 특징
Deno는 현대 프로그래머를 위한 생산적이고 안전한 스크립팅 환경을 목표로 한다.[67][4][38] Node.js와 마찬가지로 이벤트 기반 아키텍처를 강조하며, 비동기 또는 논블로킹(non-blocking) 핵심 입출력(I/O) 유틸리티와 해당 블로킹(blocking) 버전을 함께 제공한다.
Deno는 웹 서버를 만들거나 과학적 계산을 수행하는 데 사용될 수 있다. 발음은 원래 '데노'였으나, '디노'[47][48]가 되었다.
Deno는 MIT 라이선스에 따라 배포되는 오픈 소스 소프트웨어이다.[68][24]
3. 1. Node.js와의 비교
'''공통점'''Deno와 Node.js는 모두 구글 크롬의 V8 JavaScript 엔진을 기반으로 구축된 런타임 환경이다. 둘 다 내부 이벤트 루프를 가지고 있으며, 스크립트 실행 및 광범위한 시스템 유틸리티를 위한 명령 줄 인터페이스를 제공한다.
'''차이점'''[69][4][38]
Deno는 다음과 같은 주요 측면에서 Node.js와 다르다.
- 모듈 시스템: Node.js는 CommonJS와 ES 모듈을 모두 지원하지만, Deno는 기본적으로 브라우저와 같이 ES 모듈만 사용한다. Node.js와 달리 `require` 구문은 사용하지 않는다. Deno에서 CommonJS 모듈을 사용하려면 호환성 계층이 필요하다.[25][26]
- 의존성 로드: Deno는 브라우저처럼 URL을 사용하여 로컬 또는 원격 의존성을 불러온다. 또한 `npm:` 및 `node:` 지정자를 사용하여 NPM 또는 Node.js 모듈을 가져올 수 있다. Node.js는 주로 npm을 통해 모듈을 관리하며, ''package.json'' 파일을 사용하지만, URL 로드[27]도 지원한다.
- 패키지 관리자: Deno는 리소스를 가져오기 위한 내장 메커니즘이 있어 npm과 같은 별도의 패키지 관리자가 필요하지 않다.[28]
- 타입스크립트 지원: Deno는 타입스크립트를 기본적으로 지원하며, 캐싱 메커니즘을 갖춘 컴파일러[30](TypeScript 컴파일러 또는 swc)를 통해 별도의 컴파일 과정 없이 실행할 수 있다.[29]
- 브라우저 호환성: Deno는 다양한 웹 표준 API(Web API)를 내장하여 브라우저 환경과의 호환성을 높이는 것을 목표로 한다.
- 보안: Deno는 기본적으로 샌드박스 환경에서 코드를 실행한다. 파일 시스템 접근, 네트워크 통신, 환경 변수 접근 등에는 명시적인 권한 부여가 필요하다.
- 비동기 처리: Deno의 모든 비동기 작업은 Promise 객체를 반환한다. Node.js는 Promise와 전통적인 콜백(Callback) 방식을 모두 지원한다.
- 오류 처리: Deno는 예기치 못한 오류(uncaught error)가 발생하면 기본적으로 프로세스를 종료시킨다.
- 표준 라이브러리: Deno는 외부 의존성 없이 사용할 수 있는 포괄적인 표준 라이브러리를 제공하여 핵심 API의 크기를 최소화한다.
- API 호출 방식: Deno는 권한이 필요한 시스템 API를 호출할 때 메시지 전달 채널(message passing channel)을 사용한다.
3. 2. 주요 차이점
Deno는 Node.js와 여러 주요한 차이점을 가진다.[69][4][38]- 모듈 시스템: Node.js는 ES 모듈과 CommonJS를 모두 지원하지만, Deno는 기본적으로 ES 모듈만을 사용한다. 이는 웹 브라우저와 유사한 방식이며, CommonJS 모듈을 사용하기 위해서는 별도의 호환성 계층이 필요하다.[25][26] 이에 따라 `require` 구문은 사용하지 않는다.
- 의존성 관리: 웹 브라우저처럼 URL을 통해 로컬 또는 원격 모듈 의존성을 직접 불러온다. npm과 같은 별도의 패키지 관리자가 필요 없으며, `package.json` 파일도 사용하지 않는다.[28] Node.js 모듈이나 npm 패키지를 가져오기 위해 `node:` 또는 `npm:`과 같은 지정자를 사용할 수 있다.
- 타입스크립트 지원: 타입스크립트를 기본적으로 내장하여 지원한다. 별도의 설정 없이 타입스크립트 코드를 바로 실행할 수 있으며, 내부적으로 캐싱 메커니즘을 갖춘 타입스크립트 컴파일러 또는 swc를 사용한다.[29][30]
- 웹 표준 API 호환성: 웹 브라우저 환경과의 호환성을 높이기 위해 Fetch API 등 다양한 웹 API를 표준 라이브러리로 제공한다.
- 보안: 기본적으로 샌드박스 환경에서 코드를 실행한다. 파일 시스템 접근, 네트워크 통신, 환경 변수 접근 등 민감한 작업에는 사용자의 명시적인 권한 부여가 필요하다.
- 비동기 처리: 모든 비동기 작업은 Promise 객체를 반환하도록 API가 설계되었다. Node.js가 콜백 함수와 Promise를 모두 지원하는 것과 차이가 있다.
- 에러 처리: 처리되지 않은 예외(Uncaught Exception)가 발생하면 Node.js와 달리 프로세스가 즉시 종료된다.
- 표준 라이브러리: Node.js에 비해 외부 의존성이 없는 더 큰 규모의 표준 라이브러리를 제공하며, 핵심 API의 크기는 최소화하는 것을 목표로 한다.
- 시스템 호출: 권한이 필요한 시스템 API를 호출하거나 네이티브 바인딩을 사용할 때 메시지 전달 채널을 이용한다.
3. 3. 기타 특징
Deno는 현대 프로그래머를 위한 생산적이고 안전한 스크립팅 환경을 목표로 한다.[67][4][38] Node.js와 마찬가지로 이벤트 기반 아키텍처를 강조하며, 비동기 또는 논블로킹(non-blocking) 핵심 입출력(I/O) 유틸리티와 해당 블로킹(blocking) 버전을 함께 제공한다.Deno는 웹 서버를 만들거나 과학적 계산을 수행하는 데 사용될 수 있다. 발음은 원래 '데노'였으나, '디노'[47][48]가 되었다.
Deno는 MIT 라이선스에 따라 배포되는 오픈 소스 소프트웨어이다.[68][24]
4. 구성 요소
(내용 없음)
4. 1. 표준 라이브러리
Go의 표준 라이브러리를 모델로 삼아, 2018년 11월에 디노 자체 표준 라이브러리가 만들어졌다. 이는 광범위한 도구와 유틸리티를 제공하며, Node.js에서 문제가 되었던 의존성 트리 폭발 현상을 일부 해소하는 데 기여했다.[15]5. 사용 예시
Deno를 활용한 기본적인 프로그래밍 예시들은 다음과 같다.
- Hello, World! 프로그램: 가장 기본적인 콘솔 출력 예제이다.
- 유닉스 cat 프로그램 구현: 파일 내용을 읽어 표준 출력으로 보여주는 예제이다. 파일 시스템 접근 권한이 필요하다.
- 간단한 웹 서버: 기본적인 HTTP 요청을 처리하는 서버 예제이다. 네트워크 권한이 필요하다.
Deno 스크립트는 기본적으로 샌드박스 환경에서 실행되어 파일 시스템 접근이나 네트워크 통신 등이 제한된다. 이러한 기능이 필요한 경우, 스크립트 실행 시 명시적으로 권한 플래그(예:
--allow-read, --allow-net)를 사용하여 허용해야 한다.또한, Deno는 URL을 통해 원격 표준 라이브러리 스크립트를 별도의 다운로드 과정 없이 직접 실행할 수 있다. 이때 필요한 파일은 자동으로 다운로드되어 캐시되고 코드가 컴파일된다. 예를 들어, 다음 명령어는 표준 라이브러리에 포함된 파일 서버를 모든 권한(
-A 플래그 사용)을 활성화하여 실행한다.$ deno run -A https://deno.land/std/http/file_server.ts
Download https://deno.land/std/http/file_server.ts
Compile https://deno.land/std/http/file_server.ts
...
HTTP server listening on http://0.0.0.0:4500/
5. 1. 기본 스크립트 실행
파일 시스템이나 네트워크 권한 없이 기본적인 Deno 스크립트를 실행할 수 있다. 이는 샌드박스 모드에서 실행되는 것을 의미한다.deno run main.ts
스크립트 실행에 특정 권한이 필요할 경우, 명시적으로 플래그를 사용하여 활성화해야 한다. 예를 들어, 파일 읽기 권한과 네트워크 권한을 허용하려면 다음과 같이 실행한다.
deno run --allow-read --allow-net main.ts
스크립트의 의존성 트리는
info 하위 명령어를 사용하여 검사할 수 있다.deno info main.ts
Deno에서의 기본적인 "Hello, World!" 프로그램은 Node.js와 동일하다.
console.log("Hello, World!");
전역
Deno 네임스페이스는 웹 브라우저 환경에서는 사용할 수 없는 Deno 고유의 API를 제공한다. 예를 들어, 유닉스의 cat 프로그램을 Deno로 구현하면 다음과 같다./**
- cat.ts
- /
for (const filename of Deno.args) {
const file = await Deno.open(filename);
await file.readable.pipeTo(Deno.stdout.writable, { preventClose: true });
}
이
cat.ts 스크립트를 실행하기 위해서는 파일 시스템 읽기 권한(--allow-read)이 필요하다.deno run --allow-read cat.ts myfile
다음은 Deno를 사용하여 간단한 HTTP 서버를 구현하는 예제이다.
Deno.serve((req) => new Response("hello world"));
Deno는 스크립트를 실행할 때 원격 표준 라이브러리 파일을 자동으로 다운로드하여 캐시하고 코드를 컴파일한다. 따라서 URL을 입력 파일 이름으로 제공하여, 별도의 다운로드 과정 없이 표준 라이브러리 스크립트(예: 파일 서버)를 직접 실행할 수 있다. 아래 예제에서
-A 플래그는 모든 권한을 활성화한다.$ deno run -A https://deno.land/std/http/file_server.ts
Download https://deno.land/std/http/file_server.ts
Compile https://deno.land/std/http/file_server.ts
...
HTTP server listening on http://0.0.0.0:4500/
5. 2. Hello, World! 프로그램
Deno 스크립트는 기본적으로 파일 시스템 접근이나 네트워크 권한 없이 샌드박스 모드에서 실행된다.deno run main.ts
특정 권한이 필요한 경우, 실행 시 명시적으로 플래그를 사용하여 활성화해야 한다. 예를 들어 파일 읽기(
--allow-read) 및 네트워크(--allow-net) 권한을 부여하려면 다음과 같이 실행한다.deno run --allow-read --allow-net main.ts
스크립트의 의존성 트리는
info 하위 명령어를 통해 확인할 수 있다.deno info main.ts
Deno에서의 기본적인 "Hello, World!" 프로그램은 Node.js와 유사하다.
console.log("Hello, World!");
전역
Deno 네임스페이스는 웹 브라우저 환경에서는 사용할 수 없는 Deno 고유의 API를 제공한다. 이를 이용하여 유닉스의 cat 명령어와 유사한 기능을 다음과 같이 구현할 수 있다./**
- cat.ts
- /
// Deno.args는 명령어 줄 인수를 배열로 포함한다.
for (const filename of Deno.args) {
// 주어진 이름의 파일을 비동기적으로 연다.
const file = await Deno.open(filename);
// 파일의 내용을 표준 출력(stdout)으로 파이프한다.
// preventClose: true는 stdout이 닫히는 것을 방지한다.
await file.readable.pipeTo(Deno.stdout.writable, { preventClose: true });
}
이
cat.ts 스크립트를 실행하기 위해서는 파일 시스템 읽기 권한(--allow-read)이 필요하다.deno run --allow-read cat.ts myfile
다음은 Deno를 사용하여 간단한 HTTP 서버를 구현하는 예제이다. 이 서버는 들어오는 모든 요청에 "hello world"라는 응답을 보낸다.
Deno.serve((req) => new Response("hello world"));
Deno는 스크립트 실행 시 필요한 원격 모듈(예: 표준 라이브러리)을 자동으로 다운로드하여 로컬에 캐시하고 코드를 컴파일한다. 따라서 URL을 직접 실행 파일로 지정하여 별도의 다운로드 과정 없이 스크립트를 실행할 수 있다. 예를 들어, Deno 표준 라이브러리에 포함된 파일 서버를 모든 권한(
-A 플래그 사용)을 활성화하여 실행하는 명령어는 다음과 같다.$ deno run -A https://deno.land/std/http/file_server.ts
Download https://deno.land/std/http/file_server.ts
Compile https://deno.land/std/http/file_server.ts
...
HTTP server listening on http://0.0.0.0:4500/
5. 3. 유닉스 cat 프로그램 구현
`Deno` 객체는 웹 브라우저에서는 사용할 수 없는 Deno 고유의 API에 대한 전역 네임스페이스를 제공한다. 유닉스의 `cat` 명령은 다음과 같이 구현할 수 있다./**
- cat.ts
- /
for (const filename of Deno.args) {
const file = await Deno.open(filename);
await file.readable.pipeTo(Deno.stdout.writable, { preventClose: true });
}
이 프로그램을 실행하려면 파일 시스템 읽기 권한이 필요하다.
deno run --allow-read cat.ts myfile
5. 4. 간단한 HTTP 서버
다음은 Deno를 사용하여 기본적인 HTTP 서버를 구현하는 예제이다.Deno.serve((req) => new Response("hello world"));
6. 릴리스
Deno 프로젝트의 릴리스 정보는 Deno 공식 릴리스 페이지에서 자세히 확인할 수 있다.
Deno의 첫 프로덕션 버전인 1.0은 2020년 5월 13일에 출시되었으며[16], Node.js 호환성 개선 등에 중점을 둔 2.0 버전은 2024년 10월 9일에 출시되었다.[23]
Deno, Deno Fresh, Deno SaaSKit의 상세한 버전별 릴리스 내역은 아래 하위 섹션에서 확인할 수 있다.
6. 1. Deno 버전
Deno의 주요 버전 및 출시일은 다음과 같다. 공식 릴리스 페이지에서 더 자세한 내용을 확인할 수 있다.초기 프로덕션 버전인 Deno 1.0은 2020년 5월 13일에 출시되었다.[16] 이후 지속적인 개선을 거쳐, Node.js 호환성 개선 및 오래된 기능 제거에 중점을 둔 Deno 2.0이 2024년 10월 9일에 출시되었다.[23]
6. 2. Deno Fresh 버전
[https://github.com/denoland/deno/blob/main/Releases.md Deno 릴리즈 페이지]버전 번호는 깃허브(Github)의 릴리스를 기준으로 한다.[33]
6. 3. Deno SaaSKit 버전
Deno SaaSKit의 버전 정보는 Deno 릴리즈 페이지에서 확인할 수 있다. 버전 번호는 Github 저장소의 릴리스 번호를 기반으로 한다.[34]
참조
[1]
웹사이트
Announcing the Deno Company
https://deno.com/blo[...]
2021-03-29
[2]
웹사이트
Contributors, denoland/deno, Github
https://github.com/d[...]
2019-07-05
[3]
웹사이트
deno/LICENSE at main
https://github.com/d[...]
2019-07-05
[4]
웹사이트
Deno Manual
https://docs.deno.co[...]
2019-05-17
[5]
웹사이트
Deno: Secure V8 TypeScript Runtime from Original Node.js Creator
https://www.infoq.co[...]
2018-12-26
[6]
웹사이트
Ryan Dahl's Node.js regrets lead to Deno
https://www.infoworl[...]
InfoWorld
2018-06-21
[7]
AV media
10 things I regret about Node.js
https://www.youtube.[...]
JSConf EU
2019-05-17
[8]
웹사이트
Design mistakes in Node
https://github.com/d[...]
2018-06-06
[9]
웹사이트
denoland/deno, branch "golang"
https://github.com/d[...]
[10]
웹사이트
Suggestion: Look into porting to Rust and using Tokio
https://github.com/d[...]
[11]
웹사이트
Tokio - The asynchronous run-time for the Rust programming language.
https://tokio.rs/
[12]
웹사이트
Protobuf seems like a lot of overhead for this use case?
https://github.com/d[...]
[13]
웹사이트
Remove flatbuffers
https://github.com/d[...]
[14]
웹사이트
Replace flatbuffers
https://github.com/d[...]
2019-07-11
[15]
웹사이트
denoland/deno_std: deno standard modules
https://github.com/d[...]
2022-03-03
[16]
웹사이트
Deno 1.0
https://deno.com/blo[...]
2020-05-14
[17]
웹사이트
JavaScript Containers
https://tinyclouds.o[...]
2022-05-04
[18]
웹사이트
Deno Company unveils server-side JavaScript hosting service
https://www.infoworl[...]
2022-04-14
[19]
웹사이트
Deno Deploy moves toward GA, adds paid plan
https://www.infoworl[...]
2022-07-24
[20]
웹사이트
Introduction Fresh 1.0 as new full stack web framework for Deno
https://deno.com/blo[...]
2022-07-24
[21]
웹사이트
Fresh 1.1 - automatic JSX, plugins, DevTools, and more
https://deno.com/blo[...]
2022-09-10
[22]
웹사이트
Announcing Deno SaaSKit: an open-source SaaS template built with Fresh
https://deno.com/blo[...]
2022-04-04
[23]
웹사이트
Announcing Deno 2
https://deno.com/blo[...]
2024-10-27
[24]
웹사이트
Deno Is Ready for Production
https://www.infoq.co[...]
2020-07-01
[25]
웹사이트
Modules: ECMAScript modules | Node.js v17.6.0 Documentation
https://nodejs.org/a[...]
[26]
웹사이트
Deno - A modern runtime for JavaScript and TypeScript
https://docs.deno.co[...]
[27]
웹사이트
Modules: ECMAScript modules | Node.js v17.6.0 Documentation
https://nodejs.org/a[...]
[28]
웹사이트
Deno - A modern runtime for JavaScript and TypeScript
https://docs.deno.co[...]
[29]
웹사이트
Deno.js in Production. Key Takeaways.
https://medium.com/@[...]
2022-05-16
[30]
웹사이트
Documentation
https://github.com/s[...]
2022-03-03
[31]
웹사이트
Deno raises $21M
https://deno.com/blo[...]
2022-06-21
[32]
웹사이트
Releases
https://github.com/d[...]
2021-01-14
[33]
웹사이트
Releases
https://github.com/d[...]
[34]
웹사이트
Releases
https://github.com/d[...]
[35]
웹사이트
Contributors to denoland/deno
https://github.com/d[...]
GitHub
2020-05-15
[36]
웹사이트
Deno: Secure V8 TypeScript Runtime from Original Node.js Creator
https://www.infoq.co[...]
InfoQ
2019-11-18
[37]
웹사이트
Node.jsに関する10の反省点
https://www.youtube.[...]
YouTube
2019-11-18
[38]
웹사이트
Deno Manual
https://deno.land/ma[...]
deno.land
2019-11-18
[39]
웹사이트
Ryan Dahl’s Node.js regrets lead to Deno
https://www.infoworl[...]
InfoWorld
2019-11-18
[40]
웹사이트
Design Mistakes in Node
https://tinyclouds.o[...]
2019-11-18
[41]
웹사이트
denoland/deno at golang
https://github.com/d[...]
GitHub
2019-11-18
[42]
웹사이트
Suggestion: Look into porting to Rust and using Tokio
https://github.com/d[...]
GitHub
2019-11-18
[43]
웹사이트
Protobuf seems like a lot of overhead for this use case?
https://github.com/d[...]
GitHub
2019-11-18
[44]
웹사이트
Replace flatbuffers
https://github.com/d[...]
GitHub
2019-11-18
[45]
웹사이트
Remove flatbuffers
https://github.com/d[...]
GitHub
2019-11-18
[46]
웹사이트
deno_std
https://github.com/d[...]
GitHub
2019-11-18
[47]
웹사이트
Pronunciation #5707
https://github.com/d[...]
GitHub
2022-08-22
[48]
웹사이트
マニュアル冒頭に発音が記載
https://docs.deno.co[...]
deno.com
2024-01-12
[49]
웹인용
Announcing the Deno Company
https://deno.com/blo[...]
2021-03-29
[50]
웹인용
deno/LICENSE at main
https://github.com/d[...]
2019-07-05
[51]
웹인용
The MIT License
https://opensource.o[...]
2018-09-17
[52]
웹인용
Contributors, denoland/deno, Github
https://github.com/d[...]
2019-07-05
[53]
웹인용
Deno: Secure V8 TypeScript Runtime from Original Node.js Creator
https://www.infoq.co[...]
2021-05-26
[54]
웹인용
A visit to Deno Land with Kit Kelly (JS Party #127)
https://changelog.co[...]
2021-05-26
[55]
웹인용
Node.js에 관해 후회하는 10가지 - Ryan Dahl - JSConf EU
https://www.youtube.[...]
2021-05-26
[56]
웹인용
Deno Manual
https://deno.land/ma[...]
2019-05-17
[57]
웹인용
Ryan Dahl’s Node.js regrets lead to Deno
https://www.infoworl[...]
InfoWorld
2018-06-21
[58]
웹인용
denolib/awesome-deno
https://github.com/d[...]
2021-05-27
[59]
웹인용
denoland/deno - golang tree
https://github.com/d[...]
2021-05-27
[60]
웹인용
Suggestion: Look into porting to Rust and using Tokio · Issue #205 · denoland/deno
https://github.com/d[...]
2021-05-27
[61]
웹인용
Tokio
https://tokio.rs/
2021-05-27
[62]
웹인용
Protobuf seems like a lot of overhead for this use case? · Issue #269 · denoland/deno
https://github.com/d[...]
2021-05-27
[63]
웹인용
Replace flatbuffers · Issue #2121 · denoland/deno
https://github.com/d[...]
2021-05-27
[64]
웹인용
Remove flatbuffers by ry · Pull Request #2818 · denoland/deno
https://github.com/d[...]
2021-05-27
[65]
웹인용
denoland/deno_std github repository
https://github.com/d[...]
2021-05-27
[66]
웹인용
Deno 1.0
https://deno.land/v1
2020-05-14
[67]
웹인용
Deno manual - philosophy
https://deno.land/ma[...]
2021-05-27
[68]
웹인용
Deno Is Ready for Production
https://www.infoq.co[...]
2021-05-27
[69]
웹인용
Deno manual - comparison to nodejs
https://deno.land/ma[...]
2021-05-27
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
