2020/09/26 2

Node.js ์ดํ•ดํ•˜๊ธฐ - ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ

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

Programming/Node.js 2020.09.26

Node.js ์ดํ•ดํ•˜๊ธฐ - ๋น„๋™๊ธฐ ๋…ผ ๋ธ”๋กœํ‚น I/O ๋ชจ๋ธ์— ๋Œ€ํ•ด

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ RESTful API? ๋น„๋™๊ธฐ? ์–˜๋„ค๋“ค์ด ๋„๋Œ€์ฒด ๋ญ์ง€ ? ์–ผ๋งˆ ์ „ ๊ตญ๋น„ ์ง€์› ํ•™์›์„ ์ˆ˜๋ฃŒํ–ˆ๋‹ค. ์šฐ๋ฆฌ ์กฐ๋Š” LMS์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ€ด์ฆˆ ํ”Œ๋žซํผ์„ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ, ์œ ํ˜• ๋ณ„ ํ€ด์ฆˆ์— ๋Œ€ํ•œ CRUD๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผํ• ๊นŒ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ ์ž์˜์ , ํƒ€์˜์ ์œผ๋กœ Ajax ๋ฅผ ์ด์šฉํ•ด์„œ ๋น„๋™๊ธฐ๋กœ ํ€ด์ฆˆ CRUD ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜๋ฐ–์— ์—†์—ˆ๋Š”๋ฐ JSON์ด๋‚˜ RestController์—์„œ JSON ๊ฐ์ฒด๋ฅผ RequestBody๋กœ ๋ฐ›์•„์•ผ ํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•œ ์ƒํƒœ๋กœ ์–ต์ง€๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ์ด์œ ๋กœ ์ด๋ฒˆ ํ•™์›์—์„œ์˜ ๋งˆ์ง€๋ง‰ ํ”„๋กœ์ ํŠธ ๋•Œ๋ฌธ์— ์‹œ์ž‘ํ•œ Node.js ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Node.js ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? Node.js ๋Š” ํ•ด๋‹น ๋ฌธ์„œ์—์„œ Chrome V8 Javascript ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ Javascrip..

Programming/Node.js 2020.09.26