저는 항상 Node.js 환경에서 개발을 시작하고 있습니다
항상 제 노트북에서 개발하다가 취업 후 회사 데스크톱으로 시작하려고하니...
제가 어떻게 node.js를 세팅 했는지 다 까먹은거죠...? 멍청이인가...
진짜로 저는 강의에서 시킨대로만 했던걸까.... 너무 바보스럽더라고요
그래서 이제 제가 아무 생각없이 따라하기만 했던 설정들을
하나하나 짚어가며 왜? 사용하는지? 에대해 알아보려고 합니다
Node.js 설치하기
nodejs.org/ko/download/ 사이트 접속 후, 본인 환경에 맞게 다운로드 하시면 됩니다
되도록이면 LTS 버전으로 다운받는걸 추천드립니다
제대로 설치가 되었다면 cmd 또는 터미널을 열어서 node -v 라고 치시면 버전이 뜰 겁니다
(node.js를 다운받으면 npm도 자동으로 설치됩니다 터미널에 npm -v 라고 치시면 버전이 뜹니다!)
프로젝트 초기화
프로젝트를 시작할 폴더를 만들었다면 npm 패키지로 지정을 해줘야합니다
(간단한 이해를 위해 디렉토리=폴더=패키지 이런 개념으로 생각하면 될듯하다...?)
cmd 또는 터미널에 npm init -y 이라고 치면 됩니다
그러면 위와 같은 내용의 package.json이 생성됩니다
원하는 모듈 생성하기
모듈이란? - 독립된 기능을 갖는 함수/파일들의 모임
Node.js에는 다양한 모듈들이 있습니다. 직접 작성해서 라이브러리화 시켜도 되고
(ES6 문법 import, export로 불러오고 저장할 수 있죠 babel다운을 안했다면 ES5 이하 문법으로 작성해야합니다)
외부 라이브러리를 다운받아 써도 됩니다! (npm install (nodule name) 식으로 다운)
저는 매우매우매우매우 유명한 Express 모듈을 사용해보려고 합니다.
Express란? - node.js로 서버를 개발할때 빠르게 개발할 수 있게해주는 프레임워크입니다. (node.js로 웹서버 개발시 http를 직접 작성해야할겁니다) 자바의 스프링, 파이썬의 장고와 비슷한 개념입니다
시작은 cmd 또는 터미널에 npm i express 라고 입력하시면 됩니다
그러면 node_modules와 package-lock.json 파일이 생성됩니다
Node.js에서 ES6 문법 사용하기
저는 Node.js를 인터넷 강의로 첫 입문했습니다. 거기서는 당연하게 ES6문법을 사용했고
그냥 하라는대로 다운받고... 했던 저는 혼자 진행하려니 import 가 안먹히는 겁니다
그래서 왜? 했더니 Node.js에서는 ES6 문법을 완벽히 지원하지 않더군요
Node.js는 common.js 방식을 따른다고 합니다. 그래서 예제, 자료들을 찾다보면
module.exports / require 식의 자료를 많이 마주칠겁니다.
(저는 import, export로 하면 되지 저것들은 뭐지? 뭐가 다른가? 싶었는데 이거였습니다...)
쨌뜬 Node.js에서 ES6 문법을 사용하려면 babel을 다운받아야합니다!
- npm i @babel/node : node.js 에서 babel을 사용할 수 있게 해줍니다
- npm i @babel/core : transform과 관련한 기능들 제공합니다
- npm i -D @babel/cli : 개발 의존성으로 바벨 커맨드 라인 도구입니다
- npm i -D @babel/preset-env : 각 브라우저, 노드 환경에 맞게 코드를 변환시킵니다(플러그인 모음집)
- npm i core-js@3 : @babel/polyfill을 개선한 것이라고 합니다..? (ES6 환경을 제공)
이제 .babelrc 파일을 직접 생성하여 babel 환경 설정을 해봅시다!
이렇게 작성해주면 된다! 저게 거의 기본값으로 적는다고 생각하면 되는 것 같습니다ㅎㅎ
(이렇게 설정하는 정확한 해석을 못하겠...)
그리고 package.json에 babel-node를 추가해주시면 됩니다!
nodemon 설치하기
nodemon 란? - node.js는 파일 수정시 실시간으로 반영이 되지 않아서 서버 종료 후 재시작 해줘야하는대요
그런 번거로운 일을 피할 수 있는 nodemon가 있답니다! 저장만하면 자동으로 재시작이 된답니다
cmd 또는 터미널에 npm i nodemon -g 입력해줍니다그리고 package.json에 아래와 같이 추가해줍니다
약간의 딜레이를 줘야하기 때문에 (안그럼 로컬 호스트에서 오류가 생깁니다) --delay 2 추가해줬습니다 (2초 정도 딜레이)
--exec는 다른 프로그램을 실행하고 모니터링을 할 수 있는 옵션인가봅니다 (제대로 모루겠...)
이정도면 편-안하게 작업할 환경이 갖춰진 것 같습니다!
그럼 열심히 작업하러....🐣
'Backend' 카테고리의 다른 글
Nest.js 카카오 REST API 로그인 구현하기 | access token, refresh token (5) | 2024.11.08 |
---|---|
access token, refresh token 토큰 기반 인증 방식 | JWT, HTTP header (8) | 2024.11.05 |
Nest.js 시작하기 (2) | 2024.10.15 |
JJWT 라이브러리 설치 에러 (2) | 2021.10.17 |
❌ Assertion failed: new_time >= loop->time, file c:\ws\deps\uv\src\win\core.c, line 309 | Node.js 에러 (2) | 2020.11.05 |
댓글