부제 Node.js의 다양한 모듈을 활용한 웹 서버 개발 실전 노하우
저자 고승원
출간/배본가능일 2021년 12월 29일
정가 26,000원
페이지 364쪽
판형 크라운판 (173 * 230)
ISBN 979-11-6592-117-0 (93000)
이것이 진짜 Node.js 실무 스킬이다
웹 서버 개발 실전 노하우를 한 권으로!
이 책은 철저히 ‘실무’ 위주의 학습서로, Node.js로 서버 애플리케이션을 구축하기 위한 기능만을 다룹니다. 로그 관리 · 이메일 발송 · 스케줄러 · 엑셀 파일 생성 · 웹소켓 · 크롤링 등 저자가 실제 프로젝트에서 가장 많이 사용했던 웹 서버 운영 기능과 실무 노하우를 담았습니다. 또한, Node.js의 다양한 모듈을 활용한 빠른 서버 개발과 SQL 구축 영역을 디테일하게 설명하고 MongoDB와 NoSQL까지 망라합니다.
자바스크립트라는 하나의 언어로 웹 애플리케이션 프런트엔드와 백엔드를 모두 구축해 보세요! 여러분도 풀스택 개발자가 될 수 있습니다.
이 책을 통해 익힐 수 있는 실무 기술
• 웹 서버 구축하기
• Node.js의 다양한 미들웨어 모듈 효과적으로 사용하기
• 클라이언트 요청 체계적으로 관리하기
• 웹 프런트엔드 개발자와 빠르고 효율적으로 소통하기
• 약속된 특정 시간에 작업을 실행하는 스케줄러 만들기
• 전자 메일로 작업 요청, 일정, 할 일과 같은 이벤트 전송하기
• 기업 내 유의미한 데이터를 집계하고 엑셀 파일로 생성하기
• 사용자 인증, 시스템 데이터 리포트 등을 포함한 이메일 발송하기
• MySQL과 같은 RDB, MongoDB와 같은 NoSQL을 연결하고 조회/생성/수정/삭제 등의 데이터 조작하기
고승원
소프트웨어 기술을 통해 세상에 선한 영향력을 주고 싶은 22년 차 소프트웨어 개발자
국내외 기업의 ERP 시스템을 구축하는 UX/비즈니스 컨설턴트로 일하며 서비스 기획부터 개발까지 전 과정에 대한 경험을 쌓았고, 현재는 주식회사 리턴밸류(ReturnValues)의 대표이사를 맡고 있다. 후배들에게 정말 필요한 기술을 전달하자는 사명감으로 블로그와 유튜브 채널 <개발자의 품격>을 통해 60편이 넘는 IT 기술 문서와 유익한 지식을 나누고 있다.
• ㈜리턴밸류 대표이사
• 팬임팩트코리아 기술 전문 위원
• 유튜브: https://www.youtube.com/c/개발자의품격
• 블로그: https://seungwongo.medium.com
• 저서
- 『Vue.js 프로젝트 투입 일주일 전』, 비제이퍼블릭
- 『바닐라 자바스크립트』, 비제이퍼블릭
- 『저는 아직 아이들에게 코딩을 가르치지 않습니다』, 비제이퍼블릭
- 『디자인 씽킹을 넘어 프로그래밍 씽킹으로』, 비제이퍼블릭
- 『The Essentials of Smart Contract Development for Solidity Developers』, 아마존
Chapter 01. Node.js
1.1 Node.js란?
1.2 Node.js의 특징
___ 1.2.1 논블로킹(Non-blocking) I/O
___ 1.2.2 싱글 스레드(Single Thread)
___ 1.2.3 이벤트 루프(Event Loop)
1.3 npm(Node Package Manager)
Chapter 02. 개발환경 구성
2.1 Visual Studio Code 설치하기
___ 2.1.1 맥에서 Visual Studio Code 설치
___ 2.1.2 윈도우에서 Visual Studio Code 설치
2.2 Node.js 설치하기
___ 2.2.1 맥에서 Node.js 설치
___ 2.2.2 윈도우에서 Node.js 설치
___ 2.2.3 터미널 모드 변경
2.3 자바스크립트 개발에 유용한 Visual Studio Code Extension 설치하기
___ 2.3.1 JavaScript(ES6) code snippets
___ 2.3.2 ESLint
___ 2.3.3 Prettier - Code formatter
___ 2.3.4 Live Server
Chapter 03. 서버 프로그램을 위한 자바스크립트
3.1 변수 선언자 이해하기
___ 3.1.1 var 선언자
___ 3.1.2 let 선언자
___ 3.1.3 const 선언자
3.2 화살표 함수(Arrow Function)
3.3 Array 내장 함수
___ 3.3.1 sort()
___ 3.3.2 filter()
___ 3.3.3 map()
___ 3.3.4 reduce()
3.4 Template Literals
3.5 Spread Operator
3.6 Object Destructuring
3.7 Array Destructuring
3.8 Default Function Parameter
3.9 Rest Parameter
3.10 Promise
3.11 Async/Await
3.12 클래스(Class)
___ 3.12.1 Class 정의
___ 3.12.2 Class 사용
___ 3.12.3 Class 내부 함수 정의
___ 3.12.4 Class 상속
3.13 정규 표현식(Regular Expression)
___ 3.13.1 정규식 만들기
___ 3.13.2 정규식 함수
___ 3.13.3 정규식 특수 문자
___ 3.13.4 정규식 플래그
Chapter 04. Node.js 시작하기
4.1 Node.js에서 자바스크립트 파일 실행하기
4.2 모듈(Module)
Chapter 05. Node.js 내장 모듈/객체
5.1 Console
___ 5.1.1 Console 클래스
___ 5.1.2 전역 객체 console
5.2 Timers
5.3 Process
___ 5.3.1 Process events
___ 5.3.2 process.env
___ 5.3.3 process.nextTick
___ 5.3.4 process.exit()
5.4 OS
5.5 Path
___ 5.5.1 path.basename(path[,ext])
___ 5.5.2 path.delimiter
___ 5.5.3 path.dirname(path)
___ 5.5.4 path.extname(path)
___ 5.5.5 path.format(pathObject)
___ 5.5.6 path.isAbsolute(path)
___ 5.5.7 path.join([...paths])
___ 5.5.8 path.parse(path)
___ 5.5.9 path.sep
5.6 URL
___ 5.6.1 WHATWG API
___ 5.6.2 레거시 API
5.7 Crypto
5.8 File system
___ 5.8.1 fs.readFile(path, [options], callback)
___ 5.8.2 fs.readFileSync(path, [options])
___ 5.8.3 fs.writeFile(path, data, [options], callback)
___ 5.8.4 writeFileSync(path, data, [options])
___ 5.8.5 fs.watchFile(filename[, options], listener)
Chapter 06. json-server 이용하기
6.1 REST API
6.2 json-server 설치
6.3 json 파일 생성
6.4 json-server 실행
6.5 GET 요청
6.6 POST 요청
6.7 PUT 요청
6.8 DELETE 요청
Chapter 07. Express로 웹 서버 구축하기
7.1 Express.js로 웹 서버 만들기
___ 7.1.1 package.json 파일 생성
___ 7.1.2 Express 설치
___ 7.1.3 app.js 생성
7.2 라우팅 처리하기
___ 7.2.1 라우팅(Routing)
___ 7.2.2 라우트(Route) 메소드
___ 7.2.3 라우트(Route) 경로
___ 7.2.4 라우트(Route) 핸들러
___ 7.2.5 응답 메소드
___ 7.2.6 app.route()
___ 7.2.7 express.Router
7.3 Express에서 에러 처리하기
7.4 Express에서 정적 파일 제공하기
7.5 미들웨어 모듈
___ 7.5.1 body-parser
___ 7.5.2 compression
___ 7.5.3 cookie-session
___ 7.5.4 express-session
___ 7.5.5 cors
___ 7.5.6 morgan
___ 7.5.7 multer
___ 7.5.8 response-time
___ 7.5.9 connect-timeout
7.6 Postman 설치 및 익스프레스 라우트 테스트
___ 7.6.1 Postman 설치하기
___ 7.6.2 익스프레스 라우트 테스트하기
Chapter 08. 데이터베이스 사용하기
8.1 MySQL
___ 8.1.1 맥에서 MySQL 설치하기
___ 8.1.2 윈도우에서 MySQL 설치하기
___ 8.1.3 Workbench 설치하기
___ 8.1.4 데이터베이스 및 테이블 생성하기
___ 8.1.5 MySQL 모듈 사용하기
___ 8.1.6 Sequelize
8.2 MongoDB
___ 8.2.1 맥에서 MongoDB 설치하기
___ 8.2.2 윈도우에서 MongoDB 설치하기
___ 8.2.3 DB 툴 설치하기
___ 8.2.4 데이터베이스 및 컬렉션 생성하기
___ 8.2.5 mongoose 모듈 사용하기
Chapter 09. 애플리케이션 운영과 고성능 웹을 위한 Node.js
9.1 로그 관리
9.2 메일링 서비스
___ 9.2.1 Nodemailer
___ 9.2.2 SMTP transport
___ 9.2.3 이메일 보내기
___ 9.2.4 Gmail을 사용해서 이메일 보내기
___ 9.2.5 mailtrap 서비스 이용해서 이메일 보내기
9.3 작업 스케줄러(Job Scheduler)
___ 9.3.1 node-cron
___ 9.3.2 작업 스케줄 설정하기
___ 9.3.3 타임존 설정하기
___ 9.3.4 ScheduledTask 함수
___ 9.3.5 정해진 시간에 이메일 발송하기
9.4 엑셀 파일 처리
___ 9.4.1 xlsx
___ 9.4.2 엑셀 파일 읽기
___ 9.4.3 엑셀 파일 내용 수정하기
___ 9.4.4 클라이언트에서 업로드한 엑셀 파일 읽기
___ 9.4.5 엑셀 파일 생성하기
___ 9.4.6 셀 스타일
___ 9.4.7 데이터베이스 데이터를 조회해서 엑셀 파일로 생성하기
___ 9.4.8 이메일에 엑셀 파일 첨부하기
___ 9.4.9 엑셀 파일 클라이언트로 다운로드
9.5 iCalendar 이벤트 생성
___ 9.5.1 iCalendar 이벤트 생성하기
___ 9.5.2 iCalendar 이벤트 이메일 발송하기
9.6 웹소켓
___ 9.6.1 웹소켓이란
___ 9.6.2 웹소켓 서버 구현하기
___ 9.6.3 웹소켓 클라이언트 구현하기
9.7 크롤링
___ 9.7.1 크롤링이란
___ 9.7.2 axios, cheerio 모듈
___ 9.7.3 인프런 강의 목록 크롤링하기
9.8 forever
9.9 클러스터 모드
9.10 PM2
___ 9.10.1 PM2 사용하기
___ 9.10.2 클러스터 모드로 실행하기
___ 9.10.3 Ecosystem File
Chapter 10. Node.js 미니 프로젝트: 제품 판매 웹앱 구현
10.1 애플리케이션 Overview
10.2 프로젝트 소프트웨어 구성
10.3 Node.js + Express 서버 구성
___ 10.3.1 app.js
___ 10.3.2 sql.js
10.4 데이터베이스 구성
진짜 '실전'에 가까운 책을 원한다면 이 책입니다
이 책은 Node.js로 서버를 개발할 때 절대 놓쳐서는 안 되는 내용만을 담은 문법 중심이 아닌 기능 중심의 책입니다. 실무에서 반드시 구현해야 하는 웹 서버 및 고급 애플리케이션 기능을 어떤 npm 모듈을 사용해서 구축하는지 그리고 어떻게 동작하는지 안내합니다.
책에서 소개하는 각각의 기능을 마스터할 때마다 여러분은 이를 실제 프로젝트에서 구현할 수 있는 역량이 늘어날 것입니다. 그리고 매번 바뀌는 개발 환경이나 갑작스러운 프로젝트 투입에도 당황하지 않고 풀스택 개발자로서의 역량을 바로 발휘할 수 있을 것입니다. 이 책을 통해 무심코 사용했던 기술, 놓치지 말아야 할 새로운 기술에 대해 다시 한번 점검하는 시간을 가지시기 바랍니다.
이 책은 저자의 다른 책 『Vue.js 프로젝트 투입 일주일 전』의 시리즈서입니다. 챕터 10 '미니 프로젝트: 제품 판매 웹앱’의 프런트엔드 부분을 『Vue.js 프로젝트 투입 일주일 전』에서 개발하고, 이 책에서는 백엔드 부분을 다룹니다.
이 책의 독자
• 자바스크립트에 대한 기본 지식이 있는 독자
• 실무에 Node.js를 바로 적용하기를 원하는 독자
• 프런트엔드와 백엔드를 모두 구현하는 풀스택 개발자가 되길 원하는 독자
• 서버 개발자로 커리어를 시작하고 싶은 신입 개발자
소스코드 다운로드
이야기로 다가가는 HTML (0) | 2021.12.29 |
---|---|
알고리즘 구현으로 배우는 선형대수 with 파이썬 (0) | 2021.12.24 |
바닐라 자바스크립트 (1) | 2021.12.23 |
댓글 영역