학과 샘플강의

Node.js - 총 10시간 48분 / 강의당평균 : 32분23초

알지오 2016. 11. 3. 09:13



Node.js

전체 : 10시간 48분 / 강의당평균 : 32분23초

01 Node.js 설치 및 간단한 Node 프로그래밍
Node.js를 설치하고 Node.js를 이용해 간단한 프로그래밍을 진행합니다.
34분
책갈피 : [00:09] node.js 설명 / [00:47] node.js 장점 / [01:33] node.js의 특징 / [02:36] node 개발 환경 구성 / [02:46] windows7 설치 방법 / [03:44] 설치 확인 방법 / [04:24] node에서 hello, world / [04:46] 새 파일 생성 / [05:30] 변수 만들기 / [06:00] 컨텐트 헤더 만들기 / [06:30] 완료가 되었다는 메시지 출력 / [06:46] 확인 / [07:40] 프로그램 알아보기 / [08:00] http모듈 / [08:26] 익명함수 / [09:01] writehead메소드 / [09:11] write메소드 / [09:43] end에 문자열 입력해도 동일 / [09:52] listen / [10:05] console.log / [10:24] 메소드 자세히 살펴보기 / [10:46] code 살펴보기 / [11:41] 비동기 함수 and node event loop / [12:54] node어플리케이션 실행하면 단일 스레드 생성 / [13:56] 각 요청에 대한 리소스가 가능해지면 콜백함수 호출 / [14:31] 비동기 함수 and node event loop를 사용한 파일 생성 / [15:24] fs모듈 불러오기 / [15:50] readfile메소드 사용 / [16:15] 콜백 함수 / [17:26] console.log / [17:41] 확인 / [18:03] 소스 살펴보기 / [19:59] node event loop와 콜백함수의 이점 / [20:47] REPL을 통한 대화형 node / [21:33] REPL환경 살펴보기 / [22:00] REPL사용 방법 / [22:37] 밑줄 명령어 / [23:03] 속성과 메소드 호출 가능 / [23:41] 문자열로 만들기 / [24:00] undefined / [24:52] 파일 실행 가능 / [25:47] REPL안에 모듈을 테스트하는 세션 / [26:22] REPL에서 긴 코드 만들기 / [26:47] x와 y의 곱한 값을 반환하는 함수 / [27:25] 중첩 함수 사용 / [28:26] REPL의 가장 유용한 기능 / [29:47] REPL에서 키보드 제어하는 명령어 / [30:18] tap명령어 확인 / [30:45] 위쪽, 아래쪽 화살표 명령어 / [31:14] .save명령어 / [32:06] 확인 / [32:34] .help는 REPL에서 사용 가능한 명령어 모두 표시 / [32:45] .break명령어 / [33:00] .clear / .exitREPL / .load명령어 / [33:28] .load명령어 사용 / [33:52] .clear명령어 사용

02 Node.js 코어 모듈
모듈 설명/Node 전역 개체/Node의 기본 모듈 정리/console 객체/stdin, stdout, stderr/Buffer/setTimeout/유틸리티 모듈
27분
책갈피 : [00:10] node 코어 모듈 / [00:30] 객체지향 / [00:58] 모듈 / [01:34] node 전역 개체 / [02:23] 전역 개체 설명 / [03:15] global개체를 console에 출력 / [03:53] node의 기본 모듈 / [04:15] console객체의 메소드 / [04:30] console객체를 사용해 반복문의 시간을 측정하는 예제 만들기 / [05:00] 숫자를 출력하는 for문 / [05:25] 소스 입력 후 실행 / [05:40] 소스 살펴보기 / [06:42] process객체 및 속성 / [07:09] 예제 만들기 / [07:46] 소스에 입력된 정보 확인 / [08:24] memoryUsage / [08:46] process객체 / [09:16] stdin, stdout을 사용해 데이터를 읽고 쓰는방법 만들기 / [10:01] 소스 입력 후 실행 / [10:31] 소스 살펴보기 / [10:41] stdin으로 data를 수신해서 stdout으로 받은 data전달 / [11:18] buffer클래스 설명 / [12:01] setTimeout과 같은 타이머 메소드 / [12:15] clearTimeout / setinterval / clearinterval / [12:37] 예제 만들기 / [13:20] 실행 / [13:45] 소스 살펴보기 / [14:15] setTimeout기능 / [15:03] 실행 확인 / [15:18] 유틸리티 함수 모듈 / [15:46] 메소드 살펴보기 / [16:15] 예제 만들기 / [16:33] format메소드 / [17:41] debug메소드 / [18:03] error메소드 / [18:22] isArray메소드 / [18:52] isRegExp메소드 / [19:22] isDate메소드 / [19:52] isError메소드 / [20:37] 가장 많이 사용하는 inherits메소드 / [21:03] 상속 메소드를 활용한 예제 만들기 / [23:37] second를 출력하는지 확인 / [24:22] 3개의 개체 생성 / [24:45] output은 prototype에 의해 외부에 정의 / [25:26] call메소드 / [26:40] two.test

03 File System, Zlib, HTTP 모듈
File System 모듈/File System 메서드/Zlib 모듈/Zlib 메서드/서버, 스트림, 소켓 설명/HTTP 모듈
30분
책갈피 : [00:17] file system 모듈 / [01:23] fs객체의 메소드 / [02:00] 메소드를 사용해서 비동기 형태와 동기 형태의 예제 만들기 / [02:46] unlink메소드를 활용한 예제 / [03:30] 삭제할 파일의 경로 붙여넣기 / [04:00] 실행 확인 / [04:30] 동기버전 예제 / [05:57] 코드 입력 후 실행 / [07:26] 비동기 예제 / [08:15] 파일 만들기 / [08:28] 에러 발생 / [09:09] 비동기메소드-실행 순서를 보장하지 않는 점 / [09:31] 문제 해결 / [10:41] 코드의 다른점 확인 / [11:31] 실행 확인 / [11:52] 파일을 읽는 예제 만들기 / [12:48] 실행 / [13:11] path뒤에 utf8입력 / [13:31] 파일을 쓰는 코드 만들기 / [13:50] writeFile로 변경 후 path뒤에 내용 입력 / [14:24] 확인 / [14:37] 압축:Zlib 모듈 / [15:33] Zlib메소드 / [15:50] 파일 압축하는 예제 만들기 / [16:32] 실행 / [16:48] 문자열을 압축하는 예제 / [17:22] 실행 / [17:41] deflate메소드 / [18:00] 압축된 형식을 해제하는 방법 / [18:45] 실행 / [19:07] 서버, 스트림, 소켓 알아보기 / [19:32] TCP서버, UDP서버, TLS서버 / [19:48] socket / [20:10] stream / [20:30] packet / [20:51] FIN, finish packet / [21:26] TCP서버 만들기 / [23:22] conn.on메소드 사용 / [24:11] client 생성 / [24:45] 서버에 접속하는 connect만들기 / [25:18] 데이터가 들어왔을 때 서버로 보내기 / [26:22] 실행 확인 / [27:15] 소스 살펴보기 / [27:41] remoteport를 log에 기록 / [28:37] process.stdin / [29:07] close하기

