개념 정리 14

polyfill(폴리필)이란?

브라우저에서 지원하지 않는 코드를 사용 가능하도록 하게 하는 코드 조건이나 플러그인(추가 기능)을 의미한다. 예를 들어 ES5에 존재하지 않는 ES6의 Map, Promise, Set, Object.assign() 등을 사용 가능한 객체로 만들어준다. 브라우저(특정 엔진)에서 지원하지 않는 코드를 사용할 때 바벨(babel)과 같은 트랜스파일러를 사용하는데 babel에서 사용되던 babel-polygill 모듈이 Babel v7.4.0부터 더이상 사용되지 않으므로 ECMAScript 기능을 대체하는 core-js/stable, 제네레이터 함수 기능을 대체하는 regenerator-runtime/runtime을 사용한다. core-js core-js Standard library www.npmjs.com ..

개념 정리 2022.01.13

[Node] NVM? 노드 버전관리

NVM(Node Version Manager)는 Node.js의 버전을 변경, 사용해야 할 때 사용할 수 있는 도구이다. NVM은 협업을 하거나 다양한 프로젝트를 동시에 진행할 때 개발툴의 버전 호환문제를 해결하기 위해 사용한다. 루비의 rvm, rbenv나 파이썬의 pyenv도 같은 기능을 하는 도구이다. 아래 설명은 macOS 기준이다. (macOS 10.15부터 기본 셸은 zsh임) 👉 설치 방법 macOS 기준으로 nvm을 설치하기 가장 간단한 방법은 패키지 관리자인 Homebrew를 사용하는 것이다. brew -v 명령어를 입력해 설치여부를 확인한다. 이미 설치가 되어있다면 설치되어있는 Homebrew의 버전 정보를 확인할 수 있으며, 설치되지 않은 경우 아래와 같은 내용을 확인하게 될 것이다...

개념 정리 2022.01.07

인터프리터 언어와 컴파일 언어

인터프리터(스크립트) 언어 개발자가 작성한 코드를 기계어로 변환 과정없이 한줄 한줄 해석하여 실행하는 언어임. 즉, 한줄이 바뀔 때마다 즉시 검사하는 방식이다. 한문장씩 즉시 명령어를 검사하다보니 언어 속도가 빠르지 않다. 번역과 실행을 순차적으로 동작시키기 때문에 1개의 액션이 동작하게 된다. ex) R, Python, PHP, Javascript 컴파일 언어 개발자가 작성한 코드를 모두 기계어로 변환한 후에 기계어 코드로 실행하게 됨. 즉, 작성한 코드나 명령어를 한꺼번에 모아서 한번에 실행하는 방식이다. 한번에 하다보면 처음에는 오래 걸릴 수 있으며, 메모리도 많이 먹게 된다. 하지만 컴파일 이후에는 실행이 빠르며, 한번에 변환을 다 해줬기 때문에 그 이후로는 변환할 필요가 없다. 실행 전 번역이 ..

개념 정리 2022.01.03