- / rw- / rw- / r-- //not directory
d / rwx / rwx / r-x //directory
(?directory-사용자-그룹-나머지)
d directory
r read permission
w write permission
x execute permission
사용자(user) : 파일의 소유자, 파일을 만든 사람
그룹(group) : 여러 사람이 있을 경우, 각 유저에게 권한을 할당하는 대신, 그룹에 권한을 할당하고, 사용자를 그룹에 포함시켜 권한을 제어할 수 있음
나머지(other) : 파일에 대한 액세스 권한이 다른 user, 파일을 만들지 않은 다른 모든 user, global 권한이라고 볼 수 있음
chmod
권한을 변경하는 명령어사용예시
chmod g-r filename # removes read permission from group chmod g+r filename # adds read permission to group chmod g-w filename # removes write permission from group chmod g+w filename # adds write permission to group chmod g-x filename # removes execute permission from group chmod g+x filename # adds execute permission to group chmod o-r filename # removes read permission from other chmod o+r filename # adds read permission to other chmod o-w filename # removes write permission from other chmod o+w filename # adds write permission to other chmod o-x filename # removes execute permission from other chmod o+x filename # adds execute permission to other chmod u+x filename # adds execute permission to user
<> Absolute form
Read // 4
Write // 2
Execute // 1
7 => rwx
6 => rw-
5 => r-x
4 => r--
3 => -wx
2 => -w-
1 => --x
0 => ---
예시
chmod 744 filename
// - rwx r-- r--
API key와 같이 공개할 수 없는 정보를 코드에 포함시키면, API key가 공개될 수 있다
이를 방지하기 위해, API key를 PC에 저장해두고 사용해야 한다
변수에 문자열을 할당하는 것처럼, PC에서 사용하는 변수에 할당하는 것
Linux 기반의 운영체제에서는 시스템 자체에 전역변수를 설정할 수 있다 >> 환경변수
export
를 이용해 환경변수를 설정할 수 있다
export
export
명령어를 입력하면, 이미 기록된 환경변수들을 확인할 수 있음
export name="tae"
와 같이 새로운 환경변수를 추가할 수 있음
이때, 등호(=)의 앞뒤에는 공백이 없어야 함
echo $name
와 같이 echo
명령어로 환경변수 값 확인 가능, 달러사인($)을 붙여 환경변수임을 표시
dotenv
npm 모듈인 dotenv를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있음
node.js의 내장 객체 process.env
를 이용하면, export
로 확인한 내용과 동일한 내용을 객체로 출력
dotenv는 .env파일을 환경변수로 사용할 수 있게 도움
명령어 export
로 적용한 환경변수는 현재 사용 중인 터미널에서만 임시로 사용 가능
Node.js에서는 .env 파일을 만들어 저장하는 방법을 사용
.env 파일에
myname=noh
index.js
const dotenv = require("dotenv");
dotenv.config();
console.log(process.env.myname);
위와 같이 환경변수를 이용해 API key, DB password와 같은 민감한 정보를 저장하고 관리할 수 있음
서로 다른 PC 또는 여러 .env파일에서 같은 변수 이름에 다른 값을 할당할 수 있음
import {a} from b >> 이런식으로 쓰면 a를 제외한 나머지값들은 tree shaking으로 빌드에서 제거된다, 불필요한 요소를 제거함으로 코드량이 줄고, 성능적으로도 좋다
require를 사용하면 불필요한 코드까지 모두 불러들임