Deno

Jaeseok Han·2023년 8월 7일
0

TypeScript 기초

목록 보기
9/9

git

Deno, Node.js

DenoNode.js를 개발한 Ryan Dahl이 만든 최신 프레임워크

Deno는 Node보다 더 나은 패키지 관리 시스템과 안전한 런타임을 갖도록 하였다.

공통점

패키지를 관리와 서브파티 모듈을 사용하는 시스템 표준 라이브러리를 제공
V8엔진으로 구축

차이점

Typescript 측면으로 보았을 때 Node.js는 .ts 확장자를 js로 변환하여 실행하지만 Deno는 자체적으로 ts 확장자를 언어로 제공하기 때문에 변환없이 구동이 가능하다.

Deno 사용해보기

1. typescript 실행

index.ts

const add = (a: number, b: number): number => {
    return a + b;
}
console.log(add(1, 2));

deno run index.ts
->3
커맨드 만으로 실행이 가능한다

2. 환경 변수 및 보안적인 부분

.env

TEST="fdsafdsa"

file.ts

async function readPrivate() : Promise<void> {
    const key: string = await Deno.readTextFile("key.txt");
    console.log(key);
}
readPrivate();
console.log(Deno.env.get("TEST"))
Deno.writeTextFile("key.txt", "악성코드 심기")

deno run file.ts 를 할경우

바로 읽을 수 없다.
y : 허용 , n : 비허용

해당 방법으로 키값이나 환경변수 값을 외부에서 접근을 방지할 수 있음

deno run --allow-read --allow-env --allow-write file.ts

--allow-read : 읽기 허용
--allow-env : 환경변수 접근 허용
--allow-write : 수정 허용

deno.json

npm은 package.json 파일에 프로젝트에 대한 설정파일을 담당하고 있는데 deno에서는 deno.json이 설정파일을 담당한다.

1. 예시

{
    "compilerOptions": {
        "allowJs": true
    },
    "tasks": {
        "start" : "deno task hello && world",
        "hello" : "deno run --allow-read --allow-write --allow-env file.ts",
        "world" : "deno --allow-env file.ts"
    }

package.json 처럼 compilerOptions 등 공통되게 사용가는하며, scripts 부분은 tasks로 설정이 가능하다.

deno task 커맨드 입력시 Task의 설정된 내용을 모두 확인 가능

사용법
deno task start

module

deno의 경우 node_module 없이 import를 하여 사용가능
(node_module, package.json 삭제 후)

index.ts

import {config} from "https://deno.land/x/dotenv/mod.ts";
console.log(config);
deno run index.ts

await

async 입력없이 최상단에 await 구문 사용 가능

fetch.ts

const result = await fetch("https://catfact.ninja/face")
.then((res) => res.json())
.then((data) => console.log(data)) 

커맨드 입력

deno run fetch.ts

deno는 외부와 연결이 되지 않도록 막는 기능이 있음
업로드중..

0개의 댓글