본문 바로가기

book

node.js 프로젝트 투입 일주일 전

과연 신규 프로젝트가 진행되기 일주일전에 업무를 할당 받았다면..

어떤 기분일까? 단독으로 하지 않으니, 기본적으로 공통 모듈이나,

Co-Work하시는 분들이 어느정도 기본적인 구조는 구성해 놓았을거 같다.

 

시중에 node.js로 판매되고 있는 책은 상당히 많다.

그많큼 인기가 많고, javascript라는 공통적인 사항을 이용해서 Backend / FrontEnd 모두 커버하니 얼마나 좋은가?

 

또 javascript 로 기존에 Desktop의 S/W를 개발을 할수 있는 시대이다.

https://www.electronjs.org/ 을 이용하여서 우리가 많이 사용하고 알고 있는 Slack, VS-Code, Figma에서

사용되었다고 하니 더욱 더 활용성이 높아지는것 같다.

 

내가 책을 접근하는 기준은

JavaScript 를 중급으로 한다는 가정하에 이 책을 살펴보려고 한다.

Web에 대해서 기본적으로 Request / Response에 대한 개념을 알고 있다고 전제한다.

 

"책 서문에서도 node를 처음 시작하는 입문자 및 실제 프로젝트에서 많이 사용하는 기능을 알고 싶은 개발자 대상이다."

책의 페이지 수는 P.347이다. 두꺼운 책은 아닙니다. (node.js의 모든 내용을 다루지 않는다고 언급되어 있습니다.)

 

 

책의 목차 살펴보기

Chapter 세부 목자 보면서 예상되는 내용 (책의 내용을 예상해보면, 해당 Chapter의 내용 이해에 좀더 좋을거 같습니다)
Chapter 01. Node.js node의 정의 및 특징 / npm의 개념을 설명할거 같다.
node가 V8 javascript엔진을 가지고 있다는건 알고 있는데, 
어떤 구성을 가지고 있는지 알 수 있을거 같다.
Chapter 02. 개발환경 구성 vs-code, node.js LTS버전 설치, vs-code에서의 plug-in설치여서
개발과 관련된 부분이 아니고, 대부분 클릭을 통해서 진행되는
환경구성 부분인거 같다.
Chapter 03. 서버 프로그램을 위한 자바스크립트 javascript의 문법에 대한 설명이 있는거 같다.
let,const 부터 Class, Promise등 
몰랐던 개념이나, 전반적으로 다시한번 문법을 익히는데 좋을거 같다.
Chapter 04. Node.js 시작하기 node실행하는 부분이여서 크게 어려운 부분은 없을거 같다.
Chapter 05. Node.js 내장 모듈/객체 node 에서 제공하는 모듈/객체에 대해서 언급을 한다.
다른책에서는 해당 부분이 좀더 다루는 부분이 많을거 같다.
중요한 개념으로 생각하신 부분 위주로 언급되었을거 같다.
Chapter 06. json-server 이용하기 REST-API사용을 위한 기능 같다.
GET / POST / PUT / DELETE요청에 대해서 실습해 볼수 있을거 같다.
Chapter 07. Express 서버 구축하기 node를 이용한 Web-Framework라고만 알고 있다.
웹서비스를 하기 위한 F/W이라고 생각이 든다.
6장에 json-server는 Express없이 구동이 되는건지 체크해 봐야겠다.
Chapter 08. 데이터베이스 사용하기 Mysql / MongoDB 2가지 예제가 있다.
2가지 DB타입별로 db-connection을 해볼것 같다.
Chapter 09. 애플리케이션 운영과 고성능 웹을 위한 Node.js 업무에서 주로 사용하는 기능이 언급되어 있다.
로그관리 / 메일링 / 스케줄러 / 엑셀 / 웹소켓 / 크롤링 등등
다양한 방법으로 개발이 가능하지만, 좋은 샘플 예제가 될거 같다.
Chapter 10. Node.js 미니 프로젝트: 제품 판매 웹앱 구현 node.js+Express 에 대한 실습

