Node.js로 프로그래밍 시작하기

Node.js로 프로그래밍 시작하기

$38.83
Description
Node.js 설치부터 채팅 시스템 구현에 이르기까지 Node.js를 활용해 하나의 시스템을 완성하는 방법을 폭넓게 다룬다. 특히 Confetti Cusine이라는 가상 요리 학교의 수업 등록 사이트 제작을 캡스톤 프로젝트로 정하고 이를 구현하면서 실제 Node.js를 활용한 개발 과정을 보여준다. 진행하는 과정에서 볼 수 있는 Q&A를 풀어간다면 Node.js를 활용한 개발에서 기억해야 할 점을 잘 정리하게 될 것이다.
저자

조나단웩슬러

브랜다이스대학교(BrandeisUniversity)에서컴퓨터공학과신경과학을전공했다.필라델피아에사는소프트웨어엔지니어로,웹개발및강의를통해많은고객과학생들의기술적잠재력을깨워왔다.필라델피아와뉴욕에있는단체들과파트너를맺고이들과함께세계의사회및경제적격차를메우기위한활동을하고있다.인도에컴퓨터게임관련학교설립부터NewYorkCode+DesignAcademy와BloombergLP의소프트웨어엔지니어링의개발팀리딩까지,프로그램설계에서베스트프랙티스를적용하고개발성공으로부터얻은영감을공유하고자한다.

목차

추천의글
지은이소개
지은이의말
감사의글
옮긴이소개
옮긴이의말
들어가며

Unit0.시작하기

Lesson0.Node.js의설정과JavaScript엔진설치
__0.1여러분이배울것들
__0.2Node.js의이해
__0.3왜Node.js로개발하는가?
__0.4준비사항
__0.5요약

Lesson1.환경설정
__1.1Node.js설치
__1.2텍스트에디터설치
__1.3SCM과배포도구설치
__1.4터미널에서Node.jsREPL로작업하기
__1.5요약

Lesson2.Node.js애플리케이션실행
__2.1JavaScript파일의생성
__2.2Node.js로JavaScript파일실행하기
__2.3개별JavaScript명령실행하기
__2.4요약

Unit1.Node.js의시작

Lesson3.Node.js모듈의생성
__3.1npm실행
__3.2Node.js애플리케이션의초기화
__3.3요약

Lesson4.Node.js에서웹서버만들기
__4.1웹서버의이해
__4.2npm으로애플리케이션초기화
__4.3애플리케이션코딩
__4.4애플리케이션의실행
__4.5요약

Lesson5.수신데이터다루기
__5.1서버코드의수정
__5.2요청데이터의분석
__5.3웹애플리케이션에라우트붙이기
__5.4요약

Lesson6.라우트와외부파일
__6.1fs모듈을이용한정적파일제공
__6.2에셋제공
__6.3라우트를다른파일로바꿔연결하기
__6.4요약

Lesson7.캡스톤프로젝트:첫번째웹애플리케이션만들기
__7.1애플리케이션의초기화
__7.2애플리케이션디렉터리구조의이해
__7.3router.js및main.js파일의생성
__7.4뷰페이지생성
__7.5에셋추가
__7.6라우트생성
__7.7요약

Unit2.Express.js를통한웹개발

Lesson8.Express.js의설정
__8.1Express.js패키지설치
__8.2첫Express.js애플리케이션의작성
__8.3웹프레임워크를이용한작업
__8.4요약

Lesson9.Express.js에서의라우트
__9.1Express.js로라우트만들기
__9.2요청데이터의분석
__9.3MVC의사용
__9.4요약

Lesson10뷰와템플릿의연결
__10.1템플릿엔진의연결
__10.2컨트롤러로부터의데이터전달
__10.3요소들및레이아웃설정
__10.4요약

Lesson11.설정과에러처리
__11.1시작스크립트수정
__11.2Express.js의에러처리
__11.3정적파일의제공
__11.4요약

Lesson12.캡스톤프로젝트:Express.js를통한ConfettiCuisine사이트개선
__12.1애플리케이션초기화
__12.2애플리케이션제작
__12.3라우트의추가
__12.4뷰로라우팅
__12.5정적뷰제공
__12.6뷰로의콘텐츠전달
__12.7에러처리
__12.8요약

