StrongLoop / IBM์ ์ํด ์ ๊ณต์ด ๋ฒ์ญ.
์ด ๋ฌธ์๋ ์๋ฌธํ ๋ฌธ์์ ๋นํด ๋ ์ค๋๋ ๋ฒ์ ์ผ ์๋ ์์ต๋๋ค. ์ต์ ์ ๋ฐ์ดํธ๋ฅผ ํ์ธํ๋ ค๋ฉด ์๋ฌธํ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.API ์ฐธ์กฐ์ ๋ผ์ฐํฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์์์ ์๋ณํ๋ URL์ ์ผ๋ถ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด, http://foo.com/products/id
์์ โ/products/idโ๊ฐ ๋ผ์ฐํธ์
๋๋ค.
์ต์ข ์์ฒญ ํธ๋ค๋ฌ ์ด์ ์ Express ๋ผ์ฐํ ๊ณ์ธต์ ์ํด ํธ์ถ๋๋ ํจ์์ด๋ฉฐ, ๋ฐ๋ผ์ ์์ ์์ฒญ๊ณผ ์๋๋ ์ต์ข ๋ผ์ฐํธ ์ฌ์ด์ ๋ฏธ๋ค์จ์ด์ ์์นํฉ๋๋ค. ๋ฏธ๋ค์จ์ด์ ๊ด๋ จ๋ ์ฉ์ด์ ๋ช ๊ฐ์ง ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
var foo = require('middleware')
๋ Node.js ๋ชจ๋์ ์๊ตฌ ๋๋ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์ผ์ปฌ์ด์ง๋๋ค. ์ดํ var mw = foo()
๋ช
๋ น๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฏธ๋ค์จ์ด๋ฅผ ๋ฆฌํดํฉ๋๋ค.app.use(mw)
๋ ๋ฏธ๋ค์จ์ด๋ฅผ ์ ์ญ ์ฒ๋ฆฌ ์คํ์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ์ผ์ปฌ์ด์ง๋๋ค.app.get('/foo', mw, function (req, res) { ... })
๋ ๋ฏธ๋ค์จ์ด๋ฅผ โGET /fooโ ์ฒ๋ฆฌ ์คํ์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ์ผ์ปฌ์ด์ง๋๋ค.์ผ๋ฐ์ ์ผ๋ก, ํน์ ํ ๋ชฉ์ ์ ์ฐ์ฐ์ ์ํํ๋๋ก ์ค๊ณ๋ ํ๋ ์ด์์ ํ๋ก๊ทธ๋จ์ ๋๋ค. Express์ ์ปจํ ์คํธ์์๋, Node.js ํ๋ซํผ์์ ์คํ๋๋ฉฐ Express API๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ ๋งํฉ๋๋ค. ๋ํ ์ฑ ์ค๋ธ์ ํธ๋ฅผ ์ง์นญํ ์๋ ์์ต๋๋ค.
์๋ฌธ์์ ํ์ฉ์ฌ๋ก ์ฌ์ฉ๋ ๋๋ ํ์ดํ์ด ์ฌ์ฉ๋ฉ๋๋ค. (์: โ์ด ์ํํธ์จ์ด๋ ์คํ ์์ค ์ํํธ์จ์ด์ ๋๋คโ Wikipedia์ Open-source software๋ฅผ ์ฐธ์กฐํ์ญ์์ค.) ์ฐธ๊ณ ๋ก ์๋ฌธ์์ ์ด ์ฉ์ด์ ํ์ดํ์ด ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ํํ์ง๋ง, ์ฌ๊ธฐ์๋ ํฉ์ฑ ํ์ฉ์ฌ์ ํ์ดํ์ ์ถ๊ฐํ๋ ํ์ค ์๋ฌธ ๊ท์น์ ์ฌ์ฉํฉ๋๋ค.
HTTP ์์ฒญ์ ๋๋ค. ํด๋ผ์ด์ธํธ๋ HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ ์๋ฒ์ ์ ์ถํ๋ฉฐ, ์๋ฒ๋ ์๋ต์ ๋ฆฌํดํฉ๋๋ค. ์์ฒญ์ ์ฌ๋ฌ ์์ฒญ ๋ฉ์๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค(์: GET, POST ๋ฑ).
HTTP ์๋ต์ ๋๋ค. ์๋ฒ๋ HTTP ์๋ต ๋ฉ์์ง๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ฆฌํดํฉ๋๋ค. ์๋ต์๋ ์์ฒญ์ ๋ํ ์๋ฃ ์ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ์๋ต ๋ฉ์์ง ๋ณธ๋ฌธ์๋ ์์ฒญ๋ ์ปจํ ์ธ ๊ฐ ํฌํจ๋์ด ์์ ์๋ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค(Application Programming Interface)์ ๋๋ค. ์ด ์ฉ์ด๋ฅผ ์ต์ด๋ก ์ฌ์ฉํ ๋๋ ์ฝ์ด๋ฅผ ํ์ด์ ๊ธฐ์ฌํ์ญ์์ค.
Node.js ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋น ๋ฅด๊ณ ๊ฐ๋ฐฉ์ ์ธ ๊ฐ๊ฒฐํ ์น ํ๋ ์์ํฌ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก โExpress.jsโ๋ณด๋ค โExpressโ๊ฐ ์ ํธ๋์ง๋ง, โExpress.jsโ๋ ํ์ฉ๋ฉ๋๋ค.
๋น๋๊ธฐ์ I/O์ ์ด์ ์ ๋ ๋ฉํฐํ๋ซํผ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ, ์ฃผ๋ก Node.js์ ์ํด ์ฌ์ฉ๋๋๋ก ๊ฐ๋ฐ๋ฉ๋๋ค.
ํ์ฅ ๊ฐ๋ฅํ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ํ๋ซํผ์ ๋๋ค. Node.js๋ JavaScript๋ฅผ ์คํฌ๋ฆฝํ ์ธ์ด๋ก ์ฌ์ฉํ๋ฉฐ, ๋ฐฉํดํ์ง ์๋ I/O ๋ฐ ๋จ์ผ ์ค๋ ๋ ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ํตํด ๋์ ์ฒ๋ฆฌ๋์ ๋ฌ์ฑํฉ๋๋ค. nodejs.org๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ํ์ฉ ์ฐธ๊ณ : ์ต์ด์๋ โNode.jsโ์์ผ๋ฉฐ ์ดํ โNodeโ๊ฐ ๋์์ต๋๋ค.