node.js jaram winter workshop 2014
Post on 26-Jun-2015
393 Views
Preview:
DESCRIPTION
TRANSCRIPT
Winter����������� ������������������ Workshop����������� ������������������ 2014����������� ������������������ 2014.����������� ������������������ 02.����������� ������������������ 15����������� ������������������ 25기����������� ������������������ 박철우
V8����������� ������������������ JavaScript����������� ������������������ Engine
Ryan����������� ������������������ Dahl
컨셉
Ryan����������� ������������������ Dahl
–Ryan Dahl
‘I/O needs to be done differently.’
result����������� ������������������ =����������� ������������������ query(‘select����������� ������������������ *����������� ������������������ from����������� ������������������ T’);����������� ������������������
//����������� ������������������ use����������� ������������������ result
일반적으로����������� ������������������ 사용되는����������� ������������������ 쿼리
result����������� ������������������ =����������� ������������������ query(‘select����������� ������������������ *����������� ������������������ from����������� ������������������ T’);����������� ������������������
//����������� ������������������ use����������� ������������������ result
소프트웨어는����������� ������������������ ?
일반적으로����������� ������������������ 사용되는����������� ������������������ 쿼리
result����������� ������������������ =����������� ������������������ query(‘select����������� ������������������ *����������� ������������������ from����������� ������������������ T’);����������� ������������������
//����������� ������������������ use����������� ������������������ result
소프트웨어는����������� ������������������ ?
일반적으로����������� ������������������ 사용되는����������� ������������������ 쿼리
result����������� ������������������ =����������� ������������������ query(‘select����������� ������������������ *����������� ������������������ from����������� ������������������ T’);����������� ������������������
//����������� ������������������ use����������� ������������������ result
BLOCK����������� ������������������ !
일반적으로����������� ������������������ 사용되는����������� ������������������ 쿼리
해결은…⋯
나?����������� ������������������ 쓰레드!
멀티����������� ������������������ 쓰레드의����������� ������������������ 사용
멀티����������� ������������������ 쓰레드의����������� ������������������ 사용����������� ������������������ =����������� ������������������ 다수의����������� ������������������ 실행����������� ������������������ 스택����������� ������������������ &����������� ������������������ 컨텍스트����������� ������������������ 스위칭
멀티����������� ������������������ 쓰레드의����������� ������������������ 사용����������� ������������������ =����������� ������������������ 여러개의����������� ������������������ 실행����������� ������������������ 스택����������� ������������������ &����������� ������������������ 컨텍스트����������� ������������������ 스위칭����������� ������������������
����������� ������������������ =����������� ������������������ 비용����������� ������������������ UP
result����������� ������������������ =����������� ������������������ query(‘select����������� ������������������ *����������� ������������������ from����������� ������������������ T’);����������� ������������������
//����������� ������������������ use����������� ������������������ result
일반적으로����������� ������������������ 사용되는����������� ������������������ 쿼리
!
!
query(‘select����������� ������������������ *����������� ������������������ from����������� ������������������ T’,����������� ������������������ function����������� ������������������ (result)����������� ������������������ {����������� ������������������
//����������� ������������������ use����������� ������������������ result����������� ������������������
});����������� ������������������
콜백����������� ������������������ 함수를����������� ������������������ 사용한����������� ������������������ 코드
!
!
query(‘select����������� ������������������ *����������� ������������������ from����������� ������������������ T’,����������� ������������������ function����������� ������������������ (result)����������� ������������������ {����������� ������������������
//����������� ������������������ use����������� ������������������ result����������� ������������������
});����������� ������������������
콜백함수
콜백����������� ������������������ 함수를����������� ������������������ 사용한����������� ������������������ 코드
커피를����������� ������������������ 기다리듯…⋯
콜백함수
puts(“이름을����������� ������������������ 입력하세요:����������� ������������������ ”);����������� ������������������
var����������� ������������������ name����������� ������������������ =����������� ������������������ gets();����������� ������������������
puts(“이름:����������� ������������������ ”����������� ������������������ +����������� ������������������ name);����������� ������������������
…⋯
puts(“이름을����������� ������������������ 입력하세요:����������� ������������������ ”);����������� ������������������
gets(function����������� ������������������ (name)����������� ������������������ {����������� ������������������
puts(“이름:����������� ������������������ ”����������� ������������������ +����������� ������������������ name);����������� ������������������
});����������� ������������������
…⋯����������� ������������������
puts(“이름을����������� ������������������ 입력하세요:����������� ������������������ ”);����������� ������������������
gets(function����������� ������������������ (name)����������� ������������������ {����������� ������������������
puts(“이름:����������� ������������������ ”����������� ������������������ +����������� ������������������ name);����������� ������������������
});����������� ������������������
…⋯����������� ������������������
Non-Blocking
����������� ������������������ I/O
puts(“이름을����������� ������������������ 입력하세요:����������� ������������������ ”);����������� ������������������
gets(function����������� ������������������ (name)����������� ������������������ {����������� ������������������
puts(“이름:����������� ������������������ ”����������� ������������������ +����������� ������������������ name);����������� ������������������
});����������� ������������������
…⋯����������� ������������������
Non-Blocking
����������� ������������������ I/O
Event����������� ������������������ Loop
그래서?
그래서?대규모����������� ������������������ 네트워크����������� ������������������ 프로그램을����������� ������������������ 개발하기����������� ������������������ 적합!
그����������� ������������������ 외에도
•자바스크립트����������� ������������������
•점점����������� ������������������ 빨라지는����������� ������������������ V8����������� ������������������ 자바스크립트����������� ������������������ 엔진����������� ������������������
• C++을����������� ������������������ 사용하여����������� ������������������ 확장
이건����������� ������������������ 좀…⋯
•자바스크립트����������� ������������������ <����������� ������������������ C,����������� ������������������ C++����������� ������������������
•버전이����������� ������������������ 1.0도����������� ������������������ 안돼요…⋯
Node.js����������� ������������������ 시작하기
설치
Windows����������� ������������������ /����������� ������������������ OS����������� ������������������ X는����������� ������������������ Installer로����������� ������������������ 간단히!
Ubuntu(Linux)는
압축����������� ������������������ 해제����������� ������������������ 후����������� ������������������ ����������� ������������������ !$����������� ������������������ sudo����������� ������������������ apt-get����������� ������������������ install����������� ������������������ build-essential����������� ������������������ libssl-dev����������� ������������������ !$./configure����������� ������������������ !$make����������� ������������������ $sudo����������� ������������������ make����������� ������������������ install����������� ������������������
REPL(Read����������� ������������������ Eval����������� ������������������ Print����������� ������������������ Loop)각����������� ������������������ 프롬프트에서����������� ������������������ node����������� ������������������ 입력����������� ������������������
(Windows����������� ������������������ :����������� ������������������ cmd,����������� ������������������ Linux����������� ������������������ /����������� ������������������ OS����������� ������������������ X����������� ������������������ :����������� ������������������ 터미널)����������� ������������������
>����������� ������������������ console.log(‘Hello����������� ������������������ World!’)
이번엔����������� ������������������ 파일로
$����������� ������������������ node����������� ������������������ hello.js
이제����������� ������������������ 웹서버를
//����������� ������������������ http����������� ������������������ 모듈을����������� ������������������ 추출����������� ������������������
var����������� ������������������ http����������� ������������������ =����������� ������������������ require('http');����������� ������������������
//����������� ������������������ 웹����������� ������������������ 서버����������� ������������������ 생성����������� ������������������ 및����������� ������������������ 실행����������� ������������������
http.createServer(function����������� ������������������ (req,����������� ������������������ res)����������� ������������������ {����������� ������������������
����������� ������������������ ����������� ������������������ res.writeHead(200,����������� ������������������ {����������� ������������������ 'Content-Type':����������� ������������������ 'text/html'����������� ������������������ });����������� ������������������
����������� ������������������ ����������� ������������������ res.end('<h1>Winter����������� ������������������ Workshop����������� ������������������ 2014����������� ������������������ !</h1>');����������� ������������������
}).listen(3000,����������� ������������������ function()����������� ������������������ {����������� ������������������
����������� ������������������ ����������� ������������������ console.log('Server����������� ������������������ running����������� ������������������ at����������� ������������������ http://localhost:3000/');����������� ������������������
});
Q����������� ������������������ &����������� ������������������ A
http://www.nodebeginner.org/index-kr.html
top related