node.js 환경구성

node.js는 서버 환경구성이 매우 용이하다

npm이라는 node package manager에서 python의 pip install~ 과 같이 쉽게 설치가 가능하다.

이러한 개발 편의성은 spring에서도 maven이나, grandle과 같은 build-tools의 편리한 변화까지 영향이 주었을거라고 생각이 든다.

1장,2장,4장등을 통해서 쉽게 node개발 환경을 구성할수 있다.

 

8장에서 db를 설치하고 환경구성하는 부분이 좀 자세히 설명되어 있는 부분이 있다.

mac, window에서 mysql 8.x버전을 설치하고, 최초 설정해야 하는 비밀번호 설정 및 계정생성등의 설명은 

처음 환경구축을 연습하는 사용자들에게 도움이 될거 같다.

추가적으로 node에서 많이 연동하기 사용하는 mongodb도 mac, window환경에서 설치방법을 설명하고

기본적인 스키마 모델 생성 및 문서추가/삭제/수정/검색의 항목을 언급한다.

 

node 프로젝트에서 필요한것

기본적으로 node를 사용하는경우, REST-API개발을 위해서 express를 통한 server-side 기능일것으로 생각된다.

그러면 기본적으로 2가지 부분이 개념학습이 필요하다.

  • node에서 기본적으로 제공하는 내장 모듈과 객체
  • Rest-API개발을 위한 방법
    • 8장에서 DB를 설치하면서, REST연동에 대한 부분을 소개한다.
    • 10장에서 express를 통한 연동 부분을 소개한다.
      • Test서버 환경
        • 6장에서 json-server를 통한 가상서버 구축
        • POST-Man의 mockup서버 구축등이 설명되어 있다.
  • 유용한 모듈 설명
    • 9장에서 많이 사용되어지는 유용한 기능에 대해서 설명을 한다.
      필요한 기능을 잘 활용하면, 원하는 기능을 빠르게 개발할수 있을거 같아서 도움이 될거 같다.
    • 로그 관리
      • 로그 관리는 서버의 숙명, 반드시 해야지 disk full 관리가 되고 오류 및 서비스 상태에 용이합니다.
      • > npm install winston
    • 메일링 서비스
      • 메일은 고객과 소통하는 기본서비스라고 생각합니다.
      • > npm install nodemailer
    • 작업스케줄
      • 배치처리,주기적이 동작을 하기 위해서 필요한 기능
      • > npm install node-cron
    • 엑셀파일 처리 : > npm install xlsx (추가로 exceljs도 있음)
    • iCanlender 이벤트 생성 : > npm install ics
    • 웹소캣 : > npm install socket.io socket.io-client
    • 크롤링
      • 요즘은 워낙 다양한 오픈소스가 있습니다. (python기반의 beautifulsoup 과 같은 기능입니다.)
      • > npm install axios cherrio
    • forever
      • 운영시 node.js의 비정상 종류등을 체크후 재실행 하기 위한 기능
      • > npm install forever
    • 클러스터 모드 / pm2
      • node의 단일 스레드로 동작하는 방식을 CPU수만큼 fork해서 사용하여서 병렬처리가 가능하도록 하는 방법

 

책을 통해서 node.js의 전반적인 동작 방식 및 개발을 위해서 필요한 부분을 Quick-Guide형태로 진행되지만

중간중간에 저자분이 현업에서 사용하는 방식 및 사용방법에 대한 의견이 있어서 도움이 됩니다.

9장에서 언급되는 유용한 기능 npm 모듈은 현업에서 잘 사용하면 좋을거 같습니다.

node.js에 기본 동작을 파악하고, 더 필요한 부분은 API 및 검색을 통해서 조금더 깊게 학습하는 방식도 좋을거라고 생각됩니다.