12์ 25์ผ ์์นจ์ ์์ธ ๊ธฐ์์ฌ์ ์
์ฌํ๋ค.
25-26 ์ดํ ๋์ ์๋น ๋ ํ๋ ์ฌ๋ก์ฐํ์ฝ์์ ํ๋ํฐ๋ ๋จน๊ณ
DDP์์ ์ด๋ฐ๋๋ฅด ๋ฌ๋ฆฌ์ ๋ ๋ดค๋ค.
์ ๋น๋ ๋ง๋ณต๋ฆผ ๋ง๋ด์๋ค์ง์์ ๋ก๋ณถ์ด๋ ๋จน์๋ค.
์๋น ๊ฐ ์ง์ผ๋ก ๋์๊ฐ์ง ํ๋ฃจ ๋ฐ์ ์๋๋๋ฐ ๋ฒ์จ ๋ณด๊ณ ์ถ๋ค.
์ง์ ๊ฐ๊ณ ์ถ๋ค. ์๋ง ์๋น ๋ณด๊ณ ์ถ๋ค.
Node.js๋ javascript ๋ฐํ์ ์ ๋๋ค.
Node.js๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ, ๋ ผ ๋ธ๋กํน I/O๋ชจ๋ธ์ ์ฌ์ฉํด ๊ฐ๋ณ๊ณ ํจ์จ์ ์ ๋๋ค.
๋ฐํ์: ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๊ตฌ๋๋๋ ๋ฐฉ์
Node.js์ ๋ฑ์ฅ์ผ๋ก js์ ๊ตฌ๋ ๋ฒ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ, ๋จธ์ ๋ฌ๋, ๋ฐ์คํฌํ ์ฑ๋ฑ๊น์ง ํ์ฅ๋์๋ค.
=> Node.js๋ js๋ฅผ ์ด์ฉํ ์ ์๋ ๋ถ์ผ๋ฅผ ๋ํ๋ค.
: ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ๋ฏธ๋ฆฌ ์ง์ ํด๋ ์์ ์ ์ํํ๋ ๋ฐฉ์
: ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์
์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฒ๋ฆฌํ๊ณ , ์ฒ๋ฆฌํ๋ ๋์์๋ ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค.
์๋ฒ์์ ์ด์ ์ ์์ฒญ์ด ๋๋๋ ์ฆ์ ์๋ตํ๋ค.
๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์๋ต๊ณผ ์์ฒญ์ ๋ฐ์ ์ ์๋ค๋ ๊ฒ์ด ์ฅ์
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์์ ์ ์ํํ๋ ๋์ ํด๋ผ์ด์ธํธ๋ ๋๊ธฐ, ์์ ์ํ ๋์ค ํด๋ผ์ด์ธํธ๊ฐ ๋ ๋ค๋ฅธ ์์ฒญ์ ๋ณด๋ด๋ ์๋ฒ๋ ์ด๋ฅผ ์ํํ ์ ์์
: ์์ ์ ์คํํ๋ ๋จ์, ๋ชจ๋ ์์ฒญ๋ค์ ์คํํ๋ ๋จ์
: ์ฃผ์ด์ง ์์
์ ํ๊ฐ์ ์ค๋ ๋๊ฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
๋ธ๋ผ์ฐ์ ์์ ์ค๋ ๋์ ์์ฒญ์ ๋ณด๋ด๊ณ ์ค๋ ๋๋ ๋ธ๋ผ์ฐ์ ์ ์๋ตํจ, ํ๋์ ์ค๋ ๋๊ฐ ๋ค์์ ์์ฒญ์ ์๋ต
: ํ๋์ ์์ฒญ์๋ ํ๋์ ์ค๋ ๋, ์์ฒญ๊ณผ ์๋ต์ด ๋ง์์ง๋ฉด ์ค๋ ๋ ๊ฐฏ์๊ฐ ๋์ด๋จ
var hello = "hello";
function sayHello๋ () {
var hello = "hello hello"
console.log(hello);
}
console.log(hello);
// hello
// function sayHello๋ sayHello();์์ ์คํ๋จ
var hello = "hello";
if(true) {
var hello = "hello hello";
}
console.log(hello);
// hello hello
// if๋ฌธ์์ ์ ์ธ๋ hello๊ฐ ์ด์ ์ ๋ณ์๋ฅผ ๋ฎ์ด์
let hello = 'first hello';
hello = 'second hello';
console.log(hello);
// ํ ๋ฒ ์ ์ํ ๋ณ์๋ฅผ ์ฌ์ ์ ํ ์ ์์
let hello = 'first hello';
let hello = 'second hello';
console.log(hello);
//SyntaxError: Identifier 'hello' has already been declared
let hello = 'first hello';
if (true){
let hello = 'second hello';
console.log(hello);
}
console.log(hello);
// second hello
// first hello
const hello = 'first hello';
hello = 'second hello';
console.log(hello);
// TypeError: Assignment to constant variable.
// ํ๋ฒ ์ ์๋๋ฉด ์ฌ์ ์ํ ์ ์์
const hello = 'first hello';
if(true) {
const hello = 'second hello';
console.log(hello);
}
console.log(hello);
// second hello
// first hello
// ๋ฐ์ hello์ if์์ hello๋ ๋ค๋ฅธ hello์
const foo = () => {
console.log('arrow function');
};
foo();
// arrow function
์์ ํ์ดํ ํจ์๋ ์๋์ ํจ์์ ๋์ผํ๋ค.
function foo() {
console.log('arrow function');
};
const foo = (x) => {
return x;
};
console.log(foo('arrow'));
// arrow
// x๋ ๋งค๊ฐ ๋ณ์
// ๋งค๊ฐ๋ณ์๊ฐ ํ๋๋ผ๋ฉด ์๊ดํธ ( ) ์๋ต๊ฐ๋ฅ
// ํจ์๊ฐ ๋ฐ๋ก return๋๋ค๋ฉด ์ค๊ดํธ { } ์๋ต๊ฐ๋ฅ
const foo = x => x;
console.log(foo('arrow'));
const foo = (x, y) => x + y;
console.log(foo(1, 5)); // 6
const foo = (x, y) => {
console.log('๋ ์ค ์ด์');
return x + y;
};
console.log(foo(1, 5));
// ๋ ์ค ์ด์
// 6
: ๊ฐ์ฒด, ๋ฐฐ์ด์์ ๊ฐ์ ์ถ์ถํด์ ๋ณ์, ์์์ ๋ฐ๋ก ์ ์ธํ๋ ๋ฌธ๋ฒ
const object = {a: 1,
b: 2};
const a = object.a;
const b = object.b;
console.log(a);
console.log(b);
์์ ์ฝ๋์ ์๋์ ์ฝ๋๋ ๊ฐ์
const object = {a: 1,
b: 2};
const {a, b} = object;
console.log(a);
console.log(b);
const array = [1, 2];
const [one, two] = array;
console.log(one);
console.log(two);
Javascript์ ๊ฐ์ฅ ํฐ ํน์ง => ๋น๋๊ธฐ
: Task, ์ฝ๋์ ํ๋ฆ์ ๊ธฐ๋ค๋ฆฌ์ง์๊ณ ๊ฐ์ ์ํํ ๋ค์์
ย ย ๋จผ์ ๋๋๋ ์์๋๋ก ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅ
๋ฐ๋ผ์ js์์๋ ์์ฐจ์ ์์ ์ ์ํด callback๋ฐฉ์์ ์ทจํจ
$("#button").click(() => {
alert("btn clicked!!")
});
// ํด๋ฆญ์ด ์คํ๋ ํ ์๋ฆผ์ฐฝ์ด ์คํ๋๋๋ก ์ฝ๋ฐฑํจ์๋ก ์ผ๋ จ์ ์ธ ํ๋ฆ์ ๋ง๋ฆ
์ฝ๋ฐฑํจ์๋ฅผ ๋จ๋ฐํ ๊ฒฝ์ฐ callback hell(์ฝ๋ฐฑ์ง์ฅ)์ด ๋ฐ์ํ ์ ์์
: ์ฝ๋ฐฑํจ์์ ์ค์ฒฉ์ผ๋ก ํ ๋ฒ์ ์์๋ณด๊ธฐ ํ๋ ์ฝ๋
์ฝ๋ฐฑ์ง์ฅ์ ํ์ถํ๊ธฐ ์ํด promise๋ผ๋ ๋ฌธ๋ฒ์ด ๋ฑ์ฅํจ
// ์ฑ๊ณต
function sayHello() {
return new Promise((resolve, reject) => {
const hello = 'hello hello';
resolve(hello);
});
}
sayHello().then((resolvedData) => {
console.log(resolvedData)
}); // hello hello
// resolve : ์ฑ๊ณต ์ ํธ์ถ๋จ
// reject : ์คํจ ์ ํธ์ถ๋จ
// ์คํจ
function sayHello() {
return new Promise((resolve, reject) => {
reject(new Error());
});
}
sayHello()
.then((resolvedData) => {
console.log(resolvedData);
})
.catch((error) => {
console.log(error);
});
์ฝ๋ฐฑ์ง์ฅ ํด๊ฒฐ์ ์ํด promise์ then์ ์ฌ์ฉํ์๋๋ฐ,
then์ด ๋ง์์ง๋ฉด ์ด ๋ํ ๋ณต์กํด๋ณด์ด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง๊ฒ์ด Async์ Awaits
function sayHello() {
return new Promise((resolve, reject) => {
const hello = 'hello hello';
resolve("hello!!!");
});
}
async function test() {
const hello1 = await sayHello();
console.log(hello1);
}
test();
// hello!!!
// sayHello์ return ๊ฐ์ hello1์ ์ ์ฅํจ