Unit3.데이터베이스연결

Lesson13.몽고DB데이터베이스셋업
__13.1몽고DB세팅
__13.2몽고DB셸에서명령어실행
__13.3애플리케이션에몽고DB연결
__13.4요약

Lesson14.Mongoose를사용한모델제작
__14.1Node.js애플리케이션으로Mongoose설정
__14.2스키마의생성
__14.3모델의분류
__14.4요약

Lesson15.컨트롤러와모델과의연결
__15.1구독자를위한컨트롤러만들기
__15.2포스팅된데이터의모델로의저장
__15.3Mongoose로프로미스사용
__15.4요약

Lesson16.캡스톤:사용자구독저장
__16.1데이터베이스의설정
__16.2데이터모델링
__16.3구독자뷰와라우터추가
__16.4요약

Unit4.사용자모델제작

Lesson17.데이터모델의개선
__17.1모델에유효성평가추가
__17.2REPL에서의테스팅모델
__17.3모델조합의생성
__17.4연결모델로부터의데이터포퓰레이팅
__17.5요약

Lesson18.사용자모델의구현
__18.1사용자모델작성
__18.2모델에CRUD메소드붙이기
__18.3인덱스페이지작성
__18.4액션의정리
__18.5요약

Lesson19.모델의생성과읽기
__19.1새로운사용자폼제작
__19.2뷰로부터새로운사용자생성
__19.3show를통한사용자데이터읽기
__19.4요약

Lesson20.모델의업데이트와삭제
__20.1사용자정보편집폼생성
__20.2뷰에서사용자수정폼
__20.3delete액션에서사용자삭제
__20.4요약

Lesson21.캡스톤프로젝트:ConfettiCusine에CRUD모델추가
__21.1시작하기
__21.2모델의생성
__21.3뷰의생성
__21.4라우트구조화
__21.5컨트롤러제작
__21.6요약

Unit5.사용자계정인증

Lesson22.세션과플래시메시지의추가
__22.1플래시매시지모듈설정
__22.2컨트롤러액션에플래시메시지추가
__22.3요약

Lesson23.사용자로그인폼생성과패스워드해시
__23.1사용자로그인폼
__23.2패스워드의해싱
__23.3express-validator로유효성체크미들웨어추가
__23.4요약

Lesson24.사용자인증추가
__24.1Passport.js의실행
__24.2패스포트등록사용을위한Create액션수정
__24.3로그인시사용자인증
__24.4요약

Lesson25.캡스톤프로젝트:ConfettiCuisine에사용자인증추가
__25.1준비작업
__25.2로그인폼의생성
__25.3passport.js를이용한암호화추가
__25.4플래시메시징추가
__25.5express-validator로유효성체크미들웨어추가
__25.6Passport.js로인증추가
__25.7로그인과로그아웃
__25.8요약

Unit6.API빌드

Lesson26.애플리케이션에API추가
__26.1라우트의구성
__26.2API의생성
__26.3클라이언트로부터API호출
__26.4요약

Lesson27.애플리케이션에서API액세스
__27.1API네임스페이스의적용
__27.2모달을통한강좌의결합
__27.3모델간통신을위한API엔드포인트생성
__27.4요약

Lesson28.API보안
__28.1간단한보안구현
__28.2API토큰추가
__28.3JSON웹토큰의사용
__28.4요약

Lesson29.캡스톤프로젝트:API구현
__29.1라우트의재구성
__29.2강좌의일부추가
__29.3AJAX함수생성
__29.4API엔드포인트추가
__29.5사용자등록을위한액션생성
__29.6요약

Unit7.채팅기능추가

Lesson30.socket.io로의작업
__30.1socket.io의사용
__30.2채팅박스생성
__30.3서버와클라이언트의연결
__30.4요약

Lesson31.채팅메시지의저장
__31.1사용자와메시지의연결
__31.2채팅에서사용자이름표시
__31.3메시지모델의생성
__31.4요약

Lesson32.채팅알림표시추가
__32.1다른소켓으로의브로드캐스팅
__32.2내비게이션에채팅표시기생성
__32.3요약

