본문내용 바로가기
MD의선택 무료배송 사은품 소득공제

Node.js로 서버 만들기 백견불여일타

박민경 지음 | 로드북 | 2021년 10월 21일 출간
클로버 리뷰쓰기

이 책의 다른 상품 정보

  • 정가 : 27,000원
    판매가 : 24,300 [10%↓ 2,700원 할인]
  • 혜택 :
    [기본적립] 1350원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    당일배송 지금 주문하면 오늘( 1일,수) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • 컴퓨터/IT 도서 2만원 이상 구매 시 개발자 매거진 사은품 선..
    2021.11.11 ~ 2021.12.31
  • 2022 캘린더 수록한 IT독자를 위한 readIT 노트 사은품
    2021.10.14 ~ 2021.12.31
상품상세정보
ISBN 9788997924905(8997924907)
쪽수 408쪽
크기 190 * 258 * 18 mm /832g 판형알림

책소개

이 책이 속한 분야

빠르게실무형 Node.js 개발자가 될 수 있도록 도와주는 실습형 입문서다.5줄로 만드는Node.js 서버로 핵심 개념을 파악하고,데이터베이스 연동,실시간 통신 실습을 통해 실무형 개발 지식을 습득한 후,페이스북 클론 코딩과 배포로 통합 실습을 해볼 수 있게 단계적으로 구성하였다.페이스북 클론 프로젝트는 처음엔따라해보고, 그다음엔안보고만들어보고, 그다음엔응용해서좀더확장된여러분의버전을만들어보길바란다.

_대상 독자
_Node.js를 기술 스택에 담고 싶어한다면
_당장 Node.js로 서버를 개발해야 한다면
_개발부터 배포까지 가능한 Node.js 토이 프로젝트를 찾고 있다면

상세이미지

Node.js로 서버 만들기 도서 상세이미지

목차

목차
지은이의 글
일러두기

1장. Node.js 첫걸음
1.1 Node.js 첫걸음
웹 서버와 Node.js의 관계
Node.js가 동작하는 방식
1.2 실습을 위한 개발환경 구축
Node.js 설치
IDE(통합개발환경) 설치-비주얼 스튜디오 코드(Visual Studio Code, VS Code)
정리해봅시다
나의 이해도를 측정하자

2장. 자바스크립트 리마인드
2.1 자바스크립트 기본 문법
변수, 호이스팅, 클로저
객체와 배열
함수
프로토타입과 상속
2.2 자바스크립트의 비동기 처리
콜백 함수
Promise
async/await
비동기 상황에서의 예외 처리
정리해봅시다
나의 이해도를 측정하자

