21๋
12์ 06์ผ
๐ Javascript
๐ ES(ECMAScript) Version
- 1998๋
ECMAScript 2 ๋ฐํ
- 1999๋
ECMAScript 3 ๋ฐํ
- 2007 ECMAScript 4 ๊ฐ๋ฐ์ ์์ํ์ผ๋ ์ค๋ ํฌ๊ธฐ
=> ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด ๊ฐ๋ฐ ์์ฌ์ ๋ถ๋ ธ์ง๋ง ECMAScript 3 ํธํ์ฑ์ ํฌ๊ธฐํ๊ฒ ์๊ธฐ์ ๊ฐ๋ฐ ์ข์ด
- 2009๋
ECMAScript 5๋ฅผ 2009๋
3์์ ๋ฐํ(ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ)
- 2015๋
6์ ECMAScript 2015๊ฐ ํ์
=> ES6๊ฐ ๋์คํ๋ ์ด๋ฆ์ด์ง๋ง ECMA International์์ ํด๋ง๋ค ์
๋ฐ์ดํธ ํ๊ธฐ๋ก ๊ฒฐ์
=> ES ๋ค์ ์๋์
๋ฒํธ๊ฐ ๋ถ์๋ ์ด๋ฆ์ด ES2015์ ๊ฐ์ ์ถํ๋ ๋
๋๊ฐ ๋ถ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ
์ฐธ๊ณ ๋งํฌ
๋งค๋
์๋ก์ด ๋ฒ์ ์ด ๋์ค๋๋ฐ ES6(ES2015)๋ฅผ ๋ฐฐ์ฐ๋ ์ด์ ?
- ์์ ์ ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
- ์์ ๋งํฌ ์ฐธ๊ณ
- ๋งํฌ ๋ด์ฉ์ ๋ฐ์ด๋ฒ์ด์์.
=> ๋์ ์ฝ๋๋ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค๐ง
๐ ์๊ฒฉ ๋ชจ๋(strict mode)
- ES5์์ strict mode ๊ธฐ๋ฅ์ด ์ถ๊ฐ
=> ES5์์ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๊ณ ๊ธฐ์กด ๊ธฐ๋ฅ ์ค ์ผ๋ถ๊ฐ ๋ณ๊ฒฝ
=> ๊ธฐ์กด ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ๊ฒผ๊ธฐ ๋๋ฌธ์ ํ์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
=> ๋ฐ๋ผ์ ๋ณ๊ฒฝ์ฌํญ ๋๋ถ๋ถ์ ES5์ ๊ธฐ๋ณธ ๋ชจ๋์์๋ ํ์ฑํ๋์ง ์๋๋ก ์ค๊ณ
"use strict";
use strict
๋ผ๋ ํน๋ณ ์ง์์๋ฅผ ์ฌ์ฉํด ์๊ฒฉ ๋ชจ๋๋ฅผ ํ์ฑํ ํ์ ๋ ๋ณ๊ฒฝ ์ฌํญ ํ์ฑํ
"use strict";
function test() {
x = 10;
}
test();
console.log(x);
๐ this ๊ฐ์ ์ฌ์ฉ์์ ์๋๋๋ก ์กฐ์ํ๊ธฐ
๐ ํด๋ก์
๐ ์์ฑ์ ํจ์
๐ JSON(Javascript Object Notation)
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ฅผ ํํํ๋ ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํํํ ๊ฒ
=> ๊ฐ์ด๋ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด์ฃผ๋ ๋ฒ์ฉ ํฌ๋งท
- ๋ค๋ฅธ ํ์์ ๋นํด ๊ฐ๋ณ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์ ํธํ์ฑ์ด ๋์ ๋๋ฆฌ ์ฌ์ฉ
JSON ๊ตฌ์กฐ
- JSON์ JavaScript ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ฌธ๋ฒ์ ๋ฐ๋ฅด๋ ๋ฌธ์์ด
- JSON ์์๋ JavaScript์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ธ ๋ฌธ์์ด, ์ซ์, ๋ฐฐ์ด, ๋ถ๋ฆฌ์ธ, ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํฌํจํ ์ ์๋ค.
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
}
]
}
JSON Syntax rules
- ๋ฐ์ดํฐ๋
ํค: ๊ฐ
์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ๋ฐ์ดํฐ๋ ์ผํ(
,
)๋ก ๊ตฌ๋ถ
- ์ค๊ดํธ(
{}
)๋ก ๊ฐ์ฒด๋ฅผ ๊ฐ์ผ๋ค.
- ๋๊ดํธ(
[]
)๋ก ๋ฐฐ์ด์ ๊ฐ์ผ๋ค.
JSON ๋ฉ์๋
-
JSON.stringify
: ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
=> ์ํ๋ ๊ฐ์ JSON์ผ๋ก ์ง๋ ฌํ
-
JSON.parse
: JSON์ ๊ฐ์ฒด๋ก ๋ฐ๊ฟ์ค๋ค.
=> JSON์ ๋ณธ๋ ๊ฐ์ผ๋ก ์ญ ์ง๋ ฌํ
-
JSON์ผ๋ก ์ธ์ฝ๋ฉ๋ ๊ฐ์ฒด์ ์ผ๋ฐ ๊ฐ์ฒด์ ์ฐจ์ด์
- ๋ฌธ์์ด์ ํฐ๋ฐ์ดํ๋ก ๊ฐ์ธ์ผ ํ๋ค.
=> JSON์์ ์์๋ฐ์ดํ, ๋ฐฑํฑ์ ์ฌ์ฉํ ์ ์๋ค.
- ๊ฐ์ฒด ํ๋กํผํฐ ์ด๋ฆ์ ํฐ๋ฐ์ดํ๋ก ๊ฐ์ธ์ผ ํ๋ค.
=> age: 30
์ด "age": 30
๋ก ๋ณํจ
let student = {
name: "John",
age: 30,
isAdmin: false,
courses: ["html", "css", "js"],
wife: null,
};
let json = JSON.stringify(student);
console.log(typeof json);
console.log(json);
console.log(JSON.stringify(1));
console.log(JSON.stringify("test"));
console.log(JSON.stringify(true));
console.log(JSON.stringify([1, 2, 3]));
console.log(JSON.stringify(student, null, 4));
๐ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก ์ฑ์ฅํ๊ธฐ ์คํ๋ฆฐํธ_3 with ์๋์ค๋
๋ฏธ๋๋ฅผ ๋ฐ๋ผ๋ณด๋ ์๊ฐ
์ฃผ๋์ด ๊ฐ๋ฐ์์๊ฒ ๋ณด๋ ๊ฒ์?
- ์ฑ์ฅ ๊ฐ๋ฅ์ฑ
- ๋ช ๋ฌ๊ฐ ๋ฌด์์ โ์โํด์๋์ง
=> ๋ฌด์ธ๊ฐ๋ฅผ โํโ ์ฌ๋์ ๋ง์์. ๋ฌด์ธ๊ฐ๋ฅผ ์ํ ๊ฒฝํ์ ํ ์ฌ๋์ ๋ง์ง ์๋ค.
๋ฏธ๋ ์์ ์ผ๋ก ๊ฐ์ ์ฐ๋ฆฌ๊ฐ ํ ๊ฒ
=> ๋ชจ์ ๋ฉด์ : ์
!
- 4๋ช
์ด ํ๋์ ์กฐ๋ก ๊ตฌ์ฑ
1๋ช
- ๋ฉด์ ๊ด
1๋ช
- ํผ๋ฉด์ ์(์ง์์)
2๋ช
- ๊ด์ฐฐ๊ธฐ๋ก์
- ํ ๋ฉด์ ๋น 10๋ถ์ฉ 2๋ฒ์ ๋ฉด์ ์งํ
์์ ์ง๋ฌธ(์ฐธ๊ณ ์ฉ)
- ์งง์ ์๊ฐ์์ ๋ชฐ์
ํด์ ์ฑ์ฅํ๋๊ฒ ์ฝ์ง ์์์ํ
๋ฐ ๊ทน๋ณตํ๋ ค๊ณ ํ๋ ๋ณธ์ธ๋ง์ ๊ฒฝํ์ด๋ ๋
ธํ์ฐ
- ๋ค์ ํ์ตํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ค๋ฅด๊ฒ ํ ๊ฒ์ธ์ง
- ํ์ตํ๋ฉด์ ๋ณธ์ธ๋ง์ ํ์ต ๋ฐฉ๋ฒ์ ์ฐพ์๊ฒ ์๋์ง
- ๊ฐ๋ฐ์๋ก์์ ๋ณธ์ธ์ ์ฅ์ ์ ๋ฌด์์ด๋ผ๊ณ ์๊ฐํ๋์ง
์ง๋ฌธ1) ๊ณต๋ถํ๋ฉด์ ๋ชจ๋ฅด๋ ๊ฐ๋
์ ์ฒ์ ์ ํ๊ฒ ๋์์ ๋ ๊ทธ ๊ฐ๋
์ ๋ํ๋ ์์ธ?
์ง๋ฌธ2) ์ต๊ทผ์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ ๊ณต๋ถ ๋ถ์ผ?
์ง๋ฌธ3) ์ต๊ทผ ๋จ์๊ฒ ์นญ์ฐฌ ๋ฐ์๋ ๋ถ๋ถ?
์ง๋ฌธ4) ๊ทธ ์ด์ผ๊ธฐ๋ฅผ ๋ฃ๊ณ ์ด๋ค ์๊ฐ์ด ๋ค์์๋์?
์ง๋ฌธ5) ์ค์ค๋ก ์นญ์ฐฌํด์ฃผ๊ณ ์ถ์ ๋ถ๋ถ์ด ์๋์?
์ง๋ฌธ6) ๋ค๋ฅธ ๋ถ์ผ๋ฅผ ์๋ํ๋ค๊ฐ ์คํจํ๋ ๊ฒฝํ์ด ์๋์?
์ง๋ฌธ_์กฐ์๋)
- ์ปค๋ฆฌ์ด ๋ชฉํ๊ฐ ์์ผ์ ๊ฐ์?
- ๊ฐ์ฅ ์ ํธํ๋ ํ์ต ๋ฐฉ์์๋ ์ด๋ค ๊ฒ ์๋์?
ใด ์ ํด๋น ๋ฐฉ์์ ๊ฐ์ฅ ์ ํธํ์๋์?
- ๋ฆฌํฉํ ๋ง์ ํด๋ณด์ ๊ฒฝํ์ด ์์ผ์ ๊ฐ์
ใด ์ด๋ค ์์ผ๋ก ๋ฆฌํฉํ ๋ง์ ํ์
จ๋์?
ใด ๊ทผ๋ฐ ๊ทธ๋ ๊ฒ ํ์๋ฉด ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ํ๊ธฐ๋ง ํ ๊ฑฐ ์๋๊ฐ์?
- ๋ณธ์ธ์๊ฒ ์ฃผ์ด์ง ์
๋ฌด๊ฐ ๋์ ํ ์๊ฐ ๋ด์ ๋๋ผ ์ ์๋ค๋ฉด ์ด๋ป๊ฒ ํ์ค๊ฑด๊ฐ์?
ใด ํํ์ ์์ ํ ์ ์๋ ์ํฉ์ด๋ผ๋ฉด ์ด๋ป๊ฒ ํ์ค๊ฑด๊ฐ์?
์ด๊ฑธ ๋ฌดํ์ ์ผ๋ก ์ง๋ฌธํ๊ณ ๊ผฌ๊ผฌ๋ฌด (๊ผฌ๋ฆฌ์ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌด๋ ์ง๋ฌธ) ํฉ๋๋ค
=> ๐ฅฒ
๋ชจ์๋ฉด์ ํ๊ณ
- ๋ฉ์ฌ๋ฅผ ์๋ฃํ ๋ฏธ๋ ์์ ์ ๋๋ ์ด๋ค ๋ชจ์ต์ด์๋์?
- ๋ฉด์ ๊ด๊ณผ ํผ๋ฉด์ ์๋ฅผ ๋ณด๋ฉด์ ์ด๋ค ์ธ์ฌ์ดํธ๋ฅผ ์ป์๋์?
- ๊ทธ ์ธ ์๊ฐ๋ ์ ๋ค์ ์์ ๋กญ๊ฒ ์์ฑํด์ฃผ์ธ์~!
- ์ ์ด์ง๋ฌธ ์ข์๋ค! ์ถ์๋๊ฒ ์๋ค๋ฉด ๊ฐ์ด ๊ณต์ ํด์ฃผ์ธ์~!
=> ๋ฉด์ ๊ด ์ญํ ์ ํ๋ฉด์ ๊ฐ๋ฐ์ ๊ด๋ จ ์ง๋ฌธ ์ด์ธ์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํด ์ง๋ฌธ์ ๋์ก๋๋ฐ ๋ฉด์ ์๊ฐ ํ์ฌ ์ด๋ค ๋ง์์ผ๋ก ๊ฐ๋ฐ์ ๋ํด ๋ํ๊ณ ์๋์ง ์ ์ ์์์ต๋๋ค.
ํ๊ณ ํ
ํ๋ฆฟ : KPT ํ
ํ๋ฆฟ
- Keep
- ํ์ฌ ๋ง์กฑํ๊ณ ์๋ ๋ถ๋ถ
- ๊ณ์ ์ด์ด๊ฐ์ผ๋ฉด ํ๋ ๋ถ๋ถ
- Problem
- ๋ถํธํ๊ฒ ๋๋ผ๋ ๋ถ๋ถ
- ๊ฐ์ ์ด ํ์ํ๋ค๊ณ ์๊ฐ๋๋ ๋ถ๋ถ
- Try
- Problem์ ๋ํ ํด๊ฒฐ์ฑ
- ๋คํ ํ๊ณ ๋ ํ๋ณ ๊ฐ๋ฅํ ๊ฒ
- ๋น์ฅ ์คํ๊ฐ๋ฅํ ๊ฒ
- Question
- ๋ด๊ฐ Keepํ๊ณ ์๋ ๊ฒ๊ณผ, Problem์ ์ฐจ์ด๋ฅผ ๋ง๋๋ ํค์๋ 2~3๊ฐ์ง๋ฅผ ๋ฝ๊ณ Problem์ด ์ด๋ป๊ฒ ํ๋ฉด Keep์ด ๋ ์ ์์์ง ์ด์ผ๊ธฐํด๋ณด์ธ์
ํ๊ณ ์ํ๊ณ & ํผ๋๋ฐฑ
- ๋ชจ์๋ฉด์ , KPT๋ฅผ ํตํด ๋ฏธ๋์ ํ์ฌ ๋ฏธ๋๋ฅผ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ๋ณด์๋๋ฐ์. ์ค๋ ํ๊ณ ๋ฅผ ํตํด์ ์ด๋ค๊ฑธ ๋๊ผ๋์?
- ํ๊ณ ์คํ๋ฆฐํธ ์๊ฐ์ ๋ฐ๋ผ๋๊ฒ ์๋ค๋ฉด ํธํ๊ฒ ํผ๋๋ฐฑ์ ์์ฑํด์ฃผ์ธ์
๋ง๋ฌด๋ฆฌ
- ์ค๋๋ฐ๋ผ ์คํ๋ฆฐํธ ์ฐธ์ฌ์จ์ด ๋ง์ด ๋ฎ์์ ์๋ก์ด ๋ถ๋ค๊ณผ ํ์ ํ๊ฒ๋์๋ค.
=> ์๋ก์ด ๋ถ๋ค๊ณผ ํ๋๋ ๋ค์ ์ฒ์ ์คํ๋ฆฐํธํ ๊ฒ์ฒ๋ผ ์ด์ํ๋ค์ ํํํ
์ฌ๊ธฐ๊ฐ ์๋ฌธ๋ ๋ณด๋ฆฌ๋ ๋ฒจ๋ก๊ทผ๊ฐ์?