node.js를 처음 접하는 개발자를 위한 스터디 자료입니다.
실습 위주로, 간단한 웹 페이지를 만들어 보는 것을 목표로 하며,
express를 활용하기에 앞서, node.js 기본 API만으로 GET/POST 처리 방식을 알아봅니다.
내용의 깊이가 있지는 않으며, 단지 node.js의 입문을 위한 가벼운 수준으로 내용이 구성되었습니다.
node.js를 처음 접하는 개발자를 위한 스터디 자료입니다.
실습 위주로, 간단한 웹 페이지를 만들어 보는 것을 목표로 하며,
express를 활용하기에 앞서, node.js 기본 API만으로 GET/POST 처리 방식을 알아봅니다.
내용의 깊이가 있지는 않으며, 단지 node.js의 입문을 위한 가벼운 수준으로 내용이 구성되었습니다.
kimsQ Rb vs Wordpress 를 브라우저상에서 로드타임 비교와 서버내에서의 실행속도를 기준으로 성능 비교를 해보았습니다. 객관적으로 동일한 환경에서 정량적인 테스트가 될 수 있도록 노력 했습니다. 산출된 결과는 킴스큐가 워드프레스에 비해 로드타임에서 3.6~5배 빠른 것으로 나왔으며, 서버내 스크립트 실행속도에서는 11~16배 빠르다는 결과를 얻을 수 있었습니다. 본 테스트를 위해 사이트를 제공해 주신 하비타임즈(hobbytimes.co.kr/) 킴스오빠(이영화)님께 감사 드립니다. - 레드블럭 킴스큐 운영팀 권기택
Adied 2014, 봄싹 세미나에서 발표한 `Resource Handling in Spring MVC`의 발표자료입니다.
주요 내용으로 Spring MVC에서 정적 자원(css, js, etc)을 다루는 방법을 다루고 있습니다.
데모 코드 : https://github.com/arawn/resource-handling-in-springmvc
kimsQ Rb vs Wordpress 를 브라우저상에서 로드타임 비교와 서버내에서의 실행속도를 기준으로 성능 비교를 해보았습니다. 객관적으로 동일한 환경에서 정량적인 테스트가 될 수 있도록 노력 했습니다. 산출된 결과는 킴스큐가 워드프레스에 비해 로드타임에서 3.6~5배 빠른 것으로 나왔으며, 서버내 스크립트 실행속도에서는 11~16배 빠르다는 결과를 얻을 수 있었습니다. 본 테스트를 위해 사이트를 제공해 주신 하비타임즈(hobbytimes.co.kr/) 킴스오빠(이영화)님께 감사 드립니다. - 레드블럭 킴스큐 운영팀 권기택
Adied 2014, 봄싹 세미나에서 발표한 `Resource Handling in Spring MVC`의 발표자료입니다.
주요 내용으로 Spring MVC에서 정적 자원(css, js, etc)을 다루는 방법을 다루고 있습니다.
데모 코드 : https://github.com/arawn/resource-handling-in-springmvc
This presentation provides a brief overview on becoming a member of the Node.js Foundation. For more information, visit https://nodejs.org/en/foundation/members/.
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
IoT 시대에 Opensource H/W 와 NodeJS 를 이용하여 누구나 나만의 H/W + S/W + Service 를 만들기 위한 교육 과정을 만들어 보았습니다.
상상했던 아이디어를 Raspberry Pi 기반으로 나만의 IoT 제품을 현실로 만들어 보세요.
Lesson 1 - Introduction : IoT개요, Opensource H/W, 라즈베리파이 기초
Lesson 2 - Linux : Raspberry Pi 에서 리눅스 활용하기
Lesson 3 - Node.JS : Raspberry Pi 에서 Node.JS 로 프로그래밍 하기
Lesson 4 - Sensor : GPIO 를 Node.JS 로 동작시켜 센서 제어하기
Lesson 5 - Project : Raspberry Pi 로 스마트폰 + 무선 IoT 오디오 제작
챕터가 완성되는대로 추가적으로 공유하겠습니다.
Circulus Site - http://www.circul.us
Circulus Group - http://group.circul.us
Rails Antipatterns (http://www.amazon.com/Rails-AntiPatterns-Refactoring-Addison-Wesley-Professional/dp/0321604814) 를 읽고 몇 가지 정도만 요약을 해보았습니다.
레일즈를 시작한지 얼마 되지 않은터라 맞지 않는 부분이 있더라도 양해 부탁드려요 :)
3. 단순한 웹 프레임워크 같은게 아니다!
Node.js is a platform
built on Chrome's JavaScript
runtime for easily building fast,
s c a l a b l e n e t w o r k
applications.
스케일러블한 네트워크 어플리케이션! 강력해보인다!
4. 흔한 오해
Q : Node.js 가 뭔지 아세요?
A : django 같이 웹 사이트 만들 때 쓰는거 아니에요?
앞에서도 썼지만
웹 프레임워크와는 다르다!
웹 프레임워크와는!
물론 만들 수는 있다
5. Node.js 를 이용해서
Command Line Application
Web Server
TCP Server
Bot
왠만한 (I/O가 많은 것이라도) Server
등을 만들 수 있답니다
6. 굳이 Node.js를 써서
만들어야하나?
• Frontend와 Backend가 javascript로 대동단결!
• 강력한 V8 엔진 기반 크롬에 쓰는 그거
• Event-driven, non-blocking I/O
• 다른 걸 가져다 쓰거나 자신의 모듈을 게시하기 매우 쉬운 시스템
날 가져요 npm 엉엉
8. 길었다, 서론
본다! Hello, World!
console.log(“Hello, World!”);
웹 프로그래밍 하셨으면 다들 아시잖아요
익숙한 자바스크립트
하지만 IE에서 하면 어떻게 될까
9. 길었다, 서론
본다! Hello, World!
그 코드를 hello.js 로 저장하고
Command Line에
node hello.js
그리고 Hello, World! 가 출력된다
참 쉽죠?
10. HTTP Server 만들기
Method 1 : 직접 만든다 (Node.js http 모듈을 이용)
var http = require('http');
var server = http.createServer( function(req, res) {
var body = 'Hello, World!';
res.writeHead(200, {
'Content-Length': body.length,
'Content-Type': 'text/plain'
});
res.end(body);
} );
server.listen(3000);
11. HTTP Server 만들기
Method 2 :
만들어진 것들을 가져다쓴다 (Express, etc.)
가져다쓰는게 편합니다 global
ex)
express
$
npm
install
-‐g
express
$
express
myapp
$
cd
myapp
&&
npm
install
$
node
app
12. Node 모듈을 시작하는 방법
드디어 등장하는 npm
> npm init // package.json 을 생성함
{
"name":
"testapp",
"version":
"0.0.0",
"descrip@on":
"ERROR:
No
README.md
file
found!",
"main":
"index.js",
"scripts":
{
"test":
"echo
"Error:
no
test
specified"
&&
exit
1"
},
"repository":
"",
"author":
"",
"license":
"BSD"
}
13. 모듈 가져다쓰기
> 필요한 모듈 찾기
Google
it
:
node
{what
you
want}
hTps://npmjs.org/
> 모듈 깔기
npm
install
{module
name}
{-‐-‐save}
> 앱에 모듈 가져오기
var
module
=
require(‘module
name’)
14. 적절한 모듈들
몇 가지 안 써보긴 했지만 여기도 참고
express,
socket.io,
mongoose,
phantom.js,
etc.
웹 프레임워크
MongoDB for Node.js
Full web stack
웹 소켓 흉내
No browser required
15. 잉여 예제 모듈 없이 하는 것에 대해서는
이 곳을 참조
- 콘솔에 colored text 출력하기
> 적절한 구글링을 통해 colors 라는 모듈을 발견
> 모듈 페이지로 가서 사용법을 확인
보통 Github등의 repository의 readme에 있음
> 자기 앱 디렉터리에서 npm install colors를 입력
var colors = require(‘colors’);
console.log(‘Hello, World!’.rainbow);
참 쉽죠?
16. 모듈 만들기
> 모듈 작성하기
func@on
foo()
{
//blahblah
}
> 모듈 내보내기
exports.foo
=
foo;
> 내 모듈 가져오기
var
my_module
=
require(‘./mymodule’);
mymodule.foo();
위의 내용이 같은 폴더의 mymodule.js에 저장되어 있을 때
17. 동기
비동기 프로그래밍 다른 패러다임
기존에 써왔던 방식
int val = getValueSync();
왜 C++?
익숙해져야할 방식
getValueAsync(function(val) {
콜백으로 값을 받아내서 이용
console.log(val);
});
18. 비동기 프로그래밍
을 접한 사람들의 실수?
동기 -> 비동기로의 이식
int val1 = getValue1();
int val2 = getValue2();
…
int val100 = getValue100();
print(val1 + val2);
function getValue1( function(val) {
var val1 = val;
function getValue2( function(val) {
var val2 = val;
…
…
} );
} );
20. 자잘한 팁
node.js 웹 어플리케이션을 작성할 때,
코드 수정 -> 앱 재시작이 너무 귀찮아요
supervisor 라는 모듈을 사용해봅시다.
(https://github.com/isaacs/node-supervisor)
javascript 쓰기 싫어요
뭐라할 말은 없는데 coffeescript, dart 같은걸 끼얹어본다던가..
Opal(http://opalrb.org/) 같은 것도 있어요 (Ruby to javascript compiler)