Node.js란?
Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 Javascript 런타임입니다. Node.js는 확장성 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼이며, 작성 언어인 Javascript를 활용하여 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있습니다.
Node.js를 사용하는 이유 중 하나로는 JS를 동일하게 사용하여 서버단 Logic을 처리할 수 있단 점입니다. JS를 사용하기 때문에 새로운 언어를 습득하지 않고도 서버 기술을 빨리 개발하고, 배포할 수 있습니다.
그러나 실제 서버를 개발할 때는 NodeJS만을 가지고 개발하지는 않습니다. Express 혹은 NestJS 프레임워크를 사용합니다. 웹 개발에 편한 기능들을 많이 제공하기 때문입니다.
NPM이란?
- NPM은 노드 패키지를 위한 패키지 매니저입니다.
- Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할과, 패키지 및 설치 및 관리를 위한 CLI를 제공하고 있습니다.
- 또한 패키지 간의 의존성을 관리해줍니다.
꼬리질문 1. package.json
- 실제 작성한 Application 프로젝트의 경우 많은 패키지를 사용하게 되고, 패키지의 버전도 빈번하게 변경됩니다.
- 이때 npm은 package.json 파일을 통해 내가 만든 프로젝트 정보와 패키지의 의존성을 관리합니다.
- package.json에서 설치한 모듈의 dependencies들을 정확하게 하나하나 명시해 놓은 것이 package-lock.json입니다.
꼬리질문 2. Typescript로 작성하다보면 tsconfig.json 파일이 있는데, 이것은 뭘까요??
- 주로 Typescript로 작성한 프로젝트를 Javascript로 컴파일하는데 필요한 컴파일러 옵션을 지정합니다. 주로 컴파일 하는데 필요한 루트 파일과 컴파일러 옵션들을 변경하는데 사용합니다.
- tsconfig.json 파일이 프로젝트에 있다면 tsc 혹은 ts-node 명령어를 그냥 실행 시 해당 json 파일을 읽고, 옵션에 따라 Javascript로 컴파일을 진행합니다.
- 간단한 예시로, 컴파일러 옵션 중 target이 있는데 이는 ECMAscript 버전을 설정할 수 있습니다.
Express란?
Node.js를 사용하는 빠르고 간결한 웹 프레임워크라고 나와있습니다.