Java

Do it! Node.js 프로그래밍

우오우어아오앙 2016. 9. 28. 14:12
728x90

 

 

 

실제 서버로 구동 가능한 코드로 배운다!

Do it! Node.js 프로그래밍 



 

 

● 안드로이드 분야 베스트셀러 1위 저자 정재곤 박사

발행일: 2016년 09월 26일 | 688쪽 정가: 35,000

http://www.yes24.com/24/goods/32442876?scode=029

 

 

 

 





이벤트 기간9월 28일 ~ 10월 07

(10일간 진행 후 10월 10일 당첨자 발표)

이벤트 추첨: 10



이벤트 방법이벤트 기간 동안 이 책이 필요한 이유를 간략하게 작성해 주신 후 아래의 자료(Node.js 상세페이지.jpg)를 본인의 블로그나 트위터 등에 게시해 주시면 됩니다이메일도 꼭 남겨주시고요물론 SNS에 게시하지 않으셔도 되지만 게시한 곳이나 게시할 곳 등을 함께 댓글로 남겨주시면 당첨 확률이 높아지겠죠. ^^

 

 

 

 




 

 

◉ 당첨되신 분들은 책을 배송 받은 후 교보문고, Yes24, 반디영풍문고 중에서 2곳에 서평을 남겨주세요. ^^

 

 






 

 

 

 

[간단한 책 소개]

 

 

• 지금 당장 서버가 필요하다면실제 서버로 구동 가능한 코드로 배워라!

웹 서버채팅 서버모바일 서버위치 기반 서비스 서버, JSON-RPC 서버까지 한 권으로 끝낸다이 책은 누구나 쉽게 접근할 수 있는 자바스크립트 언어로 웹 서버를 만들며 서버 개발에 입문한다웹 서버를 만들며 작성한 소스 코드를 바로바로 수정해서 다양한 서버를 단박에 만들 수 있다그래서 이 책을 보면 당신의 회사에 필요한 서버를 지금 당장 만들 수 있는 능력이 생긴다.

이 책의 소스는 실제로 서비스할 수 없는 무용지물 테스트용 서버 코드가 아니다서버 비슷한 것을 만들고도 쓸 수 없었던 슬픈 기억이 있다면 이 책을 선택해야 한다이 책에서 다루는 코드는 Node.js의 최신 Current 버전을 사용하여 새롭게 제공되는 서버 기능을 빠르게 적용할 수 있으며모두 실제 서버로 구동 가능하다실제 돌아가는 서버를 만들고 클라우드에 업로드하는 다양한 방법까지 설명하기 때문에 서버 개발 전과정을 배우며 Node.js 서버 전문가로 거듭날 수 있다.

서버 프로그래밍여러 권 보며 고민하지 말고 첫 입문부터 실무 수준까지 한 권으로 끝내자!




[저자 소개]

 

 

지은이 정재곤 박사

e-메일 : mike.jung.global@gmail.com

 

 

4년 연속 IT 베스트셀러인 Do it! 안드로이드 앱 프로그래밍의 저자현재 서울디지털대학교 초빙 교수이자 벤처 기업의 CTO이기도 한 정재곤 박사는 모바일 전문 컨설팅으로 바쁜 일상을 보내고 있다. T아카데미에서 앱과 웹 분야의 전문 강의를 진행하고 있으며국내 대기업의 개발자들을 대상으로 한 강의와 여러 곳의 대학 특강을 통해 실무 전문가강사대학생 등을 가르쳐 왔다.최신 IT 트렌드와 각종 프로그래밍 과정의 교육 커리큘럼을 개발하였으며미국과 일본 등 해외에서 최신 기술을 적용하는 프로젝트에 관여하고 있다.

 

 

약력

• 서울디지털대학교 컴퓨터공학과 초빙 교수

• ㈜ 유엔에스네트웍스 CTO

• 서울대학교 대학원 박사, GIS 전공

• SK텔레콤 T아카데미 전문 강사

• SK텔레콤 T아카데미 안드로이드 커리큘럼 등 교육 커리큘럼 개발 다수

• 국내해외 모바일 앱 및 웹 서비스 컨설팅설계개발 경력 10년 이상

• 웹 서비스서버 플랫폼모바일 서버모바일 기기용 자바 VM 설계개발 등 다수

 

 

집필 도서

Do it! 안드로이드 앱 프로그래밍, 2016년 1이지스퍼블리싱

자바+안드로이드를 다루는 기술, 2014년 10길벗

 

 




 

 

