# 1. Environment Setup

> **\[MUST] For this tutorial, you must follow the versions specified on the** [**first page**](https://docs.klaytn.foundation/dapp/tutorials/count-dapp#testing-environment) **when you are setting up the environment. Please change the node version to 10.16.0 by using nvm before downloading caver-js.**

## 1) Node.js (npm) 설치 <a href="#id-1-install-node-js-npm" id="id-1-install-node-js-npm"></a>

* Node.js (npm)는 다음 공식 사이트에서 다운로드할 수 있습니다: <https://nodejs.org/>
* Install the package by clicking the download file.
* Type `$ node --version` in your terminal to verify `node` has been successfully installed.

  ```
    v10.16.0
  ```

⚠ At the time of writing, the latest LTS version that is compatible with `caver-js` is 10.16.0. If you have a higher node version, `caver-js` cannot be installed. 안정적인 환경을 설정하려면 Node를 다시 설치하거나 [NVM (Node Version Manager)](https://github.com/nvm-sh/nvm)를 사용하세요.

## 2) 트러플 설치 <a href="#id-2-install-truffle" id="id-2-install-truffle"></a>

Truffle is a great tool for compiling and deploying contract files.

> **Use `nvm` to set the node version to 12.0.0 only if you are using truffle.**

* Type `$ nvm install 12.0.0`
* Type `$ nvm use 12.0.0`
* Type `$ sudo npm install -g truffle` in your terminal to install truffle.
* Type `$ truffle version` in your terminal to verify `truffle` has been installed successfully.
* (**Deploy your smart contract by using truffle**)
* Type `$ nvm use 10.16.0` to come back to node v10.16.0 after using truffle.

⚠ 현재 버전이 5보다 낮은 경우 트러플 버전 5를 설치하세요. `$ sudo npm install -g truffle@5`
