설치와 버전 확인

공식 문서는 macOS·Linux·Windows의 x64·arm64 경로를 안내합니다. OS·CPU에 맞는 방법을 읽고 실행 파일을 준비한 뒤 deno --version으로 확인합니다. 다른 셸의 PATH나 별도 기기에 설치한 도구와 혼동하지 않습니다.

이 글에서는 실제 설치하지 않았습니다. Deno가 준비된 것과 프로젝트의 의존성·환경이 준비된 것은 별도입니다. 기존 Node 프로젝트의 파일을 먼저 바꾸기보다 새 시험 폴더에서 시작합니다.

실행 중 권한의 의미

파일 읽기·쓰기·네트워크·환경변수 등은 필요한 범위를 정해 허용합니다. 예를 들어 파일 하나를 읽는 작업에 전체 디스크 쓰기 권한까지 필요한 것은 아닙니다. 거절이나 질문이 나왔다면 어떤 자원에 접근하려는지 확인합니다.

정적 모듈 그래프를 로드하는 단계에는 별도 규칙이 있습니다. 공식 문서는 정적으로 확인 가능한 import의 파일·원격 모듈 로딩과 실행 중 API 접근을 구분합니다. “허용 인수가 없으니 어떤 네트워크·파일 접근도 전혀 없다”라고 설명하지 않습니다.

작은 파일 읽기 예시

개인 자료가 없는 시험 폴더에 직접 sample.txt를 만들고, 다음 내용을 read.ts로 저장하는 자체 예시입니다.

const text = await Deno.readTextFile('./sample.txt');
console.log(text.trim());

다음 두 명령은 권한 차이를 비교하기 위한 것입니다. 실제 실행 결과가 아니라 예상 동작을 설명합니다.

deno run --no-prompt read.ts
deno run --no-prompt --allow-read=./sample.txt read.ts

오류와 정상 결과 구분

첫 명령은 실행 중 파일 읽기 권한이 없어 거절될 수 있습니다. 두 번째는 해당 시험 파일 읽기를 허용합니다. 파일이 실제로 없거나 경로가 틀렸다면 권한을 줘도 다른 오류가 남을 수 있습니다.

상태 먼저 볼 것
명령을 못 찾음 설치·PATH·현재 셸
권한 거절 요청 자원과 허용 범위
파일 없음 실제 위치·현재 작업 폴더
내용 출력 의도한 시험 파일인지

스크립트 자체를 로드한 것과 Deno.readTextFile의 실행 권한을 구분하는 것이 이 사례의 목적입니다.

npm 프로젝트는 별도 검토

패키지가 파일·환경변수·네트워크를 사용하면 그 범위도 확인합니다. -A는 모든 권한을 여는 선택이므로 원인 확인을 대신하는 기본 해결책으로 사용하지 않습니다. 특히 하위 프로세스·네이티브 코드 권한은 경계를 따로 읽습니다.

공식 설치·보안 모델과 자체 파일 읽기 예시를 검토했습니다. 실제 Deno 설치·명령 실행·파일 읽기·권한 부여·패키지 설치는 미실행입니다. 개인 파일·계정·셸 설정도 사용하지 않았습니다.

목적별 가이드

하려는 일 가이드
npm·기존 Node 의존성 확인 Deno npm 호환
다른 런타임 확인 Bun
Node 환경 준비 Node.js

참고 자료