Spring / Java ์ฌํ ๊ณผ์ ์ด์ง๋ง ์ค๋์ Node.js ์ ๋ํด ๋ฐฐ์ ๊ณ , JS ๋ฌธ๋ฒ์ ๋ํด ๋ฐฐ์ ๋ค. (๊ทธ ์ด์ ์ ๋ํด์๋ ๋ง์ง๋ง์ ์ ์ด๋ณด๊ฒ ์ต๋๋ค.)
ํ์์ฒ๋ผ ๊ฐ๋ ๊ณผ ๋ฌธ๋ฒ์ด ์์์ก๋ค.... ๊ฐ๋ตํ๊ฒ ์๊ฐํ๊ณ ์ ๋ฆฌํ๊ณ ์ ํฉ๋๋ค
Node.js ๋ ๋ค์ด๋ก๋ ๋งํฌ ์ ์ ์ํ์ฌ ์ฌ์ฉ์์ OS์ ๋ง๊ฒ ์ค์นํ๋ฉด ๋ฉ๋๋ค.
๊ฐ๋ฐ ํด (๋๊ตฌ) ๋ก๋ vscode ๋ฅผ ์ฌ์ฉ ํ๋ค๊ณ ํ์
จ์ต๋๋ค.
vscode ๋ค์ด๋ก๋ ๋งํฌ
(Js ๊ฐ๋ฐ์ vscode ๊ฐ ํธํ๋ค๊ณ ํ์ญ๋๋ค.)
๋ง์ ํน์ง์ด ์์ง๋ง, Node.js ์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋น๋๊ธฐ์ ๋จ์ผ ์ฐ๋ ๋ ์๋ฒ๋ผ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ๋น๋๊ธฐ์์ ๋ฐ๋๋ง์ ๋๊ธฐ์์ด๋ค.
- ๋น๋๊ธฐ์ : ์ฌ์ฉ์์ ์์ฒญ์ ๋ํด ์๋ต์ ๊ธฐ๋ค๋ ค์ผ ํ๊ณ , ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ์์ผ ๋ค์ ์์ฒญ์ ๋ณด๋ผ์ ์์ต๋๋ค.
- ๋๊ธฐ์ : ์ฌ์ฉ์์ ์์ฒญ์ ๋ํด ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์์๋ ๋ค์ ์์ฒญ์ ๋ณด๋ผ์ ์์ต๋๋ค.
EX : Java๋ ์ฃผ๋ก ๋๊ธฐ์
ํน์ง์์ ์ฐ๋ ๋ ํค์๋๋ ๋์ ๋ณด์ผ๊ฒ์ ๋๋ค. ์ฐ๋ ๋๋ ๋๋ถ๋ถ ํ๋ก์ธ์ค๊ฐ๋ ๊ณผ ๊ตฌ๋ถ์ง์ด ์ค๋ช ํ๊ฒ ๋ฉ๋๋ค.
- ํ๋ก์ธ์ค : ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด CPU ์์์ ํ ๋น๋ฐ์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ์๋ ์ํ๋ฅผ ๋งํฉ๋๋ค.
- ์ฐ๋ ๋ : ํ ํ๋ก์ธ์ค์์ ์คํ๋๋ ๋จ์ ์ ๋๋ค. ํ๋ก์ธ์ค์ ํ์ ๊ฐ๋
์ค์ต์ ๋ค์ด๊ฐ๊ธฐ ์์ ์ ๋ Java / Spring, ํ์๋ฆฌํ ์ ๋ ๋ง ๊ฒฝํํด๋ดค์ผ๋ฉฐ,
ํ๋ก ํธ ์๋ ์ธ์ด์ ๋ํด์๋ ์ค๋ช
์ด ๋ถ์กฑํ ์ ์์ต๋๋ค.
(๊ฐ๋
๋ค์ด ๋๋ฌด ์ด๋ ค์ ๋ค....)
์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์์ต๋๋ค.
let ์ด๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์์ผ๋ฉฐ, var ํค์๋๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ์ ์์ ๋ฐฉ์ ์ด๋ผ๊ณ ํฉ๋๋ค.
let limit = 1000;
// Promise ํค์๋๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ
let promise = new Promise( function(resolve, reject){
if(limit < 10){
reject("10๋ณด๋ค ๊ฐ์ด ์์ต๋๋ค.");
}
s = 0;
for(i = 1; i <=limit; i++){
s += i;
}
resolve(s);
})
.then( (res) =>{ // resolve๊ฐ ํธ์ถ๋ ๋ then ๊ตฌ๋ฌธ์ด ํธ์ถ๋๋ค.
console.log(res); // ๋์ค์ ํธ์ถ๋๋ค.
})
.catch( (error) => {
console.log(error);
});
console.log("end-----------") // ๋จผ์ ํธ์ถ๋๋ค.
// ์ถ๋ ฅ
// end-----------
// 500500
express ๋ ์น ํ๋ ์ ์ํฌ์ด๋ฉฐ, Node.js ๋ฅผ ์ฌ์ฉํ ๋ ์ฌ์ฉํ๋ค๊ณ ํฉ๋๋ค.await ๋ async ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
async ๋ ํญ์ ํ๋ผ๋ฏธ์ค๋ฅผ ๋ฐํํฉ๋๋ค.
async function sigma2(limit = 10){
let promise = new Promise( function(resolve, reject){
s =0;
for(i = 1; i <= limit; i++){
s+= i;
}
resolve(s); // ์ฑ๊ณตํจ
});
let result = await promise;
return result;
}
ํด๋น ๋ก์ง์์ ์ ๊ธฐํจ์ ์กฐ๊ธ ๋๊ผ์ต๋๋ค.
Java์์๋ ์ฌ์ฉํ์ง ๋ชปํ๋ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ์ด๊ธฐํ ํ๋ค๋ ์ ์ด์์ต๋๋ค.
์ปดํ์ผ ์ธ์ด (Java) vs ์ธํฐํ๋ฆฐํฐ ์ธ์ด (Js)
- ์ปดํ์ผ ์ธ์ด : ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ์ ์ฒด์ ์ธ ๋ก์ง์ ์คํํฉ๋๋ค. ๋ณ์ ๋ฌด์กฐ๊ฑด์ ์ ์ธ, ๋๋ฒ๊น ๊ณผ ์๋ฌ ์ก๊ธฐ๊ฐ ์ฌ์
- ์ธํฐํ๋ฆฐํฐ ์ธ์ด : ๋๋ถ๋ถ ๋ณ์ ์ ์ธ์ ๋ชปํจ, ๋๋ฒ๊น ๊ณผ ์๋ฌ ์ก๊ธฐ๊ฐ ์ด๋ ค์
๊ฐ์ฌ๋ ๋ง์์ผ๋ก๋ ์ง๊ธ๊น์ง ํ๋ก์ ํธ๋ฅผ ํด์ค๋ฉด์ ์คํ๋ง ๋ถํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก ํธ์๋๋ฅผ ๊ฐ๋ฐํ ๋ ํ์๋ฆฌํ ํน์ jsp ๋ฅผ ์ฌ์ฉํด์์ ๊ฑฐ๋ผ๊ณ ํ์
จ๋ค.
โก jsp ๋ ์์ฅ์์ ๋ฌปํ๋ ์ธ์ด์, ๋ฐฐ์ฐ๋๊ฑธ ๊ถ์ฅ X
Node.js ๋ฅผ ๋ฐฐ์์ผ๋ก์จ ์ถํ ํ๋ก์ ํธ์์ ๋ฐฑ์๋ ๋จ ๊ณผ ํ๋ก ํธ์๋ ๋จ์ ๋๋ค ๊ตฌํํ๊ธฐ๋ฅผ ์๊ฐํ๊ณ ๊ณ์๊ณ , SpringBoot ๋ ์จ์ ํ RestFul Api ๊ฐ ์ฃผ ๊ฐ ๋๊ฒ ํด์ผ ๋๋ค๊ณ ํ์ฌ
Node.js ๋ฅผ ๋ฐฐ์์ผ๋ก์จ, Vue, React ๋ ์กฐ๊ธ ํ๋ค๊ณ ํ์ฌ
โก ์ทจ์
๋๊ฐ๋ ๊ทธ๋๋ ์กฐ๊ธ์ด๋ผ๋ ์ ๋ฆฌํ ๊ฑฐ๋ผ๊ณ ํ์ ๋ค.
๊ฐ์ฌ๋์ด ๋ค์ํ ๋ง์์ ํด์ฃผ์ จ์ง๋ง, ์ง์ค์ ์์ธํ ์ปค๋ฆฌํ๋ผ์ ๋ด์ผ ์๋ ค์ฃผ์ ๋ค๊ณ ํ์ ๋ค.