04 HTTP, Stream, Pipe, Readline 모듈
UDP 프로토콜 설명/Pipe 모듈/Readline/Event&EventEmitter/Event 객체 메서드 종류
26분
책갈피 : [00:07] UDP 비연결형 프로토콜 / [01:00] UDP 모듈 식별자 dgram / [01:15] 예제 만들기 / [02:36] process.stdin을 통해 data입력 / [03:04] console.log에 toString메소드 사용 / [03:34] client.send에서 보낸 값 / [04:15] 콜백 함수 / [04:46] 서버 만들기 / [06:15] 실행 / [07:00] address와 port번호 출력 / [07:27] ctrl c를 눌러 강제 종료 / [07:55] Stream / [08:09] Pipe / [08:22] Pipe사용법 알아보기 / [09:09] Readline 모듈 / [09:46] Readline을 사용해서 명령어 기반 사용자 인터페이스 만들기 / [11:09] 인터페이스를 닫기위한 함수 / [11:50] 인터페이스를 닫는 명령어 / [12:33] 저장 후 실행 / [13:41] 소스 살펴보기 / [13:56] input, output / [14:26] 쿼리, 콜백 / [14:54] setPrompt / [15:09] prompt / [16:00] interface.on으로 이벤트 발생 / [17:07] Event와 EventEmitter / [18:00] event모듈 활용 / [18:51] on 이벤트 처리기는 특정 이벤트가 발생될 때 호출 / [19:26] EventEmitter 인스턴스에 오류 발생 / [19:56] EventEmitter기능을 살펴보기 위한 예제 / [20:36] 3초마다 이벤트를 발생시켜서 특정 문자를 출력하는 이벤트 / [21:22] setInterval / [21:44] 실행 / [22:26] event 객체 메서드 종류 / [22:41] addListener / on / [23:22] once / [23:47] removeListener / [24:15] removeAllListeners / [24:25] setMaxListeners / [24:45] listeners / [25:11] emit

05 읽기 및 쓰기 가능 스트림
읽기 가능 스트림/순차 기능, 중첩 콜백/동기적 콜백/비동기 중첩 콜백/중첩 콜백
23분
책갈피 : [00:05] 읽기 및 쓰기 가능 스트림 / [00:25] 읽기 가능 스트림 / [01:19] 예제 만들기 / [01:38] 상속 메서드 사용 / [02:07] inputCheck / [03:00] inputCheck에 eventEmitter를 상속 / [04:23] 새로운 객체와 이벤트 처리를 테스트 / [04:56] write이벤트 / [05:15] echo이벤트 / [05:30] end이벤트 / [06:11] 실행 / [06:44] 코드 살펴보기 / [07:00] inputCheck함수 / [07:41] path, options / [08:33] option이 a라는 것은 appending / [08:52] 실행 / [09:35] prototype으로 하는 이유 / [10:52] 문자열을 비교해서 이벤트 발생 / [11:45] 순차 기능, 중첩 콜백 / [12:43] 순차 기능 예제 만들기 / [13:09] 오류 처리를 위해 try문 사용 / [14:28] 실행 / [14:54] 동기 버전을 비동기 버전으로 만들기 / [16:22] 실행 / [16:41] 코드 비교 / [17:55] 조금 더 복잡한 중첩 콜백 예제 만들기 / [18:41] 기본적인 옵션 설정 / [18:59] 중첩 콜백 사용 / [20:32] 완료 했다는 log / [21:02] 실행 / [21:22] 중첩 콜백을 사용했지만 비동기적으로 확인 / [21:56] 순차적으로 나오지 않은 이유 / [22:37] forEach때문에 비동기적으로 실행

06 제어 흐름 모듈 (Async & Step)
Step 모듈/Step 모듈 예제/Async 모듈/Async 메서드 종류/Async 모듈 예제
20분
책갈피 : [00:07] 제어 흐름 모듈(Async 와 Step) / [00:54] Step 설명 / [01:36] 예제 만들기 / [02:19] try문으로 실행하고 step을 사용해 객체 불러오기 / [02:27] readData함수 / [02:38] modify함수 / [03:00] writeData함수 / [03:28] cmd창을 열고 step설치 / [03:53] 실행 / [04:11] 소스 살펴보기 / [05:23] this / [06:30] 이전 예제를 step모듈을 사용한 예제로 만들기 / [07:15] group메소드 사용 / [09:20] 저장 후 실행 / [10:05] 소스 확인하기 / [11:11] Async 설명 / [12:16] step과 다른 접근 방법 / [12:43] Async의 함수 / [13:13] 예제 만들기 / [13:54] waterfall사용 / [14:13] readData함수 / [14:37] modify함수 / [14:52] writeData함수 / [15:52] 실행 / [16:22] 소스 살펴보기 / [16:52] 함수의 매개변수로 callback필요 / [18:07] err를 테스트하고 결과를 return / [18:41] 중첩 콜백을 사용해 복잡한 것을 처리하는 예제 만들기 / [19:32] readDir함수 / [19:48] loopFile함수 / [20:07] checkFile함수 / [20:22] readData함수 / [20:47] modify함수 / [21:07] writeData함수 / [21:59] 실행 / [22:32] 순차적으로 실행 / [23:03] node의 forEach메소드 / [23:14] stat메소드 / [23:48] parallel함수를 사용한 예제 만들기 / [25:26] 4개의 data / [26:02] 실행 / [26:17] 소스 살펴보기

