deno로 만드는 서버
deno
가 2020년 5월 14일
v1.0.0
이 릴리즈 되었습니다. deno
와 node
를 비교하며 웹페이지에 Hello World
를 띄워보도록 하겠습니다.
node!
우선 node
를 이용하여 Hello World
를 띄우도록 하겠습니다.
1 | mkdir node && cd node && npm init -y |
node
폴더를 만들고 node
플더로 이동하여 npm init
으로 package.json
파일을 생성합니다.
1 | npm install express |
npm
으로 express
를 설치합니다.
1 | touch index.js |
index.js
파일을 생성합니다.
1 | const express = require('express'); |
위 코드를 index.js
에 작성합니다. npm
으로 설치된 express
를 app
으로 실행하고 8000
번 port
를 이용하여 앱을 실행합니다.
1 | node index.js |
터미널에서 node
를 이용하여 index.js
를 실행합니다.http://localhost:8000
로 접속하면 Hello World
를 확인 할 수 있습니다.
deno!
deno
를 이용하여 Hello World
를 띄우도록 하겠습니다.
1 | mkdir deno && cd deno && touch index.ts |
deno
폴더를 생성하고 deno
폴더로 이동하여 index.ts
파일을 생성합니다.
1 | import { serve } from 'https://deno.land/std/http/server.ts'; |
위 코드를 index.ts
에 작성합니다. https://deno.land/std/http/server.ts
url
을 이용하여 코드를 불러와 serve
함수를 받고 8000
포트를 사용하고, 응답을 body
에 Hello World
로 보냅니다.
1 | deno index.ts |
deno
로 index.ts
를 실행하면 error: Found argument 'index.ts' which wasn't expected, or isn't valid in this context
에러가 발생합니다. deno
는 node
와는 다르게 옵션을 추가하여 실행해야 합니다.
1 | deno run --allow-net --allow-read index.ts |
deno
는 docker
와 비슷하게 실행해야하는데 --allow-net
옵션으로 네트워크 통신을 허용해야하고 --allow-read
옵션으로 index.ts
파일을 읽을 수 있도록 허용해야합니다.
처음 deno
로 파일을 실행하게되면 Compile file:///Users/username/Desktop/deno/index.ts
와 같이 컴파일을 한 후 파일이 실행됩니다.
정리
deno
는 node
와는 다르게 package.json
파일, node_modules
폴더 등이 필요없고 url
을 통해 직접 코드를 불러 올 수 있습니다.
1 | deno -h |
2020년5월16일
현재 deno
의 문서는 아직까지 부족 한 것 같습니다. Docs: https://deno.land/std/manual.md
의 문서 역시 아래와 같이 링크가 깨져있어 볼 수 없습니다.
아직 v1.0.0
이기 때문에 마이너 업데이트가 필요해 보입니다. 그래도 npm
을 벗어난 개발이 매우 흥미롭습니다.