저번 주는 Section 2 HA가 있었다. 여태까지 배웠던 것을 기본으로 크게 어려웠던 것이 없었는지, 쉽게 다 풀 수 있었고 통과를 했다. 이 후 Section 3 시작을 했고, 그 시작이 리눅스에서 사용권한과 환경변수에 대해 학습을 했다. 학습을 하면서 배운 것들을 정리를 해보겠다.
ls -l
을 했을 때, 첫 시작이 -
or d
-
: Not directory, 파일을 나타낸다.d
: directory, 폴더를 나타낸다.rwx
의 형태가 3번에 걸쳐 나타나는데, 이는 사용자, 그룹, 나머지에 대한 권한을 표시한다.
chmod
를 통해 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다.
소유자가 다를 경우 관리자 권한을 획득하는 명령어 sudo
를 이용해 권한 변경이 가능하다.
chmod
로 권한을 변경하는 2가지 방법
Symbolic method : +
, -
, =
과 같은 액세서 유형을 표기해서 권한을 변경한다.
- access class : u
(user), g
(group), o
(other), a
(all)
- operator : +
(add access), -
(remove access), =
(set exact access)
- access type : r
(read), w
(write), x
(execute)
chmod (액세스클래스)(연산자)(액세스 타입) filename // ex) go-wx hello.js
Absolute form : rwx
를 3bit로 해석하여, 숫자 3자리로 권한을 표기해서 권한을 변경한다. 2진수로 생각하면 111(7) = rwx
이다.
chmod 744 hello.js // 이것은 user에게 111(rwx), group과 other에게 100(r--) // -rwxr--r--와 같다. 이것은 폴더가 아닌 파일이므로 앞은 -
리눅스 기반의 PC에서는 시스템 자체에 전역변수를 설정할 수 있다. 시스템에 설정한 전역변수를 환경변수라고 하며, export
를 통해 설정할 수 있다.
터미널에 명령어 export
를 입력해 기록된 환경 변수를 확인할 수 있다.
또한 새로운 환경변수를 추가할 수 있다. 등호표시(=) 앞 뒤에는 반드시 공백이 없어야 한다.
export jogi="good"
명령어 echo
와 함께 환경변수를 입력하면, 환경변수의 값을 알 수 있다. 이 때 환경변수 앞에는 달러사인($)을 입력하여, 변수라는 뜻을 터미널에 전달한다.
echo $jogi
npm 모듈 dotenv를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있다.
npm 모듈을 설치하고 사용하기 위해서, 새로운 폴더를 만들고 npm init
을 입력한다. 그리고 npm i dotenv
를 입력해 모듈을 설치한다. 생성된 폴더는 설치할 모듈의 이름과 같아서는 안된다.
mkdir env_variable cd env_variable npm init npm i dotenv
Node.js의 내장 객체 process.env
를 이용하면, 명령어 export
로 확인한 동일한 내용을 사용할 수 있다. ex) console.log(process.env)
process(env)
는 Node.js 환경에서 조회할 수 있다..env
파일을 환경변수로 사용할 수 있게 돕는다.명령어 export
로 적용한 환경변수는 현재 사용중인 터미널에서만 임시로 사용가능하다.
Node.js에서는 파일 .env
를 만들어 저장하는 환경을 사용한다.
.env
파일을 생성하고, 사용하고자 하는 환경변수를 입력한 뒤 저장한다..env
에 저장한 환경변수를 조회할 수 있다.const dotenv = require("dotenv"); dotenv.config() // 이를 통해서, .env를 process.env에 적용할 수 있다. console.log(process.env);
환경 변수를 이용해 API Key, DB password와 같은 민감한 정보를 저장하고 관리할 수 있다. 뿐만 아니라 서로 다른 PC 또는 여러 .env 파일에서 같은 변수 이름에 다른 값을 할당할 수 있다.
이번 유닛을 하면서 확실한 실습은 없었지만, 나중에 DB를 배우게 될텐데 아마 이 때 사용하지 않을까라는 생각을 하게 된다. 사실 오늘 배운 내용은 그렇게 어려운 내용은 없었기 때문에 학습하는데에는 어려움이 없었다. 확실한 것은 오늘 배운 권한과 환경변수를 어디에서 적용시키게 될 지 지켜보고, 이를 제대로 적용시킬 수 있도록 노력을 해야할 것 같다. Section 3의 시작이 나쁘지 않다. 이번 섹션도 잘 해보자.