07 정적 파일 서버
정적 파일 서버 만드는 순서/정적 파일 서버 예제/미들웨어 Connect 모듈/Connect 메서드 종류/Connect 기반 app 예제/라우터 router 설명/crossroads 메서드 종류/crossroads 예제
24분
책갈피 : [00:06] 간단한 정적 파일 서버 만들기 / [00:21] 단계 / [01:15] base경로 확인 / [01:47] 코드 작성하기 / [01:57] http서버 생성 / [02:30] http서버 열기 / [02:46] 파일 경로 만들기 / [03:30] 파일 여부 확인 / [03:53] 파일이 존재하지 않을 경우 / [04:15] 헤더 세팅 / [04:54] readFile, createReadStream / [05:44] 결과를 pipe / [06:11] client가 요청하는 html client side만들기 / [06:30] html head만들기 / [06:46] body에 이미지와 미디어파일 불러오기 / [07:30] 확인 / [08:26] 소스 살펴보기 / [08:50] ReadStream파일로 불러오기 / [10:24] 미들웨어 Connect / [10:50] Connect 설치하는 방법 / [11:20] 예제 만들기 / [11:54] .use사용 / [12:26] 실행 / [12:50] static을 사용한 예제 / [13:35] createServer / [14:07] 실행 / [14:31] 코드 비교 / [15:28] logger를 사용한 예제 / [16:02] writeStream객체 생성 / [16:55] 실행 / [17:33] 코드 살펴보기 / [17:48] 파일형식 dev / [18:26] 라우터 (Routers) / [19:07] Crossroads설치 / [19:26] Crossroads 메서드 종류 / [19:52] addRoute, parse를 사용한 예제 만들기 / [20:36] addRoute를 통해서 라우트 추가 / [21:14] 서버를 만들고 url을 parse / [21:30] 실행 / [22:40] 소스 살펴보기 / [24:00] road에서 router를 사용하는 이유

08 Express 모듈(프레임워크)
express 모듈 설명/express 설치/express 예제/express 500 에러 처리/express 환경설정/express 서버/express 라우팅/express 오류 처리
28분
책갈피 : [00:06] Express 모듈(프레임워크) / [00:48] express설치 / [01:23] express로 app만들기 예제 / [02:19] firstweb 디렉터리 / [02:37] node app.js로 설치 되었는지 확인 / [03:21] 에러가 발생할 경우 / [04:10] app형태 분석하기 / [04:15] configure메서드 사용 / [04:46] development모드 / [05:00] set / router / get / post / [05:54] 환경 설정 / [07:12] express를 사용해서 서버 만들기 / [07:46] express와 app을 따로 만들기 / [08:37] 실행 / [09:15] Express-라우팅 / [10:15] 예제를 통해 알아보기 / [10:30] route에 대해 간단한 app만들기 / [11:11] send메서드 사용 / [12:11] 실행 / [13:20] content확인 / [13:43] 소스코드의 패턴 / [14:24] app.get의 id패턴 / [14:39] params / [15:43] output.txt / [16:00] 저장 되었는지 확인 / [16:26] 복잡한 예제 만들기 / [17:36] loadUser / [17:52] restrictToSelf / [18:26] get설정 / [19:52] 객체 생성 / [21:14] 실행 확인 / [22:18] 이메일 추가 / [22:45] 실행 / [23:06] 소스 확인하기 / [23:33] next 인수 / [25:22] Express 오류처리 / [26:52] express.errorHandler사용 / [27:06] 에러 메시지 추가

09 HTTP 메서드와 라우팅
HTTP 메서드 예제/Post/EJS 템플릿 시스템/EJS 템플릿 필터/Jade 템플릿 시스템
26분
책갈피 : [00:07] http메서드를 사용한 예제 만들기 / [00:37] index.html파일 생성 / [00:53] form생성 / [01:18] submit버튼 생성 / [01:26] index 확인 / [01:53] 환경 설정 / [02:29] 콜백 function / [02:50] 저장 후 실행 / [03:29] 이름 입력 / [03:43] 소스코드 살펴보기 / [04:00] bodyParser / [04:15] methodOverride사용 / [05:00] get / put / [05:28] post 대신 put 사용 / [05:46] 저장 후 실행 / [06:11] 라우팅을 사용한 예제 만들기 / [06:44] head파일 붙여넣기 / [07:00] method는 post / [07:27] widget price / [07:42] input type 은 hidden / [07:46] 저장 후 실행 / [08:05] 편집하기 / [08:22] widget 만들기 / [09:05] widget의 id값 / [09:35] action설정 add / [10:01] widgets.length+1에 들어가는 값 / [10:22] float사용 / [10:46] widgetname설정 / [11:01] 저장 후 실행 / [12:01] EJS 템플릿 시스템 / [12:31] npm install ejs 모듈 설치 / [12:45] EJS 명령의 범위를 설정 / [13:03] 예제 만들기 / [13:28] http모듈 호출 / [13:52] writeHead / [14:28] title과 names / [15:11] test.ejs파일을 만들어 불러오기 / [15:54] 소스 입력 후 저장 실행 / [16:41] 소스 살펴보기 / [17:06] ejs.renderFile / [17:29] test.ejs 파일 살펴보기 / [18:30] EJS 템플릿 필터 / [19:00] 예제 만들기 / [19:26] 5개의 배열 생성 / [19:44] sort와 join사용 / [20:26] test2.ejs파일 생성 / [20:37] head만 작성 / [20:48] 저장 후 실행 / [21:14] sort 필터 / [21:40] join은 배열을 받아 문자열로 반환 / [21:52] ejs.render는 문자열 반환 / [22:22] downcase와 upcase / [22:44] Jade 템플릿 시스템 / [23:15] 들여쓰기 / [23:33] 예제 만들기 / [23:59] body에 name불러오기 / [24:37] fs.readFile / [25:22] 저장 후 실행