[목차]

 

 

00 | 노드로 만들 수 있는 대표적인 서버와 용도

서버는 왜 필요할까?

 

 

대표적인 서버 유형은 어떤 것이 있을까?

 

 

웹 서버의 기능은 무엇일까?

 

 

채팅 서버의 중요한 기능은 무엇일까?

 

 

JSON-RPC 서버의 중요한 기능은 무엇일까?

 

 

위치 기반 서비스 서버의 중요한 기능은 무엇일까?

 

 

모바일 서버의 중요한 기능은 무엇일까?

 

 

이 책에서 만들어 볼 화면

설치할 프로그램 목록 미리 확인하기

채팅 서버에 사용자 목록과 일대일 채팅 화면 만들기

위치 기반 서비스 서버에 커피숍 검색 화면 만들기




 

 

01 | 노드에 대해 알아보고 개발 도구 설치하기

노드란 무엇일까?

노드의 비동기 입출력 방식

노드에서 구현하는 이벤트 기반 입출력 방식

노드를 더 쉽게 사용할 수 있게 하는 모듈

 

 

개발 도구 설치하기

설치할 프로그램 목록 미리 확인하기

자바 설치하기

이클립스 설치하기

노드 설치하기

이니드 스튜디오 플러그인 설치하기




 

 

02 | 노드 간단하게 살펴보기

첫 번째 노드 프로젝트 만들기

 

 

콘솔에 로그 뿌리기

명령 프롬프트 열고 자바스크립트 파일 실행하기

명령 프롬프트에 직접 코드 입력해서 실행하기

이클립스 프로젝트 안에 자바스크립트 파일 만들고 실행하기

 

 

프로세스 객체 간단하게 살펴보기

 

 

노드에서 모듈 사용하기

더하기 함수를 모듈로 간단히 분리하기

module.exports로 메인 파일에 더하기 함수 호출하기

 

 

간단한 내장 모듈 사용하기

시스템 정보를 알려 주는 os 모듈

파일 패스를 다루는 path 모듈




 

 

03 | 노드의 자바스크립트와 친해지기

자바스크립트의 객체와 함수 이해하기

변수 만들어 자료형이 무엇인지 알아보기

자바스크립트의 함수 만들어 보기

 

 

배열 이해하기

배열의 모든 요소 하나씩 확인하기

배열에 값 추가 및 삭제하기

splice( ) 메소드로 배열 요소 여러 개를 한꺼번에 추가하거나 삭제하기

 

 

콜백 함수 이해하기

함수를 호출했을 때 또 다른 함수를 파라미터로 전달하는 방법

함수 안에서 값을 반환할 때 새로운 함수를 만들어 반환하는 방법

 

 

프로토타입 객체 만들기




 

 

04 | 노드의 기본 기능 알아보기

주소 문자열과 요청 파라미터 다루기

주소 문자열을 URL 객체로 변환하기

요청 파라미터 확인하기

 

 

이벤트 이해하기

이벤트 보내고 받기

계산기 객체를 모듈로 만들어 보기

 

 

파일 다루기

파일을 읽어 들이거나 파일에 쓰기

파일을 직접 열고 닫으면서 읽거나 쓰기

버퍼 객체 사용하는 방법 알아보기

스트림 단위로 파일 읽고 쓰기

http 모듈로 요청받은 파일 내용을 읽고 응답하기

fs 모듈로 새 디렉터리 만들고 삭제하기

 

 

로그 파일 남기기



 

 

[Do it! 도전 문제] - Mission01 / Mission02

 

 




05 | 웹 서버 만들기

간단한 웹 서버 만들기

클라이언트가 웹 서버에 요청할 때 발생하는 이벤트 처리하기

클라이언트에서 요청이 있을 때 파일 읽어 응답하기

파일을 스트림으로 읽어 응답 보내기

파일을 버퍼에 담아 두고 일부분만 읽어 응답 보내기

서버에서 다른 웹 사이트의 데이터를 가져와 응답하기

 

 

익스프레스로 웹 서버 만들기

새로운 익스프레스 프로젝트 만들기

use( ) 메소드를 사용한 미들웨어 설정 알아보기

미들웨어 직접 만들어 보기

여러 개의 미들웨어를 등록하여 사용하는 방법 알아보기

익스프레스의 요청 객체와 응답 객체 알아보기

redirect( ) 메소드로 무조건 다른 페이지로 이동하기

