DOCKER

  • https://docs.docker.com/get-started/

Node

1. create react app

  • https://velopert.com/1225

  • https://github.com/tomsoderlund/nextjs-express-mongoose-crudify-boilerplate/blob/master/server/index.js

ES2015 - 객체

새로운 객체 선언 예시.

  const a = 1;
  const b = 'Wow';
  const sayYeah = () => {
    alert('Yeah'); 
  };
  const object2 = {
    sayHello() {
      alert('hello');
    },
    sayYeah,
    [a + 3]: 'four', // 4: 'four'
    ['say' + b]() {
      alert('Wow');
    }  // sayWow() { alert('Wow') }
  };

1. 메소드 선언 간략화

  • function 생략 가능.
  • 참조하는 변수의 이름과 속성의 이름이 같은 경우 (위에서 sayYeah) { 이름: 이름 } 대신 { 이름 } 한 번 만 써도 되도록 변경
    ex)
    { data: data, result: result, object: object }  => { data, result, object }
    

    2. 동적 속성 생성

  • 속성의 이름에 변수의 값이 사용가능. ex)
          [a + 3]: 'four', // 4: 'four'
          ['say' + b]() {
            alert('Wow');
          }  /
    

ES2015 - 변수

const, let

1. 블록스코프

es2015에 추가된 변수 타입으로 블록스코프를 따른다. (var : 함수 스코프)

  if (true) {
    var x = 3;
  }
  console.log(x); // 3
  if (true) {
    const y = 3;
  }
  console.log(y); // Uncaught ReferenceError: y is not defined

2. TDZ(Temporal Dead Zone)

  • 기존 var는 호이스팅이라고 사용하는 부분이 더 위에있어도 동작했지만, const와 let은 접근이 불가능하다.
    (function() {
      console.log(x);
      var x = 10;
    })(); // undefined;
    
    (() => {
      console.log(z);
      const z = 10;
    })(); // Uncaught ReferenceError: z is not defined
    
  • 전역 스코프에 선언하더라도 window에 등록되지 않는다.
    var m = 1;
    console.log(window.m); // 1
    const n = 2;
    console.log(window.n); // undefined
    

const와 let의 차이

  • 이름에서 유추하겠지만, const는 한 번 초기화하면 다른 값을 대입할 수 없다. 단, const에 할당된 객체나 배열의 요소를 바꾸는 것은 막지 않습니다. 즉 데이터의 주소값만 고정하는 겁니다.

     const c = [1, 2, 3];
     c[0] = 4;
     c; // [4, 2, 3]
     const d = {name: 'Zero'};
     d.name = 'One';
     d; // {name: 'One'}