10 CSS 단순화 - stylus 모듈
Account 모델 생성하기
32분
책갈피 : [00:08] css단순화 - stylus모듈 / [00:18] stylus 설치 방법 / [00:41] 예제 만들기 / [00:58] 중괄호, 세미콜론, 콜론 생략 / [01:44] arguments삽입 / [02:29] Express+EJS+Jade+stylus 어플리케이션 만들기 / [03:05] 완성된 예제 확인 / [03:35] account 폴더 만들기 / [04:00] 기본적인 외부 모듈 가져오기 / [04:26] EJS와 stylus 설치 / [04:54] app파일 열기 / [05:15] MVC모듈과 비슷하게 만들기 / [05:56] maproute와 controllers부터 만들기 / [06:46] 서버 수정 / [07:00] map객체를 만들고 사용자 정의 외부 모듈 가져오기 / [07:15] 환경설정 수정 / [07:28] public은 methodOverride앞에 배치 / [07:56] Cache설정 / [08:26] 새로운 객체 생성 / [08:52] mapRoute함수 정하기 / [09:33] 수정 후 저장 / [09:43] mapRoute메소드 만들기 / [10:16] prefixObj만들기 / [11:52] products 배열 생성 / [12:46] added, edit, index, show호출 / [13:13] render메소드 사용 / [14:03] new만들기 / [14:54] create만들기 / [16:11] show만들기 / [16:48] edit만들기 / [17:18] update만들기 / [18:18] destroy만들기 / [18:47] controllers 만들기 완료 / [19:02] new.html파일 만들기 / [19:25] 새로운 product추가 / [19:52] name값 설정 / [20:11] 두번째 form만들기 / [20:36] Description부분 만들기 / [21:03] submit, reset버튼 만들기 / [21:26] 화면 만들기 / [21:51] index.ejs만들기 / [22:21] body에 자바스크립트 작성 / [22:56] 값 불러오기 / [23:26] edit링크 / [24:07] show.ejs만들기 / [24:33] delete product버튼 / [25:03] added.ejs만들기 / [25:26] create가 되었을 때 added실행 / [26:00] edit.ejs만들기 / [26:22] 수정하는 버튼 put / [26:44] value값 / [27:03] 실행 / [28:15] 소스 살펴보기 / [28:33] products라는 prefixes를 만들어 사용 / [29:33] new를 입력해서 new를 호출 / [30:15] added를 렌더링해 값 보내기 / [30:45] edit를 눌렀을 경우 / [31:14] edit은 update호출 / [31:47] index에서 delete를 눌렀을 경우 / [32:09] EJS를 사용한 뷰 화면

11 EJS 파일에 Jade와 Stylus 적용하기
EJS 파일에 Jade와 Stylus 적용하는 실습을 진행합니다.
22분
책갈피 : [00:10] EJS파일에 jade와 stylus 추가하기 / [00:36] 만들었던 ejs페이지 불러오기 / [01:38] index.ejs파일을 jade파일로 만들기 / [02:00] layout.jade파일 만들기 / [02:28] header.jade파일 만들기 / [02:46] 링크 / [03:07] body는 block처리 / [03:30] table생성 / [04:24] row.jade만들기 / [04:58] href입력 / [05:26] added.jade만들기 / [06:08] product.jade만들기 / [06:30] edit.jade만들기 / [06:57] form만들기 / [07:29] product name / [07:59] product price / [08:35] product description / [08:52] input입력 / [09:03] show.jade만들기 / [09:24] include product / [09:35] form작성 / [10:24] 서버 수정 / [10:43] stylus추가 / [10:56] main.css파일 만들기 / [11:30] style.css파일 불러와 저장 / [11:37] 실행 확인 / [12:20] edit 에러 / [12:41] textarea입력 후 저장 / [13:05] jade는 들여쓰기가 중요 / [13:35] Redis 모듈 / [14:24] redis 설치와 사용법 / [14:45] basic host, port / [15:01] redis download / [15:26] redis-server실행 / [15:54] redis를 불러오고 client생성 / [16:15] redis.print메소드 / [16:51] 저장 후 실행 / [17:30] 에러가 없으면 값 저장 / [18:03] hset / [18:26] hkeys / [18:52] quit / [19:06] 강제 종료는 client.end / [19:33] redis알아보기 / [19:44] 서버 실행 후 redis-cli실행 / [20:11] 데이터가 존재하는지 알아보기 / [20:30] hset보기 / [21:03] hkeys-배열로 불러오는 것

12 Redis 모듈
Redis 설치 및 사용/Mongo DB 설치/SQL과의 질의문 비교
26분
책갈피 : [00:02] redis 모듈 / [00:23] 예제 통해 알아보기 / [00:49] subscriber / publisher / [01:19] 첫번째 channel의 정보 / [01:55] subscriber객체가 message를 받게되면 호출하는 함수 / [02:23] counter가 2번의 메시지를 받을 경우 / [02:53] subscribe로 이벤트 시작 / [03:07] redis-server를 실행하고 결과 확인 / [03:30] channel 변경 후 실행 / [03:45] 소스 살펴보기 / [04:30] unsubscribe / [04:53] MongoDB / [05:42] MongoDB 다운로드 / [06:14] 다운 받은 후 압축 해제 / [06:46] 새 폴더 생성 / [07:09] 실행 방법 / [08:16] 서버를 열어놓은 상태에서 cmd창 열기 / [08:33] mongo실행 / [09:07] mongo서버 객체 생성 / [09:54] Db객체 생성자 사용 / [10:33] SQL과 MongoDB / [11:28] SQL과의 질의문 비교 / [12:37] shell에서 예제 사용하기 / [13:03] use testDB 사용 / [13:30] 정의된 객체 컬렉션에 담기 / [14:01] 저장이 잘 됐는지 find / [14:30] for문 사용 / [15:03] fild값을 이용해서 데이터 검색 / [15:24] forEach문으로 printjson / [15:37] 특정 fild값만 출력할 경우 / [15:54] 하나의 데이터만 출력하는 방법 / [16:11] MongoDB native driver를 사용한 예제 / [16:41] server객체 생성 / [17:07] db.open / [17:22] 에러가 없을 경우 collection생성 / [17:48] remove메소드가 받는 3개의 매개변수 / [18:26] 레코드 넣기 / [18:52] 레코드 하나 더 생성 / [19:22] 옵션 추가 / [19:48] 저장 후 실행 / [20:17] 소스 살펴보기 / [21:00] 안전모드 값 true설정 / [21:37] 배열 형식 / [21:55] 저장 후 실행 / [22:07] 예제 추가로 만들기 / [22:25] 전에 만든 내용에 레코드 추가 / [22:48] collection.find사용 / [23:06] 저장 후 실행 / [23:33] 가격 변경 후 store라는 fild생성 / [24:06] find에 옵션 추가 / [24:29] 결과 확인 / [24:41] id값 삽입 / [25:06] findOne사용