[함께해봐요 2-1] 변수 호이스팅 (sample01.js)
[함께해봐요 2-2] let을 사용한 변수 호이스팅 문제 해결 (sample02-1.js)
[함께해봐요 2-3] const를 사용한 변수 호이스팅 문제 해결 (sample02-2.js)
[함께해봐요 2-4] function-level-scope의 사용 ① (sample03.js)
[함께해봐요 2-5] function-level-scope의 사용 ② (sample04.js)
[함께해봐요 2-6] const의 특징 (sample05-1.js)
[함께해봐요 2-7] let의 특징 (sample05-1.js)
[함께해봐요 2-8] 클로저의 개념 (sample06.js)
[함께해봐요 2-9] 객체와 프로퍼티 (sample07.js)
[함께해봐요 2-10] 객체 배열 생성 (sample08.js)
[함께해봐요 2-11] 구조 분해 할당 (sample09.js)
[함께해봐요 2-12] 함수의 선언 (sample10.js)
[함께해봐요 2-13] 화살표 함수의 선언 (sample11.js)
[함께해봐요 2-14] this의 사용 (sample12.js)
[함께해봐요 2-15] bind 함수 사용 (sample12-2.js)
[함께해봐요 2-16] 프로토타입을 이용한 객체 생성 (sample13.js)
[함께해봐요 2-17] 프로토타입과 상속 (sample14.js)
[함께해봐요 2-18] Prototype Chaining (sample15.js)
[함께해봐요 2-19] 프로토타입을 클래스처럼 사용해보기 (sample16.js)
[함께해봐요 2-20] 콜백 함수의 비동기 처리 (sample17.js)
[함께해봐요 2-21] 콜백 함수의 동기 처리 (sample18.js)
[함께해봐요 2-22] 사용자 정의 함수의 동기 처리 (sample19.js)
[함께해봐요 2-23] API의 비동기적 처리 (sample20.js)
[함께해봐요 2-24] 일반 비동기 함수 (sample21-1.js)
[함께해봐요 2-25] 동기적 처리 ① (sample21-2.js)
[함께해봐요 2-26] 동기적 처리 ② (sample21-3.js)
[함께해봐요 2-27] Promise의 사용 (sample22.js)
[함께해봐요 2-28] Promise 객체와 async/await (sample23.js)
[함께해봐요 2-29] async/await의 사용 (sample24.js)
[함께해봐요 2-30] 사용자 정의 오류 (sample25.js)
[함께해봐요 2-31] 일반적인 예외 처리 (sample26.js)
[함께해봐요 2-32] .catch( )의 이용 (sample27.js)
[함께해봐요 2-33] .then( )의 이용 (sample27.js)
[함께해봐요 2-34] async/await의 예외 처리 ① (sample28-1.js)
[함께해봐요 2-35] async/await의 예외 처리 ② (sample28-2.js)
[함께해봐요 2-36] async/await의 예외 처리 ③ (sample28-3.js)
[함께해봐요 2-37] async/await의 예외 처리 ④ (sample28-4.js)

3장. 5줄로 만드는 서버
3.1 프로젝트의 시작
프로젝트 설정하기
NPM 명령어
3.2 Node.js의 모듈과 객체
모듈 시스템이란?
모듈의 종류
3.3 http 모듈로 서버 만들기
5줄로 서버를 만들어보자
요청 객체(req), 응답 객체(res)
3.4 express 모듈을 사용해 서버 만들기
express란?
express 설치와 사용
http 요청 메서드-GET, POST, PUT, PATCH, DELETE
3.5 express와 미들웨어
미들웨어란?
자주 사용하는 미들웨어
정리해봅시다
나의 이해도를 측정하자

[함께해봐요 3-1] A.js 소스 코드 (chapter03/sample/A.js)
[함께해봐요 3-2] B.js 소스 코드 (chapter03/sample/B.js)
[함께해봐요 3-3] 순환 참조 ① (chapter03/sample/A2.js)
[함께해봐요 3-4] 순환 참조 ② (chapter03/sample/B2.js)
[함께해봐요 3-5] 5줄로 만드는 서버 (chapter03/sample/simple_server.js)
[함께해봐요 3-6] 웹 페이지의 요청에 대한 응답 (chapter03/sample/simple_server2.js)
[함께해봐요 3-7] 문자열을 보내는 응답 코드 (chapter03/sample/simple_server3.js)
[함께해봐요 3-8] fs-test.html 작성 (chapter03/sample/fs_test.html)
[함께해봐요 3-9] 파일을 보내는 응답 코드 (chapter03/sample/fs_test.js)
[함께해봐요 3-10] request와 response 확인 (chapter03/sample/simple_sever3.js)
[함께해봐요 3-11] REST를 통한 페이지 생성 (chapter03/sample/simple_sever4.js)
[함께해봐요 3-12] express 사용법 ① (chapter03/express/express_study1.js)
[함께해봐요 3-13] express로 웹 페이지 만들기 (chapter03/express/index.html)
[함께해봐요 3-14] express 사용법 ② (chapter03/express/express_study2.js)
[함께해봐요 3-15] 미들웨어 사용법 ① (chapter03/express/express-study3.js)
[함께해봐요 3-16] 미들웨어 사용법 ② (chapter03/express/express_study4.js)
[함께해봐요 3-17] 오류 처리를 위한 미들웨어 함수 (chapter03/express/express_study5.js)
[함께해봐요 3-18] static 미들웨어 사용 ① (chapter03/express/express-study6.js)
[함께해봐요 3-19] static 미들웨어 사용 ② (chapter03/express/index2.html)
[함께해봐요 3-20] 미들웨어를 이용한 예제 ① (chapter03/express/express_study7.js)
[함께해봐요 3-21] 쿠키 전달 (chapter03/sample/cookie.js)
[함께해봐요 3-22] 세션을 통한 키 값 생성 (chapter03/sample/cookie-session.js)
[함께해봐요 3-23] 미들웨어 통합 테스트 (chapter03/express/express_study8.js)

