메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[리뷰] 디노 첫걸음

dlwjde***

|

2021-04-18

디노 첫걸음

새로운 런타임 디노의 탄생 배경부터 활용법까지 가장 빠르게 만나는 디노 입문서. 디노의 설치 방법과 간단한 타입스크립트 소개, 디노를 활용한 예제를 살펴보며 디노 사용법을 익힌다.

  • 저자 : 페르난도 돌리오
  • 번역 : 우정은
  • 출간 : 2021-03-10

 

deno. node 의 철자 순서를 바꾸면 deno가 된다.

node 창시자가 아쉬움이 있어서 deno를 만들었다고한다.

처음에는 발음에 대한 혼동이 많았다고 한다.

이후에 deno를 만든 라이언 달이 "디노"라고 하고서 부터는 다들 "디노"라고 부른다고 한다.

 

디노로 타입스크립트를 어떻게 활용하는지는 온라인 플레이 그라운드를 이용하면 된다.

online.swiftplayground.run/


개발자가 아니다보니 다른건 잘 모르겠으나 창시자가 node js를 만들고나서 아쉬웠던점은 여러가지가 있었는데 

그 중 보안에 관심이 생겼다.


그래서 책에서 보안관련된 내용을 중점적을 봤다.


- 보안성- 

스마트폰에서 앱을 설치하고 실행하면 특정 권한에 대해 요청을 한다.

이렇듯 사용자의 허락없이 앱이 민감한 정보에 접근할 수 없는 허들이 존재한다.

 

노드에서는 npm에 올라온 모듈을 무조건 신뢰할수밖에 없다고 한다.(코드 실행 제어가 안된다고함. 왜인지는 모르겠음)


예제로 주어진 노드를 실행하면 생각지 못한 파일까지 접근하여 출력하지만

해당 코드를 디노로 구현하여 실행하면 권한이 없는 파일은 읽을 수 없도록 한다.


-보안강화-

모든 권한에 대해 필요한 경우 플래그를 통해 권한이 필요한지 추가하여 코드 진행을 한다.

이건 안드로이드 개발할때 해당 앱에 대한 권한이 필요한지 xml에 넣는거랑 비슷한거같다,


-보안플래그-


allow-all : 말그대로 모든것을 허용. 해당하는 일이 정확하게 알지 못한다면 사용하지 않는것이 좋다고함.

allow-env : 시스템 환경변수 접근할때 사용

allow-hrtime : 정밀한 시간을 측정할때 사용 ex) 10ms > 10.551234 ms

allow-net : 화이트리스트방식으로 네트워크 인터페이스 접근을 허용함. ex) allow-net=tistory.com,daum.net

allow-plugin : 외부 플러그인 사용. 아직은 실험기능이라고함. 

allow-read : 디스크 입출력 허용.

allow-run : 서브스크립트 실행. 권한상승이 될수 있으므로 신중하게 사용해야됨.



-사용가능한 권한 확인-

백엔드 프로젝트를 구현할때 누군가 충분한 권한없이 실행하려고 한다면 전체 프로그램이 마비된다.

디노는 필요한 권한이 없으면 permission denied 예외를 일으킨다.


Deno.permissions로 디노를 실행하기전에 필요한 권한을 획득했는지 확인 할 수 있다.

.query로 확인

.request는 확인 후 권한요청까지 할 수 있다.


node를 잘모르지만 deno에서 강화, 변경되는것을 보니 node로 개발된 시스템에 문제점이 많을수 있겠구나 싶다.

node로 된 CTF문제들이 있는지 찾아봐야겠다.


2009년 개발되어 자바스크립트를 안정적으로 지원했던 백엔드 런타임은 node가 유일했다고 한다.

그 창시자가 2020년에 deno를 만들었는데 과연 백엔드 시장에는 어떤 변화가 생길지 궁금하다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?