13 Mongoose 모듈
Mongoose 설치 및 사용방법을 알아보고 실습합니다.
24분
책갈피 : [00:04] Mongoose 모듈 / [00:34] mongoose 설치와 사용방법 / [00:49] schema를 만들어 객체에 할당 / [01:34] 예제 만들기 / [02:00] 데이터 베이스 연결 / [02:46] instance / [03:15] schema생성 / [04:12] instance값 입력 / [04:30] instance.save / [04:54] 출력 부분 / [05:15] 저장 후 실행 / [06:30] 파일 불러오기 / [06:46] 객체에 mongoose포함 / [07:00] 연결 / [07:58] routes를 main으로 변경 / [08:50] model폴더 안에 schema만들기 / [09:43] id는 sn / [10:37] products.js파일 소스 보기 / [11:18] index에 product.find / [12:09] create에 product추가 / [12:45] productObj생성 / [13:35] show부분 작업 / [14:31] edit부분 작업 / [15:22] update부분 수정 / [16:33] destroy부분 수정 / [17:37] sn을 포함한 뷰 만들기 / [17:52] new.html파일 열기 / [18:06] product serial number추가 / [18:52] views에 있는 jade파일 열기 / [19:22] show.jade파일 수정 / [19:37] row.jade파일 수정 / [19:45] product.jade파일 수정 / [20:03] index.jade파일 수정 / [20:18] edit.jade파일 수정 / [21:06] maproute.js파일 수정 / [21:18] 저장 후 실행 / [21:41] 확인 / [22:59] 서버 껐다 켜기 / [23:33] 수정, 추가, 삭제하는 것 확인

14 Mysql 모듈
node-mysql을 사용한 JavaScript MySQL 접근방법에 대해 설명하고 실습합니다.
26분
책갈피 : [00:14] mysql 모듈 / [00:32] native driver사용법 / [01:10] mysql설치 / [01:30] 예제를 통해 알아보기 / [01:51] connection에 연결 / [02:04] user설정 / [02:23] database와 connection연결 / [02:53] cmd창 열고 mysql설치 / [04:10] 조회해서 값 얻기 / [04:26] table이름 입력 후 행가져오기 / [04:57] 입력한 값을 불러오는 예제 만들기 / [05:15] manage DB connections에 들어가서 new connection만들기 / [05:43] schema만들기 / [06:00] table만들기 / [07:30] sqlQuery / [08:01] callback함수 / [08:39] query값 입력 / [08:52] 실행 확인 / [09:22] set_post값 변경해서 확인 / [10:00] callback함수 만들기 / [10:26] for문 사용 / [11:01] 소스 살펴보기 / [12:20] Web socket과 Socket.io / [13:24] 어떻게 동작하는지 그림자료 확인 / [14:15] 예제를 통해 설치와 사용법 알아보기 / [14:43] 새 파일 만들기 / [15:01] handler만들기 / [15:39] main.html파일 만들기 / [15:58] emit로 message보내기 / [16:33] socket.io설치 후 실행 / [16:48] 확인 / [17:59] 받은 message를 console로 출력 / [18:21] 소스 살펴보기 / [18:41] on과 emit사용 / [19:32] client단에서 hello world받아오기 / [20:11] html만들기 / [20:48] 저장 후 실행 / [21:18] 새로운 예제 만들기 / [21:37] server객체 만들기 / [22:25] getname.html만들기 / [22:52] setname이벤트 / [23:33] 이벤트 세팅 후 저장 / [23:59] script설정 / [24:11] body에 button생성 / [24:48] setname발생 / [25:06] putname발생 / [25:37] 저장 후 실행 확인

