품목정보
발행일 | 2022년 12월 20일 |
---|---|
쪽수, 무게, 크기 | 840쪽 | 1488g | 183*235*33mm |
ISBN13 | 9791140702398 |
발행일 | 2022년 12월 20일 |
---|---|
쪽수, 무게, 크기 | 840쪽 | 1488g | 183*235*33mm |
ISBN13 | 9791140702398 |
1장 노드 시작하기 __1.1 핵심 개념 이해하기 ____1.1.1 서버 ____1.1.2 자바스크립트 런타임 ____1.1.3 이벤트 기반 ____1.1.4 논블로킹 I/O ____1.1.5 싱글 스레드 __1.2 서버로서의 노드 __1.3 서버 외의 노드 __1.4 개발 환경 설정하기 ____1.4.1 노드 설치하기 ____1.4.2 npm 버전 업데이트하기 ____1.4.3 비주얼 스튜디오 코드 설치하기 __1.5 함께 보면 좋은 자료 2장 알아둬야 할 자바스크립트 __2.1 ES2015+ ____2.1.1 const, let ____2.1.2 템플릿 문자열 ____2.1.3 객체 리터럴 ____2.1.4 화살표 함수 ____2.1.5 구조 분해 할당 ____2.1.6 클래스 ____2.1.7 프로미스 ____2.1.8 async/await ____2.1.9 Map/Set ____2.1.10 널 병합/옵셔널 체이닝 __2.2 프런트엔드 자바스크립트 ____2.2.1 AJAX ____2.2.2 FormData ____2.2.3 encodeURIComponent, decodeURIComponent ____2.2.4 데이터 속성과 dataset __2.3 함께 보면 좋은 자료 3장 노드 기능 알아보기 __3.1 REPL 사용하기 __3.2 JS 파일 실행하기 __3.3 모듈로 만들기 ____3.3.1 CommonJS 모듈 ____3.3.2 ECMAScript 모듈 ____3.3.3 다이내믹 임포트 ____3.3.4 __filename, __dirname __3.4 노드 내장 객체 알아보기 ____3.4.1 global ____3.4.2 console ____3.4.3 타이머 ____3.4.4 process ____3.4.5 기타 내장 객체 __3.5 노드 내장 모듈 사용하기 ____3.5.1 os ____3.5.2 path ____3.5.3 url ____3.5.4 dns ____3.5.5 crypto ____3.5.6 util ____3.5.7 worker_threads ____3.5.8 child_process ____3.5.9 기타 모듈들 __3.6 파일 시스템 접근하기 ____3.6.1 동기 메서드와 비동기 메서드 ____3.6.2 버퍼와 스트림 이해하기 ____3.6.3 기타 fs 메서드 알아보기 ____3.6.4 스레드 풀 알아보기 __3.7 이벤트 이해하기 __3.8 예외 처리하기 ____3.8.1 자주 발생하는 에러들 __3.9 함께 보면 좋은 자료 4장 http 모듈로 서버 만들기 __4.1 요청과 응답 이해하기 __4.2 REST와 라우팅 사용하기 __4.3 쿠키와 세션 이해하기 __4.4 https와 http2 __4.5 cluster __4.6 함께 보면 좋은 자료 5장 패키지 매니저 __5.1 npm 알아보기 __5.2 package.json으로 패키지 관리하기 __5.3 패키지 버전 이해하기 __5.4 기타 npm 명령어 __5.5 패키지 배포하기 __5.6 함께 보면 좋은 자료 6장 익스프레스 웹 서버 만들기 __6.1 익스프레스 프로젝트 시작하기 __6.2 자주 사용하는 미들웨어 ____6.2.1 morgan ____6.2.2 static ____6.2.3 body-parser ____6.2.4 cookie-parser ____6.2.5 express-session ____6.2.6 미들웨어의 특성 활용하기 ____6.2.7 multer __6.3 Router 객체로 라우팅 분리하기 __6.4 req, res 객체 살펴보기 __6.5 템플릿 엔진 사용하기 ____6.5.1 퍼그(제이드) ____6.5.2 넌적스 ____6.5.3 에러 처리 미들웨어 __6.6 함께 보면 좋은 자료 7장 MySQL __7.1 데이터베이스란? __7.2 MySQL 설치하기 ____7.2.1 윈도 ____7.2.2 맥 ____7.2.3 리눅스(우분투) __7.3 워크벤치 설치하기 ____7.3.1 윈도 ____7.3.2 맥 ____7.3.3 리눅스(우분투) ____7.3.4 커넥션 생성하기 __7.4 데이터베이스 및 테이블 생성하기 ____7.4.1 데이터베이스 생성하기 ____7.4.2 테이블 생성하기 __7.5 CRUD 작업하기 ____7.5.1 Create(생성) ____7.5.2 Read(조회) ____7.5.3 Udate(수정) ____7.5.4 Delete(삭제) __7.6 시퀄라이즈 사용하기 ____7.6.1 MySQL 연결하기 ____7.6.2 모델 정의하기 ____7.6.3 관계 정의하기 ____7.6.4 쿼리 알아보기 ____7.6.5 쿼리 수행하기 __7.7 함께 보면 좋은 자료 8장 몽고디비 __8.1 NoSQL vs. SQL __8.2 몽고디비 설치하기 ____8.2.1 윈도 ____8.2.2 맥 ____8.2.3 리눅스(우분투) __8.3 컴퍼스 설치하기 ____8.3.1 윈도 ____8.3.2 맥 ____8.3.3 리눅스(우분투) ____8.3.4 커넥션 생성하기 __8.4 데이터베이스 및 컬렉션 생성하기 __8.5 CRUD 작업하기 ____8.5.1 Create(생성) ____8.5.2 Read(조회) ____8.5.3 Update(수정) ____8.5.4 Delete(삭제) __8.6 몽구스 사용하기 ____8.6.1 몽고디비 연결하기 ____8.6.2 스키마 정의하기 ____8.6.3 쿼리 수행하기 __8.7 함께 보면 좋은 자료 9장 익스프레스로 SNS 서비스 만들기 __9.1 프로젝트 구조 갖추기 __9.2 데이터베이스 세팅하기 __9.3 Passport 모듈로 로그인 구현하기 ____9.3.1 로컬 로그인 구현하기 ____9.3.2 카카오 로그인 구현하기 __9.4 multer 패키지로 이미지 업로드 구현하기 __9.5 프로젝트 마무리하기 ____9.5.1 스스로 해보기 ____9.5.2 핵심 정리 __9.6 함께 보면 좋은 자료 10장 웹 API 서버 만들기 __10.1 API 서버 이해하기 __10.2 프로젝트 구조 갖추기 __10.3 JWT 토큰으로 인증하기 __10.4 다른 서비스에서 호출하기 __10.5 SNS API 서버 만들기 __10.6 사용량 제한 구현하기 __10.7 CORS 이해하기 __10.8 프로젝트 마무리하기 ____10.8.1 스스로 해보기 ____10.8.2 핵심 정리 ____10.8.3 함께 보면 좋은 자료 11장 노드 서비스 테스트하기 __11.1 테스트 준비하기 __11.2 유닛 테스트 __11.3 테스트 커버리지 __11.4 통합 테스트 __11.5 부하 테스트 __11.6 프로젝트 마무리하기 ____11.6.1 스스로 해보기 ____11.6.2 핵심 정리 ____11.6.3 함께 보면 좋은 자료 12장 웹 소켓으로 실시간 데이터 전송하기 __12.1 웹 소켓 이해하기 __12.2 ws 모듈로 웹 소켓 사용하기 __12.3 Socket.IO 사용하기 __12.4 실시간 GIF 채팅방 만들기 __12.5 미들웨어와 소켓 연결하기 __12.6 채팅 구현하기 __12.7 프로젝트 마무리하기 ____12.7.1 스스로 해보기 ____12.7.2 핵심 정리 ____12.7.3 함께 보면 좋은 자료 13장 실시간 경매 시스템 만들기 __13.1 프로젝트 구조 갖추기 __13.2 서버센트 이벤트 사용하기 __13.3 스케줄링 구현하기 __13.4 프로젝트 마무리하기 ____13.4.1 스스로 해보기 ____13.4.2 핵심 정리 ____13.4.3 함께 보면 좋은 자료 14장 CLI 프로그램 만들기 __14.1 간단한 콘솔 명령어 만들기 __14.2 Commander, Inquirer 사용하기 __14.3 프로젝트 마무리하기 ____14.3.1 스스로 해보기 ____14.3.2 핵심 정리 ____14.3.3 함께 보면 좋은 자료 15장 AWS와 GCP로 배포하기 __15.1 서비스 운영을 위한 패키지 ____15.1.1 morgan과 express-session ____15.1.2 시퀄라이즈 ____15.1.3 cross-env ____15.1.4 sanitize-html, csurf ____15.1.5 pm2 ____15.1.6 winston ____15.1.7 helmet, hpp ____15.1.8 connect-redis ____15.1.9 nvm, n __15.2 깃과 깃허브 사용하기 ____15.2.1 깃 설치하기 ____15.2.2 깃허브 사용하기 __15.3 AWS 시작하기 __15.4 AWS에 배포하기 __15.5 GCP 시작하기 __15.6 GCP에 배포하기 __15.7 함께 보면 좋은 자료 16장 서버리스 노드 개발 __16.1 서버리스 이해하기 __16.2 AWS S3 사용하기 __16.3 AWS 람다 사용하기 __16.4 구글 클라우드 스토리지 사용하기 __16.5 구글 클라우드 펑션스 사용하기 __16.6 함께 보면 좋은 자료 17장 타입스크립트 노드 개발 __17.1 타입스크립트 기본 문법 __17.2 커뮤니티 타입 정의 적용하기 __17.3 라이브러리 코드 타이핑하기 __17.4 내가 작성한 코드 타이핑하기 __17.5 함께 보면 좋은 자료 찾아보기 |
자바스크립트는 파이썬 다음으로 많이 사용되는 스크립트 언어다.
그 자바스크립트 라이브러리중 가장 많이, 그리고 중요하게 사용되는 라이브러리는 단연
node.js 이다. 물론, 가장 각광 받고 있는 자바스크립트 라이브러리는 React, React Native 이나... 애들도 뿌리는 node.js 이다. 애네들도 개발환경 설치시 가장 먼저 설치하는게
node.js 이다.
node.js에 대해 상세한 설명이 되어있는 NODE.JS 교과서 개정 3판이 나왔다.
개정 이전 판으로 공부를 했는데
어떻게 개정이 되었는지 궁금했다.
지금은 NODE.JS가 그렇게 핫하지않았지만
이책 초판이 나오기도전인
2013년 12월에 처음 접했는데(어느덧 10년이 되어가네 ㅎㅎ)
그당시엔 가희 혁명적인 라이브러리였다.
본인에게 웹의 신세계를 몸소 경험케 해준 라이브러리였다.
그저 놀랄뿐이었다..
이런것도 이렇게 가능하게 해주다니....
그때는 자료가 많지 않아 github에 node.js 코드를 올려두고
미국의 고수 코더에게 질답을 몇주에 걸쳐가며
개인프로젝트 코드를 완성해나가며 놀란 기억이 있다.
친절한 미국 프로그래머도 감사했지만,
더욱더 놀란건... 막강한 node.js 였다.
그후 노드.js 책이 무더기로 쏟아져 나오기 시작한후
이 책도 그 즈음에 나왔다.
개정3판이 나온다기에 궁금했다.
이책은
노드.js에 대해 기본개념을 먼저 설명하면서
이 책에서 사용할
visual studio code를 설치한다.
노드.js의 뿌리인
자바스크립트에 대해서 기본 개념을 설명한다.
특히, ES2015+ 라고
자바 스크립트 개념중 노드에서 자주 사용되는
중고급의 난이도 있는 개념에 대해서 간단히 개념을 설명해준다.
특히, 반복문, 제어문 같이 기본적인 수준이 아니라
화살표함수, 프로미스, 구조분해할당 (destructuring 할당), async/wait, Ajax 와 같은
고수준의 자바스크립트를 간단히 설명한다.
아울러 inflearn 에서 자바스크립트를 조현영 저자가 무료로 강의 한다.
DB는 MySQL, MongoDB 를 설명한다.
아울러, 각장의 끝에는 함께 보면 좋은 자료도 넣어 두어 보다 깊이 있게 공부할수 있게 해준다.
이전 판에 비해 각 장별로 몇가지 추가 되기도 했다.
이책에서
기본적으로 만들어 보는것은
HTTP 모듈 서버, EXPRESS WEB 서버를 만들어 보며
흥미롭게 만들어 볼수 있는것은
SNS서비스, SNS API 서버, 실시간, GIF 채팅방 만들기, 실시간 경매 시스템을 만들어 본다,
특히, SNS서비스에서는 MySQL과 시퀄라이즈 로 DB를 구축및 연결 하고,
SNS API 서버에서는 JWT 토근으로 인증을 한다.
NODE.JS의 파워는 본인은 실시간 데이타 전송이라 생각한다.
양방향 통신인 웹소켓 SOCKET.IO로 GIF 채팅방을 만들고
몽고디비와 몽구스로 실시간 GIF 채팅방 DB를 만들어 본다.
가장 흥미로운 주제이다.
단방향 통신인 Server sent Events로 실시간 경매 시스템을 만들어 보며
DB는 MySQL과 시퀄라이즈로 처리를 한다.
요즘 고금리, 우크라이나 전쟁, 코로나로
부동산이 극도의 침체기이나 한때 부동산이 핫할때
역시 핫했던게 경매이었는데
node.js 에서 경매 관련 프로그램예가 나오니 반가웠다.
한가지 노드 버젼관리하는 nvm은 버젼문제로 유지보수 어려움이 없게 해주는
유용한 도구로 보인다.
AWS, GCP를 이용한 배포및 서버리스 노드 개발에 대해서 설명을 하며 마무리를 해간다.
어차피 node.js는 javascript로 꾸려가는 서버가 주내용이므로
이서버를 내 컴이 아닌 아마존이나 구글에서 제공하는 클라우드 방식의 서버를 빌려 운용하는것을 설명하는것으로 15장 에서 배포하기는
11장, 9장에서 만든 앱을 내 컴이 아닌 아마존,구글에서 설치하는 과정을 다루고 있다.
서버를 운영할때 필요한 패키지, DB설치 운용위한 패키지, 스크립트 공격 막는 패키지, 세션공유 시켜주고 , 서버 죽엇을때 재부팅 시키는 패키지, 서버 죽어도 로그남기는 패키지, 서버 취약점 보완 패키지, 메모리기반 DB 레디스 연결위한 패키지등 설치하고
본격적인 프로그램 소스를 클라우드에 올리고 관리위히 깃, 깃허브 를 설명한다.
여기에 올릴 앱이 MySQL을 사용하므로 설치한다.
AWS 의 lightsail 서비스 사용을 하는데 월 3.5$ ~월 10$ 사용한다고 하면
3달은 무료로 쓸수 있게 해준다고 한다.
예전에 본인은 react를 공부하면서 AWS의 모 서비스를
이번처럼 공부할때 사용하고는 1년 이내 해지를 하지 않아서
1년이 지난 수개월간 꼬박꼬박 사용도 않하는 서비스 비용을 치룬적도 있다.
알람이라도 해서 꼭 해지해야 겠다. ^^;
나중엔 내가 뭘 서비스 신청했는지도 몰라 인스턴스 삭제도 쉽게 못해
쩔쩔 매니 반드시 기록을 잘해두어야 한다.
GCP의 경우도 무료평가판으로 진행한다.
GCP는 AWS와 달리 기간이 아니라 처음 가입할때 받은 300달라 크레딧을 모두 소진하기
전에 인스턴스를 제거 하면된다.
서버리스는 VM 인스턴스를 구매 하지 않고 한다.
대표적인게 GCP의 파이어 베이스 이다.
16장의 서버리스 노드 개발에선 아마존, 구글 클라우드가 대신 서버를 관리하게끔 하는 개발에 대해서 설명한다.
이장에서 올리는 앱에서 업로드한 이미지를 저장하거나 리사이징해서 저장하는 기능을 서비스 하게 한다.
S3는 이미지 저장하는 클라우스 스토리지 관련이고
람다는 이미지를 리사이징하는 기능으로 활용한다.
AWS 서버리스 서비스인 S3는 저장, 로드시 과금되며 가입후 1년간 5G, 로드 2만건, 업로드 2천건 까지 무료이다. 단, 1년간 무료이며 실습후 버킷의 데이타를 지워야 된다.
람다를 이미지 리사이징에 활용하는 예를 보여준다.
GCP에서 이미지 올릴때는 Multer를사용한다.
서버리스도 마찬가지 초기에 준 300달라 소진되면 1년후부터 과금이 된다. 실습후 버킷의 데이타를 지워야 된다.
GCP에서 이미지 리사이징을 위해 클라우드 펑션스 사용례를 보여준다.
이책은 이전판에 비해
노드 개발시에 유용하게 사용될 노드 서비스 를 테스트 하는 방법에 대해 별도의 장을 만들어 추가 해두었다.
그리고 요즘 많이 사용되어지는 타입스크립트에 대해
별도의 장을 마지막에 두어
NODE.JS 의 근간인 자바스크립트에만 머무르지 말고
Typescript 로 확장해 나가라고 간단히 한 장으로 언급을 하며 마무리 한다.
전반적으로 노드.JS에 대해 두루 설명을 하며 체계를 잡아 가게 해주는 책이다.
다양한 색으로 코드가 표기되어 가독성이 높아 한눈에 코드가 잘들어 온다.
전반적으로 필요한만큼, 중요한것은 딱딱 집어 설명하고
왜 이렇게 하는지 간간히 설명을 해주니 좋았다.
자바스크립트 고급수준과 HTML에 대해 어느정도 기초가 있다면
강력한 NODE.JS를 공부해볼수 있는 좋은 책이라 생각한다.
일독을 권합니다.
YES24 리뷰어클럽 서평단 자격으로 작성한 리뷰입니다
도서명 : Node.js 교과서 개정 3판
목차
- 노드 시작하기
- 알아둬야 할 자바스크립트
- 노드 기능 알아보기
- http 모듈로 서버 만들기
- 패키지 매니저
- 익스프레스 웹 서버 만들기
- MySQL
- 몽고디비
- 익스프레스로 SNS서비스 만들기
- 웹 API 서버 만들기
- 노드 서비스 테스트하기
- 웹 소켓으로 실시간 데이터 전송하기
- 실시간 경매 시스템 만들기
- CLI 프로그램 만들기
- AWS와 GCP로 배보하기
- 서버리스 노드 개발
- 타입스크립트 노드 개발
리뷰
시중에는 다양한 Node.js 기술서가 있습니다. 이 도서도 그 책중 하나라고 볼 수 있습니다. 교과서 라는 타이틀이 있기 때문에 노드 기초 및 다른 책에서도 볼 수 있는 내용이 빠질 수 없었던것 같습니다.
그러나 똑같은 내용이라도 최대한 눈에 잘 들어오고 이해하기 쉽도록 그림이 많고 글자 색상 선택이 쉬운 이해 및 집중을 배가시켜줍니다.
여타 다른 책과의 차별성은 익스프레스로 SNS서비스 만들기 챕터부터 라고 생각됩니다. 아무래도 딱딱한 문법 또는 사용법 보다는 서비스를 만들어봐야 흥미가 배가 되는데, 하나의 기술을 설명하면서 그 기술이 왜 필요한지를 서비스 개발을 통해서 체감할 수 있도록 해주니 기술 응용도 가능해지고 내용 이해도 쉬워집니다.
마지막으로, 최신 백앤드 트랜드중 하나인 서버리스 노드 개발의 내용도 맛 볼수 있어서 좋았습니다.