익스프레스에서 요청 객체에 추가한 메소드 알아보기

 

 

미들웨어 사용하기

static 미들웨어

body-parser 미들웨어

 

 

요청 라우팅하기

라우터 미들웨어 사용하기

URL 파라미터 사용하기

오류 페이지 보여 주기

express-error-handler 미들웨어로 오류 페이지 보내기

토큰과 함께 요청한 정보 처리하기

 

 

쿠키와 세션 관리하기

쿠키 처리하기

세션 처리하기

 

 

파일 업로드 기능 만들기

multer 미들웨어 설치해서 파일 업로드하기

클라이언트의 요청 처리 함수 추가하기

 

 



[Do it! 도전 문제] - Mission03 / Mission04

 

 




06 | 데이터베이스 사용하기

몽고디비 시작하기

몽고디비란?

몽고디비 사용을 위한 프로그램 설치하기

몽고디비에 데이터를 추가하거나 조회하기

 

 

익스프레스에서 몽고디비 사용하기

새로운 프로젝트 만들기

mongodb 모듈을 사용하여 로그인 기능 만들기

사용자가 보내온 아이디와 비밀번호 비교하기

로그인 처리를 요청하는 패스에 라우팅 함수 추가하기

사용자 추가 기능 만들기

데이터베이스 관리 도구 사용하기

 

 

몽구스로 데이터베이스 다루기

몽구스 모듈 사용하기

몽구스로 사용자 인증하기

 

 

인덱스와 메소드 사용하기

사용자 리스트 조회 기능 추가하기

 

 

비밀번호 암호화하여 저장하기

virtual 함수 사용하기

스키마 객체의 virtual( ) 함수 사용법 알아보기

비밀번호 암호화하여 저장하는 코드 적용하기

 

 

MySQL 데이터베이스 사용하기

관계형 데이터베이스 간단하게 이해하기

MySQL 설치하기

화면이 있는 관리 도구 설치하기

MySQL을 사용하는 사용자 추가 기능 만들기

사용자 추가 요청을 처리하는 함수 만들기

MySQL에 들어 있는 사용자 정보로 로그인하기

 

 



[Do it! 도전 문제] - Mission05 / Mission06

 

 




07 | 익스프레스 프로젝트를 모듈화하기

모듈화 방법 자세히 살펴보기

다양한 방법으로 모듈 만들기

exports에 객체 지정하기

module.exports를 사용해서 객체를 그대로 할당하기

module.exports에 함수만 할당하기

exports와 module.exports를 함께 사용하기

require( ) 메소드의 동작 방식 이해하기

모듈을 분리할 때 사용하는 전형적인 코드 패턴

함수를 할당하는 코드 패턴

인스턴스 객체를 할당하는 코드 패턴

프로토타입 객체를 할당하는 코드 패턴

 

 

사용자 정보 관련 기능을 모듈화하기

스키마 파일을 별도의 모듈 파일로 분리하기

사용자 처리 함수를 별도의 모듈 파일로 분리해 보기

 

 

설정 파일 만들기

설정 파일 분리하기

설정 파일에 데이터베이스 스키마 정보 넣기

설정 파일에 라우팅 정보 넣기

 

 

UI 라이브러리로 웹 문서 예쁘게 꾸미기

Semantic UI 라이브러리로 웹 문서 꾸미기

Card 컴포넌트 추가하기

<table> 태그로 로그인 입력 상자와 버튼 추가하기

<stlye> 태그로 전체 화면 모양 만들기

로그인 카드를 모바일 화면에 맞도록 CSS 조정하기

반응형 웹으로 웹 문서를 구별해서 보여 주기

사용자 리스트 웹 문서 수정하기

사용자 조회에 응답하는 웹 문서 꾸미기

사용자 추가용 웹 문서 꾸미기

 

 



[Do it! 도전 문제] - Mission07 / Mission08

 

 




08 | 뷰 템플릿 적용하기

ejs 뷰 템플릿 사용하기

뷰 템플릿으로 로그인 웹 문서 만들기

뷰 템플릿으로 사용자 리스트 웹 문서 만들기

뷰 템플릿으로 사용자 추가 웹 문서 만들기

 

 

jade 뷰 템플릿 사용하기

jade로 HTML 문서 만들기

jade 템플릿으로 로그인 웹 문서 만들기

jade 템플릿으로 사용자 리스트 웹 문서 만들기

jade 템플릿으로 사용자 추가 웹 문서 만들기

 

 