15 Chat room 만들기
웹 소켓을 이용한 채팅 어플리케이션 제작을 진행합니다.
1시간 7분
책갈피 : [00:06] 웹 소켓을 사용한 채팅 어플리케이션 만들기 / [00:26] socket.io 모듈로 생성할 수 있는 소켓 통신 방법 / [01:23] 예제 만들기 / [01:45] chat.html 파일 생성 / [02:04] title설정 / [02:30] div를 사용해서 output생성 / [02:45] send생성 / [03:00] input type설정 / [03:23] script안에 socket생성 / [03:59] 사용자가 들어오면 이벤트 실행 / [04:42] 서버에서 받은 문자열을 html로 변환 / [05:15] 버튼을 눌렀을 때 이벤트 발생 / [06:00] data는 input data를 의미 / [06:30] 새 파일 생성 / [06:45] handler만들기 / [07:44] socket연결이 되면 실행 / [08:03] username으로 data받기 / [08:24] chat이벤트 발생 / [09:26] message를 입력하고 send chat했을 경우 / [10:01] 상대가 나갔을 경우 message띄우기 / [10:52] 실행 확인 / [11:11] html의 lang지 설정을 하지않아 생긴 에러 / [11:39] 재 접속 / [11:56] F12를 눌러서 소스 확인 / [12:54] 실시간 채팅창 확인 / [13:33] 소스 살펴보기 / [14:13] sockets.on connection이 이루어질 경우 / [14:39] connect가 되는 순간 이벤트 발생 / [15:31] username / [16:00] soket.broadcast.emit / [16:37] data에 이벤트 걸기 / [17:29] 채팅 메시지 서로 전달 / [17:37] disconnect할 경우 / [18:18] 가상데이터가 아닌 실제 채팅방 만들기 / [18:33] Nodemon 모듈 / [19:14] Nodemon설치와 사용방법 알아보기 / [19:41] nodemon이 설치 되었으면 전에 만든 예제를 nodemon으로 실행 / [20:18] 변경된 내용으로 저장 / [20:40] supervisor 모듈 설치 / [21:03] 변경된 내용 저장되어 실행 / [21:30] 실제 chat room 만들기 / [22:52] 채팅방을 만들 때 사용하는 모듈 종류 / [24:07] express로 어플리케이션 만들기 / [24:37] chat으로 들어가 모든 라이브러리 다운 / [24:47] 실행 / [25:11] index.html만들기 / [25:33] jquery추가 / [26:00] body에서 contents생성 / [26:25] 로그인 class생성 / [27:18] 현재 user들의 정보 counter생성 / [27:56] 채팅창 생성 / [28:11] 미접속시와 접속 후 보여지는 영역 / [28:22] user / [28:56] 채팅창 영역 / [29:07] 글 입력 영역 / [29:37] 입력과 나가기 영역 / [30:03] log영역 / [30:18] script설정 / [30:41] 현재 접속자 수를 얻는 이벤트 / [32:36] 함수 생성 / [32:59] style.css설정 / [35:07] server만들기 / [35:21] 필요한 모듈 불러오기 / [36:06] schema, ObjectId, chatLogSchema생성 / [36:45] chatLogModel객체 생성 / [37:22] user 채팅 사용자 정보 객체 / [37:52] http서버 설정 / [38:36] getToday함수 만들기 / [39:30] 실행 확인 / [39:57] div 수정 / [40:20] 저장 후 실행 / [41:07] 파일 로딩 후 이벤트 추가 / [41:37] 사용자 접속시 발생하는 이벤트 / [43:27] socket이벤트 추가 / [44:28] 동일한 id를 가지고 있는 사용자가 있다면 chat_fail이벤트 발생 / [45:45] log이벤트 띄우기 / [47:07] 스크롤 가장 아래로 내리기 / [47:22] 로그인 실패시 알림창 띄우기 / [48:52] 채팅창에 enter를 쳤을시 발생하는 이벤트 / [49:22] chat_input함수 / [50:28] message이벤트가 발생했을 경우 / [51:30] chat_out함수 / [52:22] chat_id값 초기화 / [53:15] users객체에 현재 id값이 있는지 체크 / [53:57] log에 기록을 하고 나간 시간 구하기 / [54:45] refresh_userlist / [55:00] someone_leaved, refresh_userlist입력 / [56:00] message를 받았을 때 이벤트 처리 / [56:37] 데이터 디코딩 작업 / [57:22] chat_out함수 실행 / [57:37] connection함수 / [58:20] chat_in함수 / [59:05] chat_user함수 / [59:37] 실행 확인 / [60:57] 실시간 채팅창 확인 / [61:29] 소스 살펴보기

16 Node.js 활용 part1
웹사이트데이터가져오기/Nodemailer 모듈/mkdirp 모듈/클라우스 서비스로 개발, 배포/ntwitter, Socket.io 모듈로 twitter API 사용하기
51분
책갈피 : [00:08] 웹 사이트 데이터 가져오기 / [00:34] request, cheerio모듈 설치 / [01:11] 예제 만들기 / [01:37] cheerio객체 생성 후 리스트 만들기 / [01:59] cheerio, request설치 / [02:43] 선택자를 사용해 ul태그 선택 / [03:19] 실제 웹 사이트에 가서 데이터 가져오는 예제 / [04:00] 저장 후 실행 / [04:15] 필요한 정보만 가져올 수 있게 만들기 / [04:46] 홈페이지의 title만 가져오기 / [05:15] 저장 후 실행 / [05:45] Nodemailer 모듈 / [06:30] nodmailer설치 / [06:54] nodmailer객체 생성 / [07:30] gmail에 가입한 형식대로 id입력 / [08:13] 실행 후 확인 / [08:46] html 전송 / [08:58] text아래 html입력 / [09:48] text 주석처리 / [09:58] 실행 후 확인 / [10:22] 파일 전송 / [10:33] fs모듈 불러오기 / [10:45] html아래 attachments입력 / [11:28] 실행 후 확인 / [12:09] mkdirp 모듈 / [12:58] 폴더 만들기 / [13:16] 실행 후 확인 / [13:58] dnode 모듈 / [14:26] 설치 후 예제 만들기 / [14:48] server.js에 곱하기 프로그램 입력 / [15:03] client.js에 곱하기 연결 / [15:30] cmd창을 2개 열어 server.js와 client.js실행 / [16:22] 복잡한 예제 만들기 / [17:03] 예제 실행 / [18:33] 클라우드 서비스로 개발, 배포 / [19:36] 장점 / [20:07] 흔히 사용되는 클라우드 서비스 / [20:26] cloud9IDE 사이트 / [21:18] 접속 후 go to your dashboard / [22:07] 예제를 만들어 heroku호스팅 서비스를 사용해서 호스트 배포 / [23:15] 설치 완료 후 express로 예제 만들기 / [23:48] 모듈 설치 / [24:56] 기존 예제 가져오기 / [25:45] port 수정 / [25:56] node app실행 / [26:36] procfile만들기 / [27:15] heroku호스팅 서비스 가입 / [27:41] toolbelt다운 / [28:29] id_rsa.pub파일 수정 / [29:22] heroku keys:add입력 / [29:52] deploy 배포하기 / [30:37] 업로드 / [31:26] nodejs클라우드 개발환경 nitrous.io / [32:07] new box 선택 / [32:44] 서버 띄우기 / [33:22] index.html파일 생성 / [33:37] preview-port3000 / [34:07] nitrous.io를 사용해서 app만들기 / [34:27] server.js파일과 index.html파일 생성 / [34:52] server에 fs모듈 불러오기 / [35:14] app 환경 설정 / [35:45] index꾸미기 / [36:15] 업로드할 파일 선택 / [36:45] ntwitter, socket.io모듈로 twitter API사용하기 / [37:21] dev.twitter.com접속 / [37:37] create new app / [38:15] read and write로 변경 / [38:30] API keys / [39:27] 예제 만들기 / [40:04] twitterModule.js 모듈 세팅 / [40:37] 예제 기본적인 세팅 / [41:19] 저장 후 실행 / [41:45] twit.stream api활용 / [42:14] 예제 실행 / [42:52] twit.stream / [43:13] 실행 / [43:37] 특정한 경계 위치의 twit.stream / [44:07] 사용방법 locations / [44:30] 실행 / [45:06] 특정한 단어 포함의 twit.stream / [46:00] client사이드로 나타내기 / [46:28] app.js 수정 / [47:14] socketIO모듈 추가 / [47:52] socket이벤트 생성 / [48:30] public안에 index.html파일 생성 / [49:49] locations설정 / [50:29] 실행 확인

