엘리스 SW 엔지니어 트랙

[엘리스 SW 엔지니어 트랙 2기 / TIL] Week 05 - ES6 복습, node.js

wookhyung 2022. 5. 9. 20:51
728x90

1. 오늘 공부한 내용  📝

  • ES6 복습
    • Object Shorthand
    function getName(first, last) {
    	let fullName = first + " " + last
    	return {
    		first : first,
    		last: last,
    		fullName: fullName
    	}
    }
    
    function getName(first, last) {
    	let fullName = first + " " + last
    	return {
    		first,
    		last,
    		fullName
    	}
    }
    • Array Destructuring
    const arr = [1, 2, 3, 4, 5];
    const [a, , , b] = arr;
    const [, , , , , c] = arr;
    const [, , , , , d=10] = arr;
    const [e, f, ...restArr] = arr;
    let name1 = "철수";
    let name2 = "영희";
    [name1, name2] = [name2, name1];
    
    • Object Destructuring
    const obj = { a: 1, b: 2 };
    
    const { a, b } = obj;
    const a = obj["a"];
    const b = obj["b"];
    
    const { a: x, b: y } = obj;
    const x = obj["a"]
    const y = obj["b"]
    
    const obj = { 
    	a: 1,
    	b: { c: 2, d: 3 }
    };
    
    const { a, b: { c, d} } = obj;
    const { a, b: { c: e } } = obj;
  •  Node.js란?
    • V8이란 자바스크립트 엔진 위에서 동작하는 프로그램
      • 자바스크립트를 브라우저 뿐만이 아니라 서버에서도 사용하기 위해 만들어짐
      • 논블로킹(Non-blocking) I/O(데이터를 읽어오는 역할)와 단일 스레드(코드를 실행하는 역할 + 이벤트 루프)를 통한 높은 처리 성능을 가짐 
    • V8 엔진 
      • 구글이 주도하여 C++로 작성된 고성능의 자바스크립트 & 웹 어셈블리 엔진
        • 오픈 소스로 공개되어 있고, ECMAScript 표준에 맞게 구현됨
        • 대표적으로 크롬과 Node.js에서 사용되고 있음
        • 내부적으로 동작하는 쓰레드가 별도로 있는 멀티쓰레드
        • 2017년 초에 나온 v5.9 버전부터 현재 구조 방식으로 변경됨
      •  CommonJS
        • 자바스크립트를 서버에서 사용할 수 있게 해준 모듈화 명세를 만든 대표적인 그룹 중 하나
        • node.js의 표준으로 채택되어 있음
// CommonJS
module.exports['add'] = (a, b) => a + b;
module.exports['subtract'] = (a, b) => a - b;

// ECMAScript2015 (ES6)
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;

2. 어려웠던 내용  🤯

지난 주 배웠던 ES6를 복습했던게 오늘 수업의 주 내용이라 크게 어려운건 없었다.

3. 궁금한 내용 / 부족했던 내용  🧐

Node.js를 지금껏 써왔는데 논블로킹이나 단일 스레드와 같은 개념적인 부분은 잘 알지 못했던 것 같다. 당장 이걸 모른다고 해서 개발을 못하는건 아니지만 더 좋은 개발자, 시니어 개발자로 가기 위해서는 결국 알아야 될 내용이니 따로 찾아보고 학습해야겠다.

4. 느낀 점 🤔

직무 특강을 들으면서도 느꼈지만 단순히 기술을 잘 사용하는 것보다는 왜 이 기술을 사용해야 하는가, 어떻게 동작하는가와 같은 개념적인 부분에 의문을 던지면서 학습 해나가는 것이 장기적으로 좋은 방향인 것 같다. 지금까지는 단순히 다른 사람들이 많이 쓰니까, 좋다고 하니까 해서 사용한 느낌도 많다.. 그리고 결국 그 기반에 있는 자바스크립트에 대한 이해도가 가장 중요하다. 라이브러리, 프레임워크 보다는 기본기!