4장. 통신을 구현해보자
4.1 API
API란?
Open API 활용 ①-request
Open API 활용 ②-axios
dotenv 사용하기
4.2 캐싱 구현하기
Redis란?
4.3 API 서버를 직접 만드는 방법
REST API
API 서버 만들기
API 서버 테스트 : CORS
4.4 웹 파싱
크롤링, 스크래핑, 파싱
정리해봅시다
나의 이해도를 측정하자

[함께해봐요 4-1] request 모듈로 네이버 API 사용해보기 (chapter04/sample/naver_request.js)
[함깨해봐요 4-2] axios 모듈로 에어코리아 API 사용해보기 (chapter04/sample/airkorea_axios.js)
[함께해봐요 4-3] 에어코리아 API 응답 결과 가져오기 (chapter04/sample/airkorea_axios2.js)
[함께해봐요 4-4] [함께해봐요 4-3]에 dotenv 모듈 적용 (chapter04/sample/airkorea_dotenv.js)
[함께해봐요 4-5] Redis 서버 테스트 ① (chapter04/sample/redis.js)
[함께해봐요 4-6] Redis 서버 테스트 ② (chapter04/sample/redis2.js)
[함께해봐요 4-7] [함께해봐요 4-3]에 캐시 적용하기 (chapter04/sample/redis3.js)
[함께해봐요 4-8] 내 API 서버 만들기 (chapter04/sample/colon_path.js)
[함께해봐요 4-9] 간단한 게시판 API 서버 만들기 (chapter04/sample/board_api.js)
[함께해봐요 4-10] uuid-apikey 모듈 사용 (chapter04/sample/uuid_apikey.js)
[함께해봐요 4-11] 게시판에 uuid-apikey 추가하기 (chapter04/sample/board_api2.js)
[함께해봐요 4-12] 게시판 API 서버 테스트 (chapter04/sample/board_api_test.js)
[함께해봐요 4-13] 게시판 API 서버 테스트 코드 작성 (chapter04/sample/board_api_test.html)
[함께해봐요 4-14] cors 모듈 설치 (chapter04/sample/board_api3.js)
[함께해봐요 4-15] 웹 페이지 크롤링 (chapter04/sample/crawling.js)

5장. Node.js와 데이터베이스
5.1 SQL과 NoSQL
SQL
NoSQL
5.2 SQL : MySQL
개발환경 설정
쿼리 기본 사용법
쿼리문 작성하기
ORM :Sequelize
5.3 NoSQL : MongoDB
MongoDB
정리해봅시다
나의 이해도를 측정하자
[함께해봐요 5-1] 데이터베이스 정보 저장 (chapter05/sequelize/config/config.json)
[함께해봐요 5-2] customer 객체를 ORM로 작성하기 (chapter05/sequelize/models/customer.js)
[함께해봐요 5-3] purchase 모델 생성 (chapter05/sequlieze/models/purchase.js)
[함께해봐요 5-4] index.js 수정 (chapter05/sequelize/models/index.js)
[함께해봐요 5-5] 테이블 관계 생성 (chapter05/sequelize/app.js )
[함께해봐요 5-6] 클라이언트 화면 생성 (chapter05/sequelize/customer.html)
[함께해봐요 5-7] 정보 입력창 서버 코드 (chapter05/sequelize/app2.js)
[함께해봐요 5-8] mongoose와 MongoDB 연결하기 (chapter05/mongoose/app.js)