17 Node.js 활용 part2
칸반보드 만들기/TCP, UDP 서버 외부와 연결시키기
47분
책갈피 : [00:03] 칸반보드 / [00:32] express, mongoDB, mongoose, jade / [00:49] MVC / [01:29] 그림으로 이해하기 / [03:00] 장점 / [03:43] view부분 jade로 꾸미기 / [05:10] 예제 환경 구축 / [05:30] 칸반보드 설치 / [05:56] mongoose모듈 설치 / [06:30] 칸반보드의 view만들기 / [06:46] bootstrap오픈소스 사용 / [07:14] bootstrap CDN복사 / [07:29] layout.jade파일에 붙여넣기 / [08:18] 만들어볼 스타일-jumbotron / [08:58] F12눌러 소스 보기 / [09:41] container안에 jumbotron생성 / [10:43] row생성 후 컬럼 생성 / [11:18] tasks 추가할 때마다 배열을 확인하며 tasks늘려주기 / [12:11] 컬럼 생성(복사해서 값만 변경해서 사용) / [13:24] 확인을 위해 샘플로 파일 만들기 / [14:16] controllers에 파일 추가 / [15:28] app.js 수정 / [15:39] controllers추가 / [16:22] 저장 후 실행 / [17:10] 실제 데이터 생성하고 추가,삭제,변경 과정 수행 / [17:22] mongoDB와 mongoose를 사용해서 구현 / [18:07] router.js 수정 / [18:48] app에 인자값을 받아 넘기기 / [19:55] schema정의 / [20:33] module.exports / [20:51] db연결 / [21:11] connect function 만들기 / [21:33] db에 connection되었다면 이벤트 발생 / [22:00] error가 났을 경우 / [22:22] disconnected경우 / [22:47] process가 생겼을 경우 / [23:55] task-controller.js 소스 입력 / [24:26] 배열 생성 / [24:41] key값 대로 for문 돌리기 / [25:03] 메인 페이지에 배열 띄우기 / [25:30] create만들기 / [25:51] newTask 변수 만들기 / [26:33] remove만들기 / [26:48] update만들기 / [27:33] app.js 수정 / [28:33] 저장 후 실행 / [29:26] TCP/UDP 서버 외부와 연결시키기 / [30:40] UDP서버를 node.js를 이용해 통신하기 / [31:06] 새 프로젝트 생성 / [32:07] Quoteserver.java파일 만들기 / [32:36] Quoteserverthread.java파일 만들기 / [32:57] one-liners.txt파일 만들기 / [33:14] Quoteclient.java파일 만들기 / [33:30] one-liners의 해당경로 복사해서 Quoteserverthread.java파일에 붙여넣기 / [34:15] Quoteserver-run as-java application / [34:34] java client구동 / [35:00] arguments에 localhost입력 / [35:42] node.js로 client모듈 만들기 / [35:52] dgram모듈 / [36:27] udp_client.js / [37:07] createSocket / [37:30] client이벤트 붙여주기 / [37:52] http서버 만들기 / [38:42] socket에 대한 속성 / [39:04] 실행 / [39:58] TCP기반을 통한 구현 / [40:14] 새 프로젝트 생성 / [41:07] 파일 생성 / [42:04] KnockKnockServer-arguments에 15001입력 / [42:15] client모듈 실행 / [42:52] console창에 입력해서 서버 응답 확인 / [43:15] node.js를 통해 만들기 / [43:30] tcp는 net모듈 사용 / [44:42] socket connect / [45:44] http모듈 생성 / [46:09] 실행 확인

18 Node.js 활용 part3
전자칠판 만들기/전자칠판에 Open API 연동하기
53분
책갈피 : [00:05] 전자칠판 만들기 / [00:28] express로 프로젝트 생성 / [01:03] board.html파일 생성 / [01:25] js폴더 생성 후 board.js파일 생성 / [01:47] html파일에 script와 css입력 / [02:05] 칠판에 사용할 그림 다운로드 / [02:23] canvas생성 / [02:44] css파일 수정 / [03:00] 실행 확인 / [03:30] board.js파일에 소스 입력 / [04:46] 실행 확인 / [05:14] 코드 변경 / [05:38] shape와 draw로 나누기 / [05:46] bind사용 / [06:23] shape 확인 / [06:46] draw 확인 / [07:15] 실행 / [07:38] menu class생성 후 button생성 / [08:11] clear함수 만들기 / [08:56] 저장 후 실행 / [09:15] 칠판에서 글자 굵기와 색상변경 옵션 추가 / [09:37] css 파일 수정 / [10:37] board.js파일에 배열 객체로 만들기 / [11:37] 저장 후 색상변경 확인 / [12:13] 변경된 값이 펜에 적용 되도록 만들기 / [12:37] change라는 이벤트핸들러 만들기 / [13:28] 펜모양 설정 / [13:58] 저장 확인 / [14:43] socketio를 이용해서 양방향으로 글씨를 쓰는 기능 구현 / [15:13] express server설정 / [15:35] 저장 확인 / [15:58] html파일 script에 socketio.js추가 / [16:11] board.js파일에 전역변수 선언 / [17:25] 선을 그리기위해 데이터 넘겨주는 방법 / [17:59] data schema설계 / [18:51] 이벤트 메시지를 보내는 이벤트 추가 / [19:47] server작업 / [20:25] linesend / [20:48] disconnect / [21:07] 저장 후 실행 / [21:36] board에서 이벤트 받기 / [22:02] drawfromServer메소드 추가 / [22:40] 저장 후 실행 / [23:22] 전자칠판에 open API연동 / [23:30] 전자칠판에 지도를 연결하는 프로젝트 / [24:33] API키 발급 / [24:52] 오픈 api-지도형 api-지도뷰 / [25:29] html파일에서 지도불러오기 script만들기 / [25:56] body에 map을 띄울부분 넣기 / [26:44] 버튼 확인 / [27:10] mapObj객체 선언 / [27:33] map띄우는 버튼을 이벤트핸들러 연결 / [28:22] init일 때 map을 보이게 처리 / [29:26] close일 때 map감추기 / [29:48] 저장 확인 / [30:07] 양방향으로 map띄우기 / [30:36] 이벤트 이름은 map으로 정의 / [32:07] drawfromServer라는 메소드 추가 / [32:35] data.type이 open일 경우 / [32:52] data.type이 close일 경우 / [34:05] close버튼은 map이 떠있을 경우 활성화 / [34:30] 실행 확인 / [35:30] map 움직임 추가 작업 / [35:52] 지도형 api-지도뷰-event 선택 / [36:15] addlistener메소드 사용 / [36:44] dragend이벤트 사용 / [37:07] init안에 메소드 추가 / [37:45] 실행 / [38:30] 좌표값 서버로 전송 / [39:15] zoom / [40:07] client에서 값을 받아 처리하는 로직 구현 / [40:49] drawfromServer에 추가 / [41:15] mapMove, setZoom / [41:59] panBy, panTo / [42:45] LatLng / [43:07] mapMove 메소드 변경 / [43:45] setLevel / [44:34] 로드 뷰 기능 추가 / [44:52] roadview버튼 추가 / [45:45] roadview버튼에 이벤트 추가 / [46:37] 메소드 등록 후 작성 / [47:30] roadview, roadviewClose / [48:04] 소스보기 / [49:37] 로드뷰 띄우고 위치값을 절대값으로 변경 / [49:52] 로드뷰 감추기 처리 / [50:35] 저장 후 확인 / [51:22] 서버로 전송 / [52:30] 저장 후 확인