[Do it! 도전 문제] - Mission09 / Mission10

 

 




09 | 패스포트로 사용자 인증하기

패스포트로 로그인하기

로컬 인증을 위해 데이터베이스 스키마와 패스포트 설정하기

로그인과 회원가입 화면을 만들기 위한 라우팅 함수 등록하기

로그인과 회원가입 화면을 만들기 위한 뷰 템플릿 만들기

로그인과 회원가입 기능 실행하여 확인하기

 

 

패스포트 관련 코드를 모듈화하기

 

 

페이스북으로 로그인하기

 

 



[Do it! 도전 문제] - Mission11 / Mission12

 

 




10 | 채팅 서버 만들기

socket.io 사용하기

socket.io를 사용하기 위해 모듈 설치하기

app.js 메인 파일에 기본 코드 하나씩 추가하기

사용자가 웹 브라우저에서 볼 웹 문서 만들기

서버에 보낸 메시지를 그대로 받기

 

 

일대일 채팅하기

 

 

그룹 채팅하기

방 만들기

그룹 채팅에서 메시지 보내기

 

 

채팅 웹 문서 예쁘게 꾸미기

 

 



[Do it! 도전 문제] - Mission13 / Mission14

 

 




11 | JSON-PRC 서버 만들기

JSON-PRC를 웹 서버에 적용하기

JSON-RPC 모듈 설치하여 사용하기

echo 함수 만들어 실행하기

echo 함수의 오류 테스트하기

 

 

계산기 모듈 추가하여 실행하기

1단계핸들러 모듈 파일 만들기

2단계핸들러 모듈 파일 등록하기

3단계클라이언트 웹 문서에서 호출하기

 

 

데이터베이스에서 사용자 리스트 조회하기

 

 

데이터 부분을 암호화하기

 

 



[Do it! 도전 문제] - Mission15 / Mission16

 

 




12 | 위치 기반 서비스 서버 만들기

커피숍 위치 저장하기

커피숍 위치 정보 다루기

커피숍 스키마 만들기

커피숍 정보를 추가하고 커피숍 리스트 조회하기

 

 

가장 가까운 커피숍 찾기

 

 

영역 안의 커피숍 찾기

 

 

반경 안의 커피숍 찾기

 

 

지도에 커피숍의 위치 표시하기

지도에 내 위치 보여 주기

가장 가까운 커피숍을 찾아 지도 위에 보여 주기

일정 범위 안의 커피숍을 찾아 지도 위에 보여 주기

 

 



[Do it! 도전 문제] - Mission17/ Mission18

 

 




13 | 모바일 서버 만들기

모바일 단말에서 웹 서버로 요청하기

안드로이드 앱 개발 도구 설치하기

실제 모바일 단말에 연결하기

모바일용 서버 프로젝트 만들기

안드로이드 앱 프로젝트 만들기

 

 

모바일 단말에서 웹 서버로 요청하기

데이터베이스 스키마 추가하기

라우팅 함수 추가하기

단말 정보 추가를 요청하는 앱 만들기

웹 브라우저에서 단말 리스트 조회하기

 

 

모바일 단말로 푸시 메시지 전송하기

단말의 등록 ID를 확인하여 모바일 서버로 전송하기

웹 브라우저에서 푸시 메시지 전송하기

 

 



[Do it! 도전 문제] - Mission19/ Mission20

 

 




14 | 게시판 만들기

스키마를 추가하고 페이지 단위 조회 방식 이해하기

페이지 단위로 조회하기

 

 

글쓰기와 글 조회 기능 만들기

 

 

페이지 단위로 글 목록 조회하기

1단계 – 라우팅 함수 만들기

2단계 – config.js 파일에 라우팅 함수 등록하기

3단계 – 응답 웹 문서를 구성할 뷰 템플릿 만들기

4단계 – 글 목록 조회를 요청하는 웹 페이지 만들기

 

 


[Do it! 도전 문제] - Mission21/ Mission22

 

 




15 | 클라우드에 올리기

Git 클라이언트 설치하기

 

 

헤로쿠 클라우드에 올리기

 

 

728x90
반응형

'Java' 카테고리의 다른 글

34_StringBuffer / Stringbuilder  (0) 2016.10.06
32_StringBuilder java.lang.StringBuilder.reverse();  (0) 2016.09.29
30_Loop 기초  (0) 2016.09.27
28_문자열 변환 프로그램  (0) 2016.09.26
27_Scanner  (0) 2016.09.26