6장. 실시간 통신을 구현해보자
6.1 웹 소켓
HTTP와 AJAX
웹 소켓
6.2 WS 모듈로 웹 소켓 구현하기
6.3 socket.io로 실시간 채팅 구현하기
6.4 실시간 채팅 구현하기
정리해봅시다
나의 이해도를 측정하자
[함께해봐요 6-1] ws 모듈을 이용한 WebSocket 구현 (chapter06/ws/socket.js)
[함께해봐요 6-2] 클라이언트 코드 작성 (chapter06/ws/index.html)
[함께해봐요 6-3] WebSocket 서버 코드 (chapter06/ws/app.js)
[함께해봐요 6-4] socket.io 모듈 불러오기 (chapter06/socket.io/app.js)
[함께해봐요 6-5] SocketIO 인스턴스 생성 (chapter06/socket.io/socket.js)
[함께해봐요 6-6] SocketIO 클라이언트 코드 (chapter06/socket.io/index.html)
[함께해봐요 6-7] SocketIO 클라이언트 코드에 polling 추가 (chapter06/socket.io/index.html)
[함께해봐요 6-8] 실시간 채팅창 구현하기 (chapter06/chat/app.js)
[함께해봐요 6-9] CSS 파일 생성 (chapter06/chat/index.css)
[함께해봐요 6-10] 실시간 채팅창 클라이언트 코드 ① (chapter06/chat/index.html)
[함께해봐요 6-11] 실시간 채팅창 클라이언트 코드 ② (chapter06/chat/index.html)

7장. 토이 프로젝트 : 페이스북 클론 코딩
7.1 passport
passport란?
passport 사용하기
7.2 템플릿 엔진
정적 파일과 동적 파일
템플릿 엔진
7.3 토이 프로젝트 : 페이스북 클론 코딩
정리해봅시다
나의 이해도를 측정하자

[함께해봐요 7-1] 회원가입 화면 코드 (chapter07/ex_passport/index.html)
[함께해봐요 7-2] passport를 이용한 회원가입 서버 코드 (chapter07/ex_passport/app.js 1~32행)
[함께해봐요 7-3] passport를 이용한 회원가입 서버 코드 수정 ① (chapter07/ex_passport/app.js 34~62행)
[함께해봐요 7-4] passport를 이용한 회원가입 서버 코드 수정 ② (chapter07/ex_passport/app.js 64~119행)
[함께해봐요 7-5] index.js 파일 생성 (chapter07/ejs/index.js)
[함께해봐요 7-6] index.ejs 파일 생성 (chapter07/ejs/views/index.ejs)
[함께해봐요 7-7] head.js 파일 작성 (Chapter07/ejs/views/partials/head.ejs)
[함께해봐요 7-8] header.ejs 파일 작성 (Chapter07/ejs/views/partials/header.ejs)
[함께해봐요 7-9] footer.ejs 파일 작성 (Chapter07/ejs/views/partials/footer.ejs)
[함께해봐요 7-10] 조각난 파일을 하나로 모으기 (Chapter07/ejs/views/index2.ejs)
[함께해봐요 7-11] 메뉴의 라우터를 index2.js에서 생성 (Chapter07/ejs/index2.js)
[함께해봐요 7-12] package.json 파일 수정 (facebook-clone/package.json 6~8행)
[함께해봐요 7-13] app.js 파일 수정 ① (facebook-clone/app.js 1~11행)
[함께해봐요 7-14] app.js 파일 수정 ② (facebook-clone/app.js 13~22행)
[함께해봐요 7-15] app.js 파일 수정 ③ (facebook-clone/app.js 24~32행)
[함께해봐요 7-16] .env 파일 생성 (facebook-clone/.env)
[함께해봐요 7-17] app.js 파일 수정 ④ (facebook-clone/app.js 34~44행)
[함께해봐요 7-18] app.js 파일 수정 ⑤ (facebook-clone/app.js 46~58행)
[함께해봐요 7-19] app.js 파일 수정 ⑥ (facebook-clone/app.js 60~67행)
[함께해봐요 7-20] app.js 파일 수정 ⑦ (facebook-clone/app.js 69~75행)
[함께해봐요 7-21] app.js 파일 수정 ⑧ (facebook-clone/app.js 77~110행)
[함께해봐요 7-22] User.js 파일 작성 (facebook-clone/models/User.js)
[함께해봐요 7-23] Post.js 파일 작성 (facebook-clone/models/Post.js)
[함께해봐요 7-24] Comment.js 파일 작성 (facebook-clone/models/Comment.js)
[함께해봐요 7-25] User.js 파일 수정 ① (facebook-clone/routes/user.js 1~22행)
[함께해봐요 7-26] User.js 파일 수정 ② (facebook-clone/routes/users.js 24~29행)
[함께해봐요 7-27] .env 파일 작성 (facebook-clone/.env)
[함께해봐요 7-28] User.js 파일 수정 ③ (fackebook-clone/routes/users.js 31~38행)
[함께해봐요 7-29] User.js 파일 수정 ④ (facebook-clone/routes/users.js 40~83행)
[함께해봐요 7-30] User.js 파일 수정 ⑤ (facebook-clone/routes/users.js 85~119행)
[함께해봐요 7-31] User.js 파일 수정 ⑥ (facebook-clone/routes/users.js 121~278행)
[함께해봐요 7-32] User.js 파일 수정 ⑦ (facebook-clone/routes/users.js 280~298행)
[함께해봐요 7-33] post.js 파일 작성 (facebook-clone/routes/posts.js)

8장. 서버를 배포해보자
8.1 기본 준비
cross-env 설정하기
morgan, winston 설정하기
express-session 수정하기
보안 관련 모듈 추가하기
깃, 깃허브 사용하기
더나아가기 : pm2와 메모리 DB
8.2 클라우드 서비스
8.3 클라우드 호스팅 서비스 : Heroku
8.4 도커 사용하기
도커란?
도커 기본 사용법
8.5 클라우드 인프라 서비스 : AWS EC2
AWS 계정 생성
EC2 인스턴스 생성
도커와깃허브를 이용해서 EC2에 배포하기
정리해봅시다
나의 이해도를 측정하자

[함께해봐요 8-1] package.json 파일 수정 ① (facebook-clone/package.json)
[함께해봐요 8-2] winston.js 파일 수정 (facebook-clone/config/winston.js)
[함께해봐요 8-3] app.js 파일 수정 ① (facebook-clone/app.js)
[함께해봐요 8-4] app.js 파일 수정 ② (facebook-clone/app.js)
[함께해봐요 8-5] app.js 파일 수정 ③ (facebook-clone/app.js)
[함께해봐요 8-6] post.js 파일 수정 (facebook-clone/routs/posts.js)
[함께해봐요 8-7] users.js 파일 수정 (facebook-clone/routes/users.js)
[함께해봐요 8-8] login.ejs 파일 수정 (facebook-clone/views/users/login.ejs)
[함께해봐요 8-9] .env 파일 수정 (facebook-clone/.env)
[함께해봐요 8-10] app.js 파일 수정 ④ (facebook-clone/app.js)
[함께해봐요 8-11] package.json 파일 수정 ② (facebook-clone/package.json)

참고 링크
전체 소스코드 및 연습문제 풀이 해답 저장소
찾아보기

출판사 서평

_주요 내용
빠르게실무형 Node.js 개발자가 될 수 있도록 도와주는 실습형 입문서
_5줄 서버
_캐싱
_API 서버
_데이터베이스 연동
_실시간 통신
_페이스북 클론 코딩까지

“기초를 다질 수 있도록”
이 책에서 다루는 Node.js라는 기술은 자바스크립트를 알아야 사용할 수 있는 환경입니다. 하지만 자바스크립트에 익숙하지 않아도 프로그래밍이 어떤 것인지 기본 개념만 있으면 따라할 수 있도록 구성하였습니다.

“개발은 만들어보는 것”
서버 로직을 만든다는 것은 화면 개발처럼 시각적으로 눈에 보이는 결과가 나오는 것이 아니므로 ... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함
바로가기
  • 우측 확장형 배너 2
  • 우측 확장형 배너 2
최근 본 상품