Deno를 사용해보자!
글 작성자: Coding Groot
Deno 사용해보기
최근에 JS와 Node.js 공부를 하면서 점점 감당이 안 될 정도로 늘어나는 node_modules이 불편했었다. 내가 공부하는 환경의 특성상 어떤 바이너리나 자료들을 설치하거나 PC에 직접 다운로드하지 못한다. 그래서 주로 replit 같은 곳에서 하는데 인스턴스가 매번 초기화되기도 하고 매번 모듈들을 다운로드하는 것도 오래 걸렸다. 그렇다고 프로젝트 통째로 다 Push 하기도 곤란했다. 그래서 해결책을 찾는 와중 Deno라는 친구를 찾았다. 사용법도 Node.js와 비슷하다고 해서 바로 써봤는데 추가된 것이 몇 개 있긴 하지만 그렇다 하더라도 기본적인 사용법은 금방 익힐 수 있다. 더 찾아보니 장점도 뚜렷하고 마음에 든다. 아직은 알아가는 중이지만 공부하는데 많은 도움이 될 것 같다ㅎㅎ.
Deno란?
A secure runtime for JavaScript and TypeScript.
https://deno.land/
Node.js를 만든 개발자, Ryan Dahl
이 Node.js를 개발하고 아쉬웠던 부분을 개선해서 Rust로 만든 새로운 자바스크립트(JS)/타입스크립트(TS) 런타임이다.
Ryan Dahl
이 발표한 아쉬운 점은 아래 링크에서 찾아 볼 수 있다.
(영상을 보기 귀찮으면 댓글만 참고해도 된다! 사람들이 잘 정리해놓았다)- https://www.youtube.com/watch?v=M3BM9TB-8yA&vl=en
달라진 점
- 기본적으로 타입스크립트(TS)를 지원한다!
package.json
이랑 패키지 매니저(npm)을 없앴다.- 대신
import { serve } from "https://deno.land/std@0.97.0/http/server.ts";
위와 같이 ES Module 방식으로 사용한다.(require()
는 지원하지 않는다고 한다) - npm과 같은 패키지 매니저가 필요 없고 GitHub, GitLab 등 다른 사이트로부터의 링크로 바로 가져올 수 있다.
- 대신
- 이제 무수히 많은
node_modules
파일들로부터 탈출할 수 있다! - 코드 Formatter(
deno fmt
)가 내장되어 있다.- 표준 Formatter가 생겼기 때문에 airbnb, google 등 여러 스타일 가이드로부터 혼동하지 않을 날이....
- 더 보안이 강화되었다. 모든 코드는 샌드박스(분리된 공간)에서 돌아간다!
- 개발을 하다보면 npm으로 유해할지도 모른 여러 코드를 다운로드하고 실행하곤 한다.
- 기본적으로 모든 코드를 샌드박스(분리된 공간)에서 실행하고 파일 시스템이나 네트워크나 환경 변수에 대한 접근 권한은 우리가 명시적으로 주는 방식이다!
- 처리하지 않은 에러에 항상 종료된다.
- 비동기적으로 동작하는 함수는 모두 Promise를 반환한다.
- ...
Deno를 깔아보자
설치법은 운영체제별로 Deno 홈페이지(https://deno.land/)에 잘 설명되어 있다.
Linux 기준으로는 아래와 같다
curl -fsSL https://deno.land/x/install/install.sh | sh
Try Try
한번 Deno를 테스트해보자.
deno run https://deno.land/std/examples/welcome.ts
다른 실행 방법
현재 replit.com에서 Deno 환경을 제공해주고 있다. 아직 beta버전이다. 만약에 한번 간단하게 사용해보고 싶다면 repl을 이용해봐도 좋을 것 같다.
Deno 공식 페이지
참고
반응형
댓글
이 글 공유하기
다른 글
-
웹 문서를 만들기 전에 고민해볼 것들
웹 문서를 만들기 전에 고민해볼 것들
2022.04.17 -
Flask를 CLI에서 실행해야 하는 이유와 환경 세팅하기
Flask를 CLI에서 실행해야 하는 이유와 환경 세팅하기
2021.06.08 -
티스토리 사이드바에 GitHub Contribution Graph 넣는 방법
티스토리 사이드바에 GitHub Contribution Graph 넣는 방법
2020.06.06 -
티스토리 글쓰기에서 완료 버튼 사라졌을 때 해결법
티스토리 글쓰기에서 완료 버튼 사라졌을 때 해결법
2020.05.04