19 Node.js 활용 part4
MongoDB를 이용한 스케줄러 만들기
26분
책갈피 : [00:07] 스케줄러 만들기 / [00:34] 완성된 예제 확인하기 / [01:07] express로 프로젝트 생성 / [01:30] mongoose모듈 설치 / [02:13] public안에 js와 html파일 만들기 / [02:43] js파일에 달력 만들기 / [03:50] html파일에서 body에 div id저장 / [04:00] css파일 설정 / [04:29] 속성 추가 / [04:46] yoil, blue, red, box_center설정 / [05:25] 날짜를 구하기위해 전역변수 선언 / [05:53] 마지막일을 구하는 함수 만들기 / [06:59] cday는 0~6까지 반환(0은 일요일, 1일 월요일) / [07:30] 시작하는 날과 끝나는날 구하기 / [08:46] 공백처리 로직 구현 / [09:33] 일요일인 경우 / [09:56] css에 dummy정보 추가 / [10:24] 타이틀 만들기 / [11:28] setTitle(year, month) / [12:11] 달이 변경되면 달력을 재생성하는 로직 추가 / [12:35] setTitle 수정 / [13:45] click이벤트 추가 / [14:35] 날짜 꾸미기 / [15:05] 임시 id값 설정 / [16:33] 마우스를 cel에 올렸을 때 bg효과 / [17:26] get_number_str / [17:48] 일정 추가 설정 / [17:59] 글을 등록하는 이벤트 추가 / [19:18] 확인 / [19:40] 서버로 전송해서 mongodb에 저장하게 만들기 / [20:10] router.js 파일 열기 / [20:22] post형식으로 처리 / [20:36] task-controller.js 파일 수정 / [21:48] 똑같은 task가 존재하는지 체크 / [22:15] schema변경 / [22:59] formdata 만들기 / [23:33] 서버에서 등록한 메시지를 보여주는 로직 구현 / [23:52] updateDate / [24:52] list부분 css에서 꾸미기 / [25:11] setInterval / [25:37] 실행 확인

20 Node.js 활용 part5
WEbRTC와 node.js를 활용한 웹페이지에 웹카메라 띄우기
36분
책갈피 : [00:06] webRTC와 node.js를 활용한 웹페이지에 웹카메라 띄우기 / [01:11] webRTC 홈페이지 접속 / [01:34] supported browsers살펴보기 / [02:00] express로 webcam프로젝트 생성 / [02:30] index.html파일 생성 / [03:06] video 설정 / [03:22] 버튼 만들기 / [03:35] script태그 만들기 / [04:13] video객체 생성 / [05:14] 에러가 발생할 경우 / [05:41] getUserMedia에 문제가 생길 경우 / [06:14] stopbtn에 이벤트넣기 / [06:40] 저장 후 확인 / [07:53] 전자칠판 예제 사용 / [08:31] 허용 / 거부 / [09:13] getUserMedia로 사용할 수 있는 기능 / [09:54] capture / [10:22] css프린터를 사용해서 비디오의 효과 나타내기 / [11:15] 비디오 화면 클릭해서 효과 확인 / [11:48] Voting game만들기 / [12:43] ip를 통해 중복 확인 / [13:16] nedb 설명 / [14:28] 명령어 살펴보기 / [15:05] express3-handlebars 설명 / [16:10] express로 폴더 생성 후 기본 모듈 설치 / [17:11] index.js, config.js, database.js파일 만들기 / [17:41] main.html, home.html, standings.html파일 만들기 / [18:11] 폴더 살펴보기 / [19:15] db정의 / [19:29] 2개의 database정의 / [20:10] photos_on_disk / [20:37] name, likes, dislikes값 정의 / [21:30] 사진 불러오기 / [21:48] routes.js파일 만들기 / [22:29] photos에 있는 모든 파일 찾기 / [23:11] voted_on 배열로 만들기 / [24:00] 이미지 배열에서 랜덤으로 이미지 선택 / [24:30] standings / [24:44] sort / [25:22] user의 ip기록 / [25:48] dislike, like의 경우 vote / [26:07] vote 함수 설정 / [26:45] user가 증가시킨 것 표시 / [27:26] ip를 찾아서 id값에 입력 / [27:41] config파일 세팅 / [28:41] index파일 세팅 / [29:40] main파일 세팅 / [30:17] body에 들어갈 내용 / [30:37] home파일 정의 / [31:10] button-holder로 like와 dislike정의 / [31:30] standings파일 세팅 / [32:12] style.css파일 세팅 / [32:57] 네비게이션 설정 / [33:15] body and button설정 / [33:34] like와 dislike버튼 설정 / [33:45] list설정 / [34:30] sprite.svg / [35:07] 실행 확인 / [36:07] data생긴 것 확인


샘플확인 : 알지오 검색후 -> 강의검색란 -> Node.js