[개발환경] Node.js

[개발환경] Node.js

Node.js

단순히 브라우저 환경이 아닌 환경에서도 자바스크립트를 실행할 수 있게 해주는 자바스크립트 런타임이다.

# 런타임 : 프로그래밍 언어가 동작하는 환경

Node 버전 전환

nvm use 12.14.1

Node 버전 확인

node --version

설치되어 있는 Node 버전 삭제

// 12.14.1 이외에 자기가 원하는 버전 삭제 가능 nvm uninstall 12.21.0

왜 프론트엔드는 Node.js를 필요하게 되었는가?

1. 최신 스펙으로 개발할 수 있다.

자바스크립트 스펙의 빠른 발전에 비해서 브라우저의 지원 속도는 항상 뒤쳐진다. 아무리 편리한 스펙이 나오더라도 이것을 구현해주는 징검다리 역할, 이를테면 바벨 같은 도구의 도움없이는 부족하다. 더불어 웹팩, NPM 같은 노드 기술로 만들어진 환경에서 사용할 때 비로소 자동화된 프론트엔드 개발환경을 갖출 수 있다.

마찬가지로 Tyepscript, SASS 같은 고수준 프로그래밍 언어를 사용하려면 전용 트래스파일러가 필요하다. 물론 이것 역시 Node.js 환경이 뒷받침 되어야 우리가 말하는 프론트엔드 개발 환경을 만들 수 있다!

2. 빌드 자동화

과거처럼 코딩 결과물을 브라우저에 바로 올리는 경우는 거의 없다.

파일을 압축하고, 코드를 난독화하고, 폴리필을 추가하는 등 개발 이외의 작업을 거친 후 배포한다.

Node.js는 이러한 일련의 빌드 과정을 이해하는데 적지않은 역할을 하고 있다.

이 뿐만 아니라 라이브러리 의존성을 해결하고, 각종 테스트를 자동화하는데도 사용할 수 있다.

3. 개발 환경 커스터마이징

각 프레임워크에서 제공하는 도구를 사용하면 손쉽게 개발환경을 갖출 수 있다.

React.js의 CRA(create-react-app), Vue.js의 vue-cli를 사용해서 말이다.

그러나 개발 프로젝트는 각자의 형편이라는 것이 있어서 툴을 그대로 사용할 수 없는 경우도 빈번하다.

커스터마이징 하려면 Node.js 지식이 필요하다.

만약 자동화된 도구를 사용할 수 없는 환경이라면 직접 환경을 구축해야 하는 상황에 놓일 수도 있다.

이렇기 때문에 Node.js는 프론트엔드 개발에서 필수 기술로 자리매김하고 있다.

NPM

전 세계의 개발자들이 만든 다양한 기능(패키지, 모듈)들을 관리하는 매니저이다.

한번 설치된 패키지들은 package.json의 "devDependencies" { } 에 남게 되고,

이를 기반으로 삭제한 모듈을 다시 설치할 수 있다.

모듈 관련 json 파일은 package.json과 package-lock.json으로 나뉜다.

우리가 직접 관리할 수 있는 json 파일은 package.json 파일이다.

package-lock 파일은 node에서 자동으로 관리하는 파일임으로 수정하는 것을 권장하지 않는다.

(이는 package.json 파일도 마찬가지이나, 필요없는 모듈은 파일 내에서 제거 해도 된다.)

from http://riviere.tistory.com/89 by ccl(A) rewrite - 2021-12-27 10:01:02