Lesson33.캡스톤프로젝트:ConfettiCuisine에채팅기능추가
__33.1socket.io설치
__33.2서버에socket.io설정
__33.3클라이언트에서socket.io설정
__33.4메시지모델생성
__33.5접속시메시지읽어들이기
__33.6채팅아이콘설정
__33.7요약

Unit8.프로덕션에서의코드배포와관리
Lesson34.애플리케이션배포
__34.1배포준비
__34.2애플리케이션의배포
__34.3프로덕션에서데이터베이스설정
__34.4요약

Lesson35.프로덕션에서의관리
__35.1시드데이터읽기
__35.2린팅
__35.3애플리케이션의디버깅
__35.4요약

Lesson36애플리케이션의테스팅
__36.1코어모듈의기본테스팅
__36.2mocha와chai를이용한테스팅
__36.3데이터베이스및서버테스팅
__36.4요약

Lesson37.캡스톤프로젝트:ConfettiCuisine의배포
__37.1린팅과로깅
__37.2배포를위한준비
__37.3Heroku로의배포
__37.4데이터베이스의설정
__37.5프로덕션에서의디버깅
__37.6요약

AppendixA.ES6에서소개하는JavaScript문법

AppendixB.로깅과Node.js의전역객체의사용

찾아보기

출판사 서평

★이책에쏟아진찬사★

"Node.js로가는길을실용적이고명료하게제시한다"
카일리심슨(KyleSimpson),Getify

"JavaScript프로그래머를한주안에Node닌자로키워준다"
조셉화이트(JosephWhite),JoecasaConsulting

"최신기술을사용해Node.js앱개발을단계별로안내해주는위대한책"
제레미랭(JeremyLange),Sertifi

"Node의핵심을배우고빠른생산성을갖추기위한모범이되는책"
비풀굽타(VipulGupta),Microsoft

"이해하기쉬우면서모던하고재미있는Node.js안내서"
브라이스달링(BryceDarling),AdvancedData&NetworkSolutions

★이책에서다루는내용★

■ES2015이후의새로운기능들
■비동기코드작성
■데이터모델생성
■JavaScript모듈디버깅


★이책의대상독자★

웹애플리케이션을빌드하고자Node.js및관련도구를배우는데관심이있는독자를위한책이다.이미JavaScript에친숙하지만웹개발경험이없다면더욱유용할것이다.
프로젝트기반으로구성돼있어각자컴퓨터에서의실습에익숙해야한다.백엔드나서비스기술에배경지식은이책을이해하는데큰도움이될것이다.신입개발자라면다음기술에익숙해져야한다.
■JavaScript
■HTML
■CSS
■터미널/CLI
JavaScriptES6엔진에관한지식은도움은되지만필수는아니다.


★이책의구성★

0부에서는시작에필요한배경지식을제공하고Node.js와개발도구설치과정을안내한다.
1부에서는기본적인웹개발개념을다루고기초부터시작해Node.js에서첫번째웹애플리케이션을작성할수있는지침을제공한다.
2부에서는대부분의Node.js개발자가애플리케이션을작성하는데사용하는웹프레임워크Express.js를소개한다.Express.js가제공하는것,작동방식및사용자정의기능등을배운다.MVC(Model-View-Controller)애플리케이션아키텍처패턴도학습한다.
3부에서는애플리케이션을데이터베이스에연결하는과정을설명한다.덧붙여몇가지새로운도구를설치하고몽고DB로데이터베이스를구조화하는방법을설명한다.
4부에서는데이터모델을작성하는방법을설명한다.데이터베이스의데이터생성,읽기,수정,삭제를하는CRUD작업을다룬다.
5부에서는객체지향구조에서사용자계정을나타내는코드작성을설명한다.새로운사용자를위해데이터보안및로그인양식작성도설명한다.
6부에서는API제작을설명한다.API의구성요소,API의보호방법,REST아키텍처를사용해API를디자인하는방법을배운다.
7부에서는애플리케이션에실시간채팅시스템구축방법을추가한다.메인스트림애플리케이션이사용자에게좀더빠르고효율적으로데이터를가져오기위해사용하는라이브러리Socket.io를사용해폴링,웹소켓및데이터브로드캐스팅기능을제공한다.
8부에서는배포프로세스를설명한다.배포에필요한도구와계정을배울것이다.