ection 3 - 49일차

1. Toy - 22일차

  • M x N 배열을 N번 회전
  • 재귀와 Queue 자료구조를 통해 해결하였다. 2번의 2중 반복문과 N번만큼의 재귀가 사용되는 듯 하다
  • 레퍼런스는 N번을 4로 나누어 0으로 떨어질 경우 제자리기 때문에 입력 배열을 그대로 반환하였다. 그 점은 생각못했다..
  • 또 N이 홀수와 짝수일 때를 나누어 MxN, NxM으로 나누어 생각하였다
  • 나누어진 상태를 새로운 배열에 담아 상황에 맞게 사용될 수 있도록 짜여진 코드였다
  • 만들어진 테스트 코드가 없었다면, 분명 에러를 겪었을만 하다. 짜여진 테스트 코드가 없더라도 발생할 수 있는 에러를 생각하자

2. 사용 권한

- / 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 권한을 변경하는 명령어
    <> Symbolic method
    Access Class => u(user) g(group) o(other) a(all: u,g, and o)
    Operator => +(add access) -(remove access) =(set exact access)
    Access Type => r(read) w(write) x(execute)

사용예시

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--

3. 환경변수

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파일에서 같은 변수 이름에 다른 값을 할당할 수 있음

review

  • 요즘 프로젝트가 단순한게 너무 많다~

require vs import

import {a} from b >> 이런식으로 쓰면 a를 제외한 나머지값들은 tree shaking으로 빌드에서 제거된다, 불필요한 요소를 제거함으로 코드량이 줄고, 성능적으로도 좋다

require를 사용하면 불필요한 코드까지 모두 불러들임

좋은 웹페이지 즐겨찾기