SlideShare a Scribd company logo
1 of 8
Week 1 - node.js์˜ ์—ญ์‚ฌ์™€ ๋ฐœ์ „
Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

1. ๋…ธ๋“œ๋Š” ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‹ค.

 Node.js(์ดํ•˜ โ€œ๋…ธ๋“œโ€)๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์ด๋‹ค.
 ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ณผ๊ฑฐ์—๋„ ๋งŽ์€ ์‹œ๋„๊ฐ€ ์žˆ์—ˆ๊ณ , ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ  ๋„ ์žˆ๋‹ค.
 ๋…ธ๋“œ๋Š” ๊ทธ๋™์•ˆ ๋ฐœ์ „ํ•ด ์˜จ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์™„์„ฑํ˜•์— ๊ฐ€๊น๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 ์ง€๊ธˆ๊นŒ์ง€์˜ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ ๊ธฐ๋ฐ˜์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ,
 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‹ค์šด ๋Š๋‚Œ์ด ์—†์—ˆ๋‹ค.

 ๋ฐ˜๋ฉด ๋…ธ๋“œ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉํ•˜๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ๋„
 ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ป์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฒฝํ—˜๊ณผ ์ง€์‹์„
 ๋…ธ๋“œ์—์„œ๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•œ๋‹ค.

 ์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ์•ˆ๋‹ค๋ฉด ์ด๋ฏธ ๋…ธ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๊ณ  ์›ํ•˜๋Š”
 ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 ๋ฐ˜๋Œ€๋กœ..์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด ๊ทธ๋Ÿด ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋˜์ง€๋งŒโ€ฆ
 (โ€œ์‹œ๊ทธ์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋…ธ๋“œ๋ฅผ ๋ณ‘ํ–‰ํ•ด์„œ ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋–จ๊นŒ ํ•ฉ๋‹ˆ๋‹ค!โ€)
Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

2. Common JS ์•Œ์•„๋ณด๊ธฐ

 ๋…ธ๋“œ๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ธฐ ์ „์— CommonJS๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. CommonJS๋Š” ์ผ€๋นˆ ๋Œ•๊ตฌ์–ด๊ฐ€ 2009๋…„ 1์›”์— ์‹œ์ž‘ํ•œ
 ํ”„๋กœ์ ํŠธ๋กœ SErverJS๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.
 CommonJS๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๊ฐ€๋ณด๋ฉด โ€œ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋” ์ด์ƒ ๋ธŒ๋ผ์šฐ์ €๋งŒ์„ ์œ„ํ•œ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋‹คโ€๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์žˆ๋Š”๋ฐ
 ์ด์ฒ˜๋Ÿผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์›น๋ธŒ๋ผ์šฐ์ € ๋ฐ–์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€์ด ๋ฐ”๋กœ CommonJS๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 ๋ณดํ†ต ์›น๋ธŒ๋ผ์šฐ์ €๋Š” HTMLํŒŒ์ผ์—์„œ <script>๋ผ๋Š” ํƒœ๊ทธ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
 ์ด๋ ‡๊ฒŒ ๋กœ๋”ฉ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์„œ๋กœ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

 ํ•˜์ง€๋งŒ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ์€ HTMLํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด
 ํ•„์š”ํ•˜๊ณ , ์—ฌ๋Ÿฌ ํŒŒ์ผ๋กœ ๋‚˜๋ˆ ์ ธ์žˆ๋Š” JS์ฝ”๋“œ๋“ค์ด ์„œ๋กœ ํ˜ธ์ถœํ•˜๊ณ  ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค.

 CommonJS๋Š” ์ด๋Ÿฐ ๋ฐฉ๋ฒ•์„ ๋…ผ์˜ํ•˜๊ณ  ํ‘œ์ค€ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ณ , W3C๊ฐ™์€ ๊ณต์‹์ ์ธ ํ‘œ์ค€ํ™” ์กฐ์ง์€ ์•„๋‹ˆ์ง€๋งŒ,
 ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ํ‘œ์ค€์ฒ˜๋Ÿผ ์ด์šฉ๋˜๊ณ  ์žˆ๋‹ค.

 ์šฐ๋ฆฌ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ์€ โ€œ๋…ธ๋“œโ€๊ฐ€ ๋ฐ”๋กœ ์ด ํ‘œ์ค€์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ ์ด๋‹ค.
 ๊ทธ๋ ‡๋‹ค๊ณ  CommonJS์˜ ๋ชจ๋“  ํ‘œ์ค€์„ ์•Œ ํ•„์š”๋Š” ์—†๋‹ค. ๋‹จ์ง€ ๋…ธ๋“œ๊ฐ€ CommonJS์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ๋œ๋‹ค.
Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

3. ๋…ธ๋“œ์˜ ์—ญ์‚ฌ์™€ ๋ฐœ์ „

 ์‚ฌ์‹ค ๋…ธ๋“œ๋Š” ๋ผ์ด์–ธ ๋‹ฌ์ด๋ผ๋Š” ์‚ฌ๋žŒ์ด ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋กœ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค.
 ๋ผ์ด์–ธ์€ ๊ตฌ๊ธ€ ํฌ๋กฌ ์›น๋ธŒ๋ผ์šฐ์ €์˜ JS์—”์ง„์ธ V8์„ ์ด์šฉํ•ด ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ TCP๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ HTTP์„œ๋ฒ„๋ฅผ
 ๋งŒ๋“œ๋Š” ์•„์ด๋””์–ด๋ฅผ ๋ผ์ด๋ธŒ์ €๋„์— ์˜ฌ๋ ธ๋‹ค.

 ๊ทธ๋ฆฌ๊ณ  2์›” 15์ผ ๊นƒํ—ˆ๋ธŒ์— ์ €์žฅ์†Œ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  2010๋…„ ๋…ธ๋“œ๊ฐ€ ๋ณธ๊ฒฉ์ ์œผ๋กœ
 ์ธ๊ธฐ๋ฅผ ์–ป๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํšŒ์‚ฌ์ธ ์กฐ์ด์—”ํŠธ๊ฐ€ ์ž์‚ฌ์˜ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์ค‘ ํ•˜๋‚˜๋กœ
 ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋ฉด์„œ ์‹ค์ œ ๊ณต์‹ ์Šคํฐ์„œ๋กœ ๋‚˜์„ ๋‹ค.

 ๊ทธ ํ›„ ๋…ธ๋“œ๋Š” ์ œ์ด์ฟผ๋ฆฌ์™€ ๋ ˆ์ผ์ฆˆ๋ฅผ ์ œ์น˜๊ณ  2์œ„๋ฅผ ์ฐจ์ง€ํ–ˆ๊ณ , ํ˜„์žฌ npm์˜ ์ค‘์•™์ €์žฅ์†Œ ๋“ฑ๋ก ๊ธฐ์ค€์œผ๋กœ 5์ฒœ์—ฌ๊ฐœ์˜
 ํ™•์žฅ ๋ชจ๋“ˆ์ด ๋“ฑ๋ก๋˜์–ด์žˆ๋‹ค.

 (โ€œ๋ฌผ๋ก  npm์—์„œ ์ฐพ๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ, http://startic.kr/njs ์ด๊ณณ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!!โ€)

 ๊ทธ๋ฆฌ๊ณ  ๋…ธ๋“œ์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์„ ํ•˜๋‚˜ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ, 0.3 ๋ฒ„์ „ ์ดํ›„ ๋ถ€ํ„ฐ ๋ ์ž๋ฆฌ๊ฐ€ ํ™€์ˆ˜์ธ ๋ฒ„์ „์€ ๊ฐœ๋ฐœ์ž ๋ฒ„์ „์ด๊ณ 
 ์ง์ˆ˜์ธ ๊ฒฝ์šฐ๊ฐ€ ์•ˆ์ •์„ฑ์ด ํ™•์ธ ๋œ ๋ฒ„์ „์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  0.4.x๋ผ๋Š” ๋งˆ์ด๋„ˆ ๋ฒ„์ „์ด ๋‚˜์˜ค๋ฉด, ๊ทธ ๋‹ค์Œ์€ 0.6 ์•ˆ์ •๋ฒ„์ „์ด ๋‚˜์˜จ๋‹ค๋Š”
 ์‚ฌ์‹ค๋„ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.
Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

4. ๋…ธ๋“œ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ

 ์—ญ์‚ฌ๋Š” ํ•ญ์ƒ ๊ทธ ์‹œ์ž‘์ด ์ค‘์š”ํ•˜๋‹ค. ๋„๋Œ€์ฒด ๋ผ์ด์–ธ์ด๋ผ๋Š” ์‚ฌ๋žŒ์€ ์™œ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒƒ์ผ๊นŒ?
 ์ฐธ๊ณ ๋กœ ์ด ๋‚ด์šฉ์€ ๋ผ์ด์–ธ์ด ์ง์ ‘ ๋ฐํžŒ ๋‚ด์šฉ์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์ž‘์„ฑํ•œ๋‹ค.

 ๋ผ์ด์–ธ์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋‚˜ ํ”Œ๋žซํผ์— ์ž˜๋ชป๋œ ์ ์ด ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•˜๋ฉด I/O๋ฅผ ๋‹ค๋ฅด๊ฒŒ
 ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
 ์—ฌ๊ธฐ์„œ I/O๋Š” ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅ๋ฐ›๋Š” ๋‚ด์šฉ, ํŒŒ์ผ, ์ฝ๊ณ  ์“ฐ๊ธฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด๋‚˜ ๋„คํŠธ์›Œํฌ์˜ ์‚ฌ์šฉ ๋“ฑ ์ž…์ถœ๋ ฅ๊ณผ ๊ด€๋ จ๋œ
 ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ ํ•œ๋‹ค. ๊ทธ ๊ฐ„๋‹จํ•œ ์˜ˆ๋Š” ์•„๋ž˜ ์ฝ”๋“œ๋กœ ์‚ดํŽด๋ณด์ž.

 Var result = db.query(โ€˜select * from table;);

 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฟผ๋ฆฌ๋กœ ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ„๋žตํžˆ ๋‚˜ํƒ€๋ƒˆ๋‹ค. I/O๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด์ฒ˜๋Ÿผ
 ์ž‘์„ฑํ•œ๋‹ค. ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹น ํ•˜๊ณ  ๊ทธ ๋‹ค์Œ ์ค„ ๋ถ€ํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 ์ด ์ฝ”๋“œ์˜ ์ˆ˜ํ–‰๋ฐฉ์‹์„ ์‚ดํŽด๋ณด๋ฉด I/O๋ฅผ ์š”์ฒญํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์„ ๋•Œ ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๋Š” ์•„๋ฌด ์ผ๋„ ์•ˆํ•˜๋Š” ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•œ๋‹ค.
 ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ๋Œ์•„์˜ค๋ฉด ์ด์–ด์„œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 ์ฆ‰, IO๋ฅผ ๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰์ด ๋๋‚  ๋•Œ ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๋Š” ๋ธ”๋กํ‚น์ด ๋˜๋ฉด์„œ ๋‹ค๋ฅธ ์–ด๋– ํ•œ ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค

  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ์‹œ์Šคํ…œ ๋“ฑ์˜
  ์™ธ๋ถ€์‹œ์Šคํ…œ
                          ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ                      ํŒŒ์ผ ์ฝ๊ธฐ

  ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์˜ ์ฒ˜๋ฆฌ์˜์—ญ

      ์ฝ”๋“œ ์‹คํ–‰                                      ์ฝ”๋“œ ์‹คํ–‰           ์ฝ”๋“œ ์‹คํ–‰
Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

4. ๋…ธ๋“œ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ

 ์œ„ ๊ทธ๋ฆผ์—์„œ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ์˜์—ญ์ด๋ผ๊ณ  ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์ง์ ‘ ๊ณ„์‚ฐํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ์˜์—ญ์ด๋‹ค.
 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐ™์€ I/O์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด I/O๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ค„ ๋•Œ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๋Š” ๋” ์ด์ƒ
 ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ฉˆ์ถ˜๋‹ค.

 ๊ทธ๋ž˜์„œ I/O๋ฅผ ์š”์ฒญํ•œ ์ˆœ์„œ๋Œ€๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค๋ฐ›๋Š” ๋™๊ธฐ ๊ตฌ์กฐ๊ฐ€ ๋˜๋Š” ๊ฒƒ ์ด๋‹ค.
 ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์‹œ์Šคํ…œ ์ž์›์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ธฐ
 ๋•Œ๋ฌธ์— ๋ฌดํ•œ๋Œ€๋กœ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ์ž์›์„ ์š”์ฒญํ–ˆ์„ ๋•Œ
 ๋ฐ๋“œ๋ฝ์— ๋น ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฐ ๋ถ€๋ถ„์„ ์‹ ๊ฒฝ ์จ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•ด์•ผํ•œ๋‹ค.

 ๋˜ํ•œ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” I/O๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์‘๋‹ต์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ง„๋‹ค.
 ๋„คํŠธ์›Œํฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์„œ๋ฒ„์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ 0.1์ดˆ๋งŒ์— ์‘๋‹ต์ด ์˜ฌ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, 1์ดˆ, ํ˜น์€ ์•„์˜ˆ ์‘๋‹ต์ด ์˜ค์ง€
 ์•Š๋Š” ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•œ๋‹ค.

 ๊ทธ๋ž˜์„œ ๋ผ์ด์–ธ์€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
 ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ์ด์šฉํ•ด I/O๋ฅผ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋งŒ์œผ๋กœ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด์˜€๋‹ค.

 ์ด๋ฒคํŠธ ๋ฃจํ”„๋ผ๋Š” ๊ฒƒ ์—ญ์‹œ ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ๋ด์™”๋˜ ๋ฐฉ์‹์ด๊ณ  ์ด๋ฅผ ํ•œ๋ฐฉ์— ์ดํ•ดํ•˜๋Š” ๋ฒ•์€ ๋ฐ”๋กœ ์•„๋ž˜ ์ฝ”๋“œ์— ์žˆ๋‹ค.

 db.query(โ€˜select * from tableโ€™){

 };

 ๋ฐ”๋กœ, ์ฝœ๋ฐฑ ํŒจํ„ด์ด๋‹ค. ์ฟผ๋ฆฌ๋ฅผ ์กฐํšŒํ•˜๋ฉด์„œ ๋™์‹œ์— ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ 
 ์ด์–ด์ง„ ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋‹ค๊ฐ€ ์กฐํšŒ๊ฐ€ ๋์ด ๋‚˜๋ฉด ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ์จ I/O์— ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„์—๋„ ๋‹ค๋ฅธ ์ž‘์—…์„
 ๊ณ„์† ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

4. ๋…ธ๋“œ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ

 ์ด์ „ ํŽ˜์ด์ง€๋ฅผ ์ฝ๊ณ ๋‚˜๋ฉด ์ดํ•ด๋„ ์•ˆ๋˜๊ณ , ๋ฌธ๋“ ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
 โ€œ๊ทธ๋Ÿผ ์™œ ๋ชจ๋‘๊ฐ€ Event Loop๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๊ฐ€?โ€

 ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ Ryan Dahl์€ ๋ฌธํ™”์ ์ธ(Cultural) ์ด์œ ์™€ ๊ตฌ์กฐ์ (infrastructural)์ธ ์ด์œ  2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.
 ๋ฌธํ™”์ ์ธ ์ด์œ ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šธ๋•Œ ์ธํ’‹์„ ์š”์ฒญํ•˜๋ฉด ์š”์ฒญํ•œ ์ธํ’‹์„ ๋ฐ›์„๋•Œ๊นŒ์ง€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ๋ง๋ผ๊ณ 
 ๋ฐฐ์› ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค. ๊ทธ ๋ง์ธ ์ฆ‰, ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์™”๋‹ค๋Š” ๊ฒƒ ์ด๋‹ค.

 puts("Enter your name: ");
 var name = gets();
 puts("Name: " + name);

 ์œ„ ์ฝ”๋“œ๋Š” ์ธํ’‹์„ ๋ฐ›์•„ ์ถœ๋ ฅํ•˜๋Š” ์ต์ˆ™ํ•œ ์ฝ”๋“œ์ธ๋ฐ ์ธํ’‹์ด ๋“ค์–ด์˜ค๊ธฐ ์ „๊นŒ์ง€๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.
 ๋ฐ˜๋ฉด, ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฐฉ์‹์ธ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ๋ณต์žกํ•˜๋‹ค๋Š” ์ด์œ ๋กœ ํ•™๊ต์—์„œ ๊ฑฐ๋ถ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—
 ์šฐ๋ฆฌ๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฐฉ์‹์— ์•ฝํ•˜๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ๋ผ์ด์–ธ์˜ ์„ค๋ช…์ด๋‹ค.

 puts("Enter your name: ");
 gets(function(name) {

 puts("Name: " + name);
 });
Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

5. ์ •๋ฆฌ

 1.   ๋…ธ๋“œ๋Š” ๋ผ์ด์–ธ ๋‹ฌ์ด ๋งŒ๋“ค์—ˆ๊ณ  2009๋…„ 11์›” ์ฒ˜์Œ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค.
 2.   ๋…ธ๋“œ๋Š” ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ฐœ๋ฐœ๋˜๋ฉฐ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋…ธ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ๋ชจ๋“ˆ์„ ๋งŒ๋“ ๋‹ค.
 3.   ๋…ธ๋“œ๋Š” CommonJS์˜ ํ‘œ์ค€์„ ๋”ฐ๋ฅธ๋‹ค.
 4.   ๋…ธ๋“œ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์— ์‹ฑ๊ธ€ ์Šคํƒ์„ ์‚ฌ์šฉํ•œ๋‹ค.
 5.   ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“  I/O๋ฅผ ๋น„๋™๊ธฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
 6.   ๋ชจ๋“  I/O๋Š” ๋„Œ ๋ธ”๋กํ‚น I/O์ด๋‹ค.
 7.   ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ ์—”์ง„์œผ๋กœ ๊ตฌ๊ธ€ ํฌ๋กฌ ์›น๋ธŒ๋ผ์šฐ์ €์˜ V*์—”์ง„์„ ์‚ฌ์šฉํ•œ๋‹ค.




6. ํ† ๋ก 

 โ€ข    ํ† ๋ก  ๋ถ€๋ถ„์€ โ€œ๋…ธ๋“œ์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ โ€์„ ์ฃผ์ œ๋กœ ๊ฐ ์ž ์ž์‹ ์˜ ์ƒ๊ฐ์„ ์ด์•ผ๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ์•ฝ 15๋ถ„ ์ •๋„
      ์ง„ํ–‰ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

 โ€ข    ํ† ๋ก ์—์„œ ํ’€๋ฆฌ์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ผ๋˜์ง€, ๊ถ๊ธˆ์ ์€ ๊ตญ๋‚ด Node.js ์ฒซ ์ €์ž์ด์‹  outsider(๋ณ€์ •ํ›ˆ)๋‹˜๊ป˜์„œ
      ์ž˜ ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋„์™€์ฃผ์‹ ๋‹ค๊ณ  ํ•˜์…จ์œผ๋‹ˆ ๊ผญ ๋งค ์ฃผ๋งˆ๋‹ค ์ค€๋น„๋ฅผ ํ•ด์ฃผ์…จ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค!!

 โ€ข    Week 2 ํ† ๋ก  ์ฃผ์ œ

      โ€œNode.js๋กœ 16์ฃผ ๋’ค ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊นŒ?โ€

More Related Content

What's hot

Mongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธ
Mongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธMongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธ
Mongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธํฅ๋ฐฐ ์ตœ
ย 
์Šค๋ ˆ๋“œ
์Šค๋ ˆ๋“œ์Šค๋ ˆ๋“œ
์Šค๋ ˆ๋“œxxbdxx
ย 
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅ7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅSunggon Song
ย 
ํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผ
ํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผ
ํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผSunggon Song
ย 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.xInBum Kim
ย 
์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ
์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ
์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ์„ฑ๊ท  ์ „
ย 
Mongo db ์‹œ์ž‘ํ•˜๊ธฐ
Mongo db ์‹œ์ž‘ํ•˜๊ธฐMongo db ์‹œ์ž‘ํ•˜๊ธฐ
Mongo db ์‹œ์ž‘ํ•˜๊ธฐOnGameServer
ย 
แ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…ก
แ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…กแ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…ก
แ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…กseung-hyun Park
ย 
Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41
Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41
Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41cosmosyc
ย 
Database
DatabaseDatabase
DatabaseNam Hyeonuk
ย 
Multi thread
Multi threadMulti thread
Multi threadNam Hyeonuk
ย 
Node.js ๋ฆฌ๋ทฐ
Node.js ๋ฆฌ๋ทฐNode.js ๋ฆฌ๋ทฐ
Node.js ๋ฆฌ๋ทฐRay Park
ย 
Bacchus server overview
Bacchus server overviewBacchus server overview
Bacchus server overviewJaeHyeonPark13
ย 
Network ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Netty
Network ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ NettyNetwork ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Netty
Network ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ NettyChoulhyouc Lee
ย 
Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)
Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)
Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)Daehyun Kim
ย 
Mongodb cluster
Mongodb clusterMongodb cluster
Mongodb clusterKyungsuk Song
ย 
04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌ
04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌ04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌ
04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌarahansa yong
ย 
Node.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐNode.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐJeongHun Byeon
ย 

What's hot (20)

Mongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธ
Mongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธMongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธ
Mongodb ๊ฐœ๋ฐœ ํฌ์ธํŠธ
ย 
์Šค๋ ˆ๋“œ
์Šค๋ ˆ๋“œ์Šค๋ ˆ๋“œ
์Šค๋ ˆ๋“œ
ย 
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅ7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ-2์žฅ
ย 
ํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผ
ํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผ
ํ•จ์ˆ˜ํ˜•์‚ฌ๊ณ  3์žฅ ์–‘๋„ํ•˜๋ผ
ย 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.x
ย 
์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ
์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ
์›น ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ
ย 
Mongo db ์‹œ์ž‘ํ•˜๊ธฐ
Mongo db ์‹œ์ž‘ํ•˜๊ธฐMongo db ์‹œ์ž‘ํ•˜๊ธฐ
Mongo db ์‹œ์ž‘ํ•˜๊ธฐ
ย 
Node
NodeNode
Node
ย 
Rust
RustRust
Rust
ย 
แ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…ก
แ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…กแ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…ก
แ„†แ…ฉแ†ผแ„€แ…ฉแ„ƒแ…ตแ„‡แ…ตแ„€แ…ญแ„‹แ…ฒแ†จ1แ„‹แ…ตแ†ฏแ„Žแ…ก
ย 
Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41
Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41
Mongo DB ํ™œ์šฉ๊ฐ€์ด๋“œ Tip 35 ~ 41
ย 
Database
DatabaseDatabase
Database
ย 
Multi thread
Multi threadMulti thread
Multi thread
ย 
Node.js ๋ฆฌ๋ทฐ
Node.js ๋ฆฌ๋ทฐNode.js ๋ฆฌ๋ทฐ
Node.js ๋ฆฌ๋ทฐ
ย 
Bacchus server overview
Bacchus server overviewBacchus server overview
Bacchus server overview
ย 
Network ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Netty
Network ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ NettyNetwork ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Netty
Network ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Netty
ย 
Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)
Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)
Netty แ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต (1)
ย 
Mongodb cluster
Mongodb clusterMongodb cluster
Mongodb cluster
ย 
04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌ
04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌ04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌ
04 ์ž๋ฐ” ๋„คํŠธ์›Œํฌ
ย 
Node.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐNode.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๊ฐœ๋ฐœํ•˜๊ธฐ
ย 

Similar to Node week1

Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ
Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ
Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ SuHyun Jeon
ย 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
ย 
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ตNAVER D2
ย 
Ryan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doortts
Ryan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doorttsRyan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doortts
Ryan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doorttsSuwon Chae
ย 
FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ)
FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ  (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ) FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ  (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ)
FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ) YoungSu Son
ย 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
ย 
[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)
[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)
[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)YoungSu Son
ย 
Node.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉ
Node.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉNode.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉ
Node.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉJin wook
ย 
์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆ
์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆ์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆ
์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆJeongsang Baek
ย 
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalability
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalabilityTdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalability
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalabilityํฅ๋ฐฐ ์ตœ
ย 
Node.js intro
Node.js introNode.js intro
Node.js introChul Ju Hong
ย 
[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„
[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„
[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„sung ki choi
ย 
Node.js ์‹œ์ž‘ํ•˜๊ธฐ
Node.js ์‹œ์ž‘ํ•˜๊ธฐNode.js ์‹œ์ž‘ํ•˜๊ธฐ
Node.js ์‹œ์ž‘ํ•˜๊ธฐHuey Park
ย 
Node.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐNode.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐInho Kwon
ย 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
ย 
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œJava rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ์ค‘์„  ๊ณฝ
ย 
Softcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐ
Softcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐSoftcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐ
Softcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐhajaekwon
ย 
Nodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญ
Nodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญNodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญ
Nodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญshanka2
ย 
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ YoungSu Son
ย 
NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ํฅ๋ฐฐ ์ตœ
ย 

Similar to Node week1 (20)

Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ
Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ
Nodejs๋ฐœํ‘œ์ž๋ฃŒ - ํŒ€ ์„ธ๋ฏธ๋‚˜์šฉ
ย 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
ย 
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
ย 
Ryan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doortts
Ryan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doorttsRyan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doortts
Ryan Dahl์˜ Node.js ์†Œ๊ฐœ ๋™์˜์ƒ ํ•ด์„ค by doortts
ย 
FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ)
FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ  (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ) FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ  (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ)
FullStack ๊ฐœ๋ฐœ์ž ๋งŒ๋“ค๊ธฐ ๊ณผ์ • ์†Œ๊ฐœ (Android + MEAN Stack + Redis ๋‹ค๋ฃจ๊ธฐ)
ย 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
ย 
[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)
[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)
[NEXT] Android ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ํ”„๋กœ์ ํŠธ 4์ผ์ฐจ (Networking)
ย 
Node.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉ
Node.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉNode.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉ
Node.js์˜ ๋„์ž…๊ณผ ํ™œ์šฉ
ย 
์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆ
์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆ์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆ
์†Œ์…œ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ๋ณธ Node.js์˜ ์žฅ๋‹จ์ ๊ณผ ๋Œ€์•ˆ
ย 
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalability
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalabilityTdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalability
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalability
ย 
Node.js intro
Node.js introNode.js intro
Node.js intro
ย 
[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„
[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„
[111217 ์•„๊ฟˆ์‚ฌ์—ฐ๋ง๋ชจ์ž„] ์›น์†Œ์ผ“๊ณผ์˜จ๋ผ์ธ๊ฒŒ์ž„
ย 
Node.js ์‹œ์ž‘ํ•˜๊ธฐ
Node.js ์‹œ์ž‘ํ•˜๊ธฐNode.js ์‹œ์ž‘ํ•˜๊ธฐ
Node.js ์‹œ์ž‘ํ•˜๊ธฐ
ย 
Node.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐNode.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Node.js์—์„œ ๊ณต๊ณตAPI๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ
ย 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
ย 
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œJava rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
ย 
Softcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐ
Softcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐSoftcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐ
Softcon_ํ•˜์žฌ๊ถŒ_Only javascript์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์„œ๋ฒ„ ๋„์ „๊ธฐ
ย 
Nodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญ
Nodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญNodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญ
Nodejs แ„‡แ…กแ†ฏแ„‘แ…ญแ„Œแ…กแ„…แ…ญ
ย 
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ
ย 
NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
NET ์ตœ์„ ๋‹จ ๊ธฐ์ˆ ์— ์˜ํ•œ ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
ย 

More from ์€์„ ๊น€์€์„ (6)

Hanoi2
Hanoi2Hanoi2
Hanoi2
ย 
Subversion
SubversionSubversion
Subversion
ย 
How to build a web server on Linux.
How to build a web server on Linux.How to build a web server on Linux.
How to build a web server on Linux.
ย 
Kinect Lab Pt.
Kinect Lab Pt.Kinect Lab Pt.
Kinect Lab Pt.
ย 
Kinect
KinectKinect
Kinect
ย 
Kinect
KinectKinect
Kinect
ย 

Node week1

  • 1. Week 1 - node.js์˜ ์—ญ์‚ฌ์™€ ๋ฐœ์ „
  • 2. Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 1. ๋…ธ๋“œ๋Š” ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‹ค. Node.js(์ดํ•˜ โ€œ๋…ธ๋“œโ€)๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์ด๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ณผ๊ฑฐ์—๋„ ๋งŽ์€ ์‹œ๋„๊ฐ€ ์žˆ์—ˆ๊ณ , ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ  ๋„ ์žˆ๋‹ค. ๋…ธ๋“œ๋Š” ๊ทธ๋™์•ˆ ๋ฐœ์ „ํ•ด ์˜จ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์™„์„ฑํ˜•์— ๊ฐ€๊น๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€์˜ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ ๊ธฐ๋ฐ˜์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‹ค์šด ๋Š๋‚Œ์ด ์—†์—ˆ๋‹ค. ๋ฐ˜๋ฉด ๋…ธ๋“œ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉํ•˜๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ป์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฒฝํ—˜๊ณผ ์ง€์‹์„ ๋…ธ๋“œ์—์„œ๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•œ๋‹ค. ์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ์•ˆ๋‹ค๋ฉด ์ด๋ฏธ ๋…ธ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๊ณ  ์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ..์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด ๊ทธ๋Ÿด ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋˜์ง€๋งŒโ€ฆ (โ€œ์‹œ๊ทธ์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋…ธ๋“œ๋ฅผ ๋ณ‘ํ–‰ํ•ด์„œ ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋–จ๊นŒ ํ•ฉ๋‹ˆ๋‹ค!โ€)
  • 3. Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 2. Common JS ์•Œ์•„๋ณด๊ธฐ ๋…ธ๋“œ๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ธฐ ์ „์— CommonJS๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. CommonJS๋Š” ์ผ€๋นˆ ๋Œ•๊ตฌ์–ด๊ฐ€ 2009๋…„ 1์›”์— ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ๋กœ SErverJS๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. CommonJS๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๊ฐ€๋ณด๋ฉด โ€œ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋” ์ด์ƒ ๋ธŒ๋ผ์šฐ์ €๋งŒ์„ ์œ„ํ•œ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋‹คโ€๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด์ฒ˜๋Ÿผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์›น๋ธŒ๋ผ์šฐ์ € ๋ฐ–์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€์ด ๋ฐ”๋กœ CommonJS๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณดํ†ต ์›น๋ธŒ๋ผ์šฐ์ €๋Š” HTMLํŒŒ์ผ์—์„œ <script>๋ผ๋Š” ํƒœ๊ทธ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋กœ๋”ฉ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์„œ๋กœ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ์€ HTMLํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๊ณ , ์—ฌ๋Ÿฌ ํŒŒ์ผ๋กœ ๋‚˜๋ˆ ์ ธ์žˆ๋Š” JS์ฝ”๋“œ๋“ค์ด ์„œ๋กœ ํ˜ธ์ถœํ•˜๊ณ  ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค. CommonJS๋Š” ์ด๋Ÿฐ ๋ฐฉ๋ฒ•์„ ๋…ผ์˜ํ•˜๊ณ  ํ‘œ์ค€ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ณ , W3C๊ฐ™์€ ๊ณต์‹์ ์ธ ํ‘œ์ค€ํ™” ์กฐ์ง์€ ์•„๋‹ˆ์ง€๋งŒ, ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ํ‘œ์ค€์ฒ˜๋Ÿผ ์ด์šฉ๋˜๊ณ  ์žˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ์€ โ€œ๋…ธ๋“œโ€๊ฐ€ ๋ฐ”๋กœ ์ด ํ‘œ์ค€์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  CommonJS์˜ ๋ชจ๋“  ํ‘œ์ค€์„ ์•Œ ํ•„์š”๋Š” ์—†๋‹ค. ๋‹จ์ง€ ๋…ธ๋“œ๊ฐ€ CommonJS์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ๋œ๋‹ค.
  • 4. Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 3. ๋…ธ๋“œ์˜ ์—ญ์‚ฌ์™€ ๋ฐœ์ „ ์‚ฌ์‹ค ๋…ธ๋“œ๋Š” ๋ผ์ด์–ธ ๋‹ฌ์ด๋ผ๋Š” ์‚ฌ๋žŒ์ด ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋กœ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ๋ผ์ด์–ธ์€ ๊ตฌ๊ธ€ ํฌ๋กฌ ์›น๋ธŒ๋ผ์šฐ์ €์˜ JS์—”์ง„์ธ V8์„ ์ด์šฉํ•ด ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ TCP๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ HTTP์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ์•„์ด๋””์–ด๋ฅผ ๋ผ์ด๋ธŒ์ €๋„์— ์˜ฌ๋ ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  2์›” 15์ผ ๊นƒํ—ˆ๋ธŒ์— ์ €์žฅ์†Œ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  2010๋…„ ๋…ธ๋“œ๊ฐ€ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ธ๊ธฐ๋ฅผ ์–ป๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํšŒ์‚ฌ์ธ ์กฐ์ด์—”ํŠธ๊ฐ€ ์ž์‚ฌ์˜ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์ค‘ ํ•˜๋‚˜๋กœ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋ฉด์„œ ์‹ค์ œ ๊ณต์‹ ์Šคํฐ์„œ๋กœ ๋‚˜์„ ๋‹ค. ๊ทธ ํ›„ ๋…ธ๋“œ๋Š” ์ œ์ด์ฟผ๋ฆฌ์™€ ๋ ˆ์ผ์ฆˆ๋ฅผ ์ œ์น˜๊ณ  2์œ„๋ฅผ ์ฐจ์ง€ํ–ˆ๊ณ , ํ˜„์žฌ npm์˜ ์ค‘์•™์ €์žฅ์†Œ ๋“ฑ๋ก ๊ธฐ์ค€์œผ๋กœ 5์ฒœ์—ฌ๊ฐœ์˜ ํ™•์žฅ ๋ชจ๋“ˆ์ด ๋“ฑ๋ก๋˜์–ด์žˆ๋‹ค. (โ€œ๋ฌผ๋ก  npm์—์„œ ์ฐพ๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ, http://startic.kr/njs ์ด๊ณณ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!!โ€) ๊ทธ๋ฆฌ๊ณ  ๋…ธ๋“œ์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์„ ํ•˜๋‚˜ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ, 0.3 ๋ฒ„์ „ ์ดํ›„ ๋ถ€ํ„ฐ ๋ ์ž๋ฆฌ๊ฐ€ ํ™€์ˆ˜์ธ ๋ฒ„์ „์€ ๊ฐœ๋ฐœ์ž ๋ฒ„์ „์ด๊ณ  ์ง์ˆ˜์ธ ๊ฒฝ์šฐ๊ฐ€ ์•ˆ์ •์„ฑ์ด ํ™•์ธ ๋œ ๋ฒ„์ „์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  0.4.x๋ผ๋Š” ๋งˆ์ด๋„ˆ ๋ฒ„์ „์ด ๋‚˜์˜ค๋ฉด, ๊ทธ ๋‹ค์Œ์€ 0.6 ์•ˆ์ •๋ฒ„์ „์ด ๋‚˜์˜จ๋‹ค๋Š” ์‚ฌ์‹ค๋„ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.
  • 5. Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 4. ๋…ธ๋“œ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ ์—ญ์‚ฌ๋Š” ํ•ญ์ƒ ๊ทธ ์‹œ์ž‘์ด ์ค‘์š”ํ•˜๋‹ค. ๋„๋Œ€์ฒด ๋ผ์ด์–ธ์ด๋ผ๋Š” ์‚ฌ๋žŒ์€ ์™œ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒƒ์ผ๊นŒ? ์ฐธ๊ณ ๋กœ ์ด ๋‚ด์šฉ์€ ๋ผ์ด์–ธ์ด ์ง์ ‘ ๋ฐํžŒ ๋‚ด์šฉ์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์ž‘์„ฑํ•œ๋‹ค. ๋ผ์ด์–ธ์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋‚˜ ํ”Œ๋žซํผ์— ์ž˜๋ชป๋œ ์ ์ด ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•˜๋ฉด I/O๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ I/O๋Š” ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅ๋ฐ›๋Š” ๋‚ด์šฉ, ํŒŒ์ผ, ์ฝ๊ณ  ์“ฐ๊ธฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด๋‚˜ ๋„คํŠธ์›Œํฌ์˜ ์‚ฌ์šฉ ๋“ฑ ์ž…์ถœ๋ ฅ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ ํ•œ๋‹ค. ๊ทธ ๊ฐ„๋‹จํ•œ ์˜ˆ๋Š” ์•„๋ž˜ ์ฝ”๋“œ๋กœ ์‚ดํŽด๋ณด์ž. Var result = db.query(โ€˜select * from table;); ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฟผ๋ฆฌ๋กœ ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ„๋žตํžˆ ๋‚˜ํƒ€๋ƒˆ๋‹ค. I/O๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด์ฒ˜๋Ÿผ ์ž‘์„ฑํ•œ๋‹ค. ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹น ํ•˜๊ณ  ๊ทธ ๋‹ค์Œ ์ค„ ๋ถ€ํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ์ฝ”๋“œ์˜ ์ˆ˜ํ–‰๋ฐฉ์‹์„ ์‚ดํŽด๋ณด๋ฉด I/O๋ฅผ ์š”์ฒญํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์„ ๋•Œ ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๋Š” ์•„๋ฌด ์ผ๋„ ์•ˆํ•˜๋Š” ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ๋Œ์•„์˜ค๋ฉด ์ด์–ด์„œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฆ‰, IO๋ฅผ ๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰์ด ๋๋‚  ๋•Œ ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๋Š” ๋ธ”๋กํ‚น์ด ๋˜๋ฉด์„œ ๋‹ค๋ฅธ ์–ด๋– ํ•œ ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ์‹œ์Šคํ…œ ๋“ฑ์˜ ์™ธ๋ถ€์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ ํŒŒ์ผ ์ฝ๊ธฐ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์˜ ์ฒ˜๋ฆฌ์˜์—ญ ์ฝ”๋“œ ์‹คํ–‰ ์ฝ”๋“œ ์‹คํ–‰ ์ฝ”๋“œ ์‹คํ–‰
  • 6. Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 4. ๋…ธ๋“œ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ ์œ„ ๊ทธ๋ฆผ์—์„œ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ์˜์—ญ์ด๋ผ๊ณ  ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์ง์ ‘ ๊ณ„์‚ฐํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ์˜์—ญ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐ™์€ I/O์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด I/O๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ค„ ๋•Œ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๋Š” ๋” ์ด์ƒ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ฉˆ์ถ˜๋‹ค. ๊ทธ๋ž˜์„œ I/O๋ฅผ ์š”์ฒญํ•œ ์ˆœ์„œ๋Œ€๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค๋ฐ›๋Š” ๋™๊ธฐ ๊ตฌ์กฐ๊ฐ€ ๋˜๋Š” ๊ฒƒ ์ด๋‹ค. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์‹œ์Šคํ…œ ์ž์›์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ๋Œ€๋กœ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ์ž์›์„ ์š”์ฒญํ–ˆ์„ ๋•Œ ๋ฐ๋“œ๋ฝ์— ๋น ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฐ ๋ถ€๋ถ„์„ ์‹ ๊ฒฝ ์จ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•ด์•ผํ•œ๋‹ค. ๋˜ํ•œ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” I/O๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์‘๋‹ต์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ง„๋‹ค. ๋„คํŠธ์›Œํฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์„œ๋ฒ„์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ 0.1์ดˆ๋งŒ์— ์‘๋‹ต์ด ์˜ฌ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, 1์ดˆ, ํ˜น์€ ์•„์˜ˆ ์‘๋‹ต์ด ์˜ค์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ผ์ด์–ธ์€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ์ด์šฉํ•ด I/O๋ฅผ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋งŒ์œผ๋กœ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด์˜€๋‹ค. ์ด๋ฒคํŠธ ๋ฃจํ”„๋ผ๋Š” ๊ฒƒ ์—ญ์‹œ ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ๋ด์™”๋˜ ๋ฐฉ์‹์ด๊ณ  ์ด๋ฅผ ํ•œ๋ฐฉ์— ์ดํ•ดํ•˜๋Š” ๋ฒ•์€ ๋ฐ”๋กœ ์•„๋ž˜ ์ฝ”๋“œ์— ์žˆ๋‹ค. db.query(โ€˜select * from tableโ€™){ }; ๋ฐ”๋กœ, ์ฝœ๋ฐฑ ํŒจํ„ด์ด๋‹ค. ์ฟผ๋ฆฌ๋ฅผ ์กฐํšŒํ•˜๋ฉด์„œ ๋™์‹œ์— ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ด์–ด์ง„ ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋‹ค๊ฐ€ ์กฐํšŒ๊ฐ€ ๋์ด ๋‚˜๋ฉด ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ์จ I/O์— ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„์—๋„ ๋‹ค๋ฅธ ์ž‘์—…์„ ๊ณ„์† ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • 7. Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 4. ๋…ธ๋“œ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ ์ด์ „ ํŽ˜์ด์ง€๋ฅผ ์ฝ๊ณ ๋‚˜๋ฉด ์ดํ•ด๋„ ์•ˆ๋˜๊ณ , ๋ฌธ๋“ ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. โ€œ๊ทธ๋Ÿผ ์™œ ๋ชจ๋‘๊ฐ€ Event Loop๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๊ฐ€?โ€ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ Ryan Dahl์€ ๋ฌธํ™”์ ์ธ(Cultural) ์ด์œ ์™€ ๊ตฌ์กฐ์ (infrastructural)์ธ ์ด์œ  2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๋ฌธํ™”์ ์ธ ์ด์œ ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šธ๋•Œ ์ธํ’‹์„ ์š”์ฒญํ•˜๋ฉด ์š”์ฒญํ•œ ์ธํ’‹์„ ๋ฐ›์„๋•Œ๊นŒ์ง€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ๋ง๋ผ๊ณ  ๋ฐฐ์› ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค. ๊ทธ ๋ง์ธ ์ฆ‰, ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์™”๋‹ค๋Š” ๊ฒƒ ์ด๋‹ค. puts("Enter your name: "); var name = gets(); puts("Name: " + name); ์œ„ ์ฝ”๋“œ๋Š” ์ธํ’‹์„ ๋ฐ›์•„ ์ถœ๋ ฅํ•˜๋Š” ์ต์ˆ™ํ•œ ์ฝ”๋“œ์ธ๋ฐ ์ธํ’‹์ด ๋“ค์–ด์˜ค๊ธฐ ์ „๊นŒ์ง€๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ˜๋ฉด, ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฐฉ์‹์ธ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ๋ณต์žกํ•˜๋‹ค๋Š” ์ด์œ ๋กœ ํ•™๊ต์—์„œ ๊ฑฐ๋ถ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฐฉ์‹์— ์•ฝํ•˜๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ๋ผ์ด์–ธ์˜ ์„ค๋ช…์ด๋‹ค. puts("Enter your name: "); gets(function(name) { puts("Name: " + name); });
  • 8. Node.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 5. ์ •๋ฆฌ 1. ๋…ธ๋“œ๋Š” ๋ผ์ด์–ธ ๋‹ฌ์ด ๋งŒ๋“ค์—ˆ๊ณ  2009๋…„ 11์›” ์ฒ˜์Œ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. 2. ๋…ธ๋“œ๋Š” ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ฐœ๋ฐœ๋˜๋ฉฐ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋…ธ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ๋ชจ๋“ˆ์„ ๋งŒ๋“ ๋‹ค. 3. ๋…ธ๋“œ๋Š” CommonJS์˜ ํ‘œ์ค€์„ ๋”ฐ๋ฅธ๋‹ค. 4. ๋…ธ๋“œ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์— ์‹ฑ๊ธ€ ์Šคํƒ์„ ์‚ฌ์šฉํ•œ๋‹ค. 5. ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“  I/O๋ฅผ ๋น„๋™๊ธฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. 6. ๋ชจ๋“  I/O๋Š” ๋„Œ ๋ธ”๋กํ‚น I/O์ด๋‹ค. 7. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ ์—”์ง„์œผ๋กœ ๊ตฌ๊ธ€ ํฌ๋กฌ ์›น๋ธŒ๋ผ์šฐ์ €์˜ V*์—”์ง„์„ ์‚ฌ์šฉํ•œ๋‹ค. 6. ํ† ๋ก  โ€ข ํ† ๋ก  ๋ถ€๋ถ„์€ โ€œ๋…ธ๋“œ์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ โ€์„ ์ฃผ์ œ๋กœ ๊ฐ ์ž ์ž์‹ ์˜ ์ƒ๊ฐ์„ ์ด์•ผ๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ์•ฝ 15๋ถ„ ์ •๋„ ์ง„ํ–‰ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. โ€ข ํ† ๋ก ์—์„œ ํ’€๋ฆฌ์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ผ๋˜์ง€, ๊ถ๊ธˆ์ ์€ ๊ตญ๋‚ด Node.js ์ฒซ ์ €์ž์ด์‹  outsider(๋ณ€์ •ํ›ˆ)๋‹˜๊ป˜์„œ ์ž˜ ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋„์™€์ฃผ์‹ ๋‹ค๊ณ  ํ•˜์…จ์œผ๋‹ˆ ๊ผญ ๋งค ์ฃผ๋งˆ๋‹ค ์ค€๋น„๋ฅผ ํ•ด์ฃผ์…จ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค!! โ€ข Week 2 ํ† ๋ก  ์ฃผ์ œ โ€œNode.js๋กœ 16์ฃผ ๋’ค ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊นŒ?โ€