๋ด์ผ๋ฐฐ์์บ ํ 4๊ธฐ ์คํ๋ฅดํ์ฝ๋ฉ React B๋ฐ
๐ ์ค๋์ ๊ณต๋ถ
- ๋ฐ์ ๋ด์ฉ ์ ๋ฆฌ - ๋งํฌ..?
1. JavaScript ์ฌํ_1
- ์ฒดํฌ๋ฆฌ์คํธ ๋
ธ์
๋์๋ณด๋ ์ ๋ฆฌ(์ฒดํฌ ๋ฆฌ์คํธ ๋ฒจ๋ก๊ทธ ๋ง๋ค๊ธฐ)
- ํ์ต ๋ชฉํ
๋ฐ์ดํฐ ํ์
1) ๋ฐ์ดํฐ ํ์
์ ์ข
๋ฅ
2) ๋ฐ์ดํฐ ํ ๋น
3) ๊ธฐ๋ณธํ / ์ฐธ์กฐํ ๋ฐ์ดํฐ 1, 2
(1)
-
๋ณ์ / ์์ - ๋ณ์ ์์ญ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ผ๋ก ๋๋๋ค.
-
๋ถ๋ณ / ๊ฐ๋ณ - ๋ฐ์ดํฐ ์์ญ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ
-
๊ธฐ๋ณธํ = ๋ถ๋ณ / ์ฐธ์กฐํ = ๊ฐ๋ณ
-
๋ถ๋ณ๊ฐ๊ณผ ๋ถ๋ณ์ฑ(Garbage Collecting)
- ๊ฐ์ผ ์ฌ์ ์ธํ๋ฉด ๋ฐ์ดํฐ์ ๊ฐ์ด ๋ฐ๋๋ ๊ฒ ์๋๋ผ ์๋ก์ด ์ฃผ์์ ์ฌ์ ์ธ์ธํ ๊ฐ์ด ๋ค์ด๊ฐ๊ณ ์ด์ ๋ฐ์ดํฐ๋ Garbage Collecting์ผ๋ก ์ธํด ์ฌ๋ผ์ง๊ณ ๋น์นธ์ด ๋๋ค.
- ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ ๋ฐ์ดํฐ ๋ณ์ ํ ๋น ๊ณผ์ ์ฐจ์ด์
= ๊ฐ์ฒด์ ๋ณ์(ํ๋กํผํฐ) ์์ญ์ ๋ณ๋ ์กด์ฌ ์ฌ๋ถ
โ
- ์ฐธ์กฐํ ๋ณ์ ํ ๋น ๊ณผ์
- ๋ณ์๋ง๋ค ํด๋น ๊ฐ์ฒด ๋ณ์ ์์ญ์ด ์กด์ฌํ๋์ง?
ex. obj1์ ๊ฐ์ฒด ๋ณ์ ์์ญ์ 8104๋ถํฐ ์์?
obj2์ ๊ฐ์ฒด ๋ณ์ ์์ญ์ 9104๋ถํฐ ์์?
โ ๋ณ์๋ง๋ค ๊ฐ์ฒด ๋ณ์ ์์ญ์ด ์๊ธฐ๋ ๊ฒ์ด ๋ง๋ค!!
โ ๋ฐ์ดํฐ ์์ญ์ ํ๋!!!
- ๋ฐฐ์ด๋ ๊ฐ์ฒด! key๊ฐ ์๋ต๋ ๊ฒ
โ
- ๋ณ์ obj์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์?
- ์ฃผ์ = 2byte(์์) / ์ซ์ = 8byte
- ๋ฐ์ดํฐ๋ 3๊ฐ๋๊น 8byte*3 = 24byte
- ์ฃผ์๋ 5001, 7103, 7104, 8104, 8105, 8106, 5002, 5003, 5002, 5004, 5005 -> 2byte*11 = 22byte
2. ์ค๋ณต๋๋ ์ฃผ์ ์ ๊ฑฐ 5001, 7103, 7104, 8104, 8105, 8106, 5002, 5003, 5004, 5005 -> 2byte*10 = 20byte
- ์ฃผ์๋ 5001(obj) -> 2byte
โ
- 2๋ฒ์ผ๋ก ์ดํดํ๋ ๊ฒ ๋ง์ง๋ง ๋ฐ์ดํฐ ์์ญ์ ์ฃผ์๊ฐ์ด ๋ค์ด๊ฐ ๋ถ๋ถ๋ = ๋ฐ์ดํฐ..!
โญ ์ค์ํ ๊ฒ์ ํด๋น ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์จ๋ค๋ ๊ฒ!
(2)
4. ๋ถ๋ณ๊ฐ์ฒด
5. undefined / null
- undefined(JS ์์ง์์ ์๋ ๋ถ์ฌ)
- ๋ณ์์ ๊ฐ์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ
- ๋ฐ์ดํฐ ์์ญ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ง์ ํ์ง ์์ ์๋ณ์์ ์ ๊ทผํ ๋
- object์ ํ์์์๋ก ์ ๊ทผํ ๋(
.
[]
) ํด๋น ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ
- return๋ฌธ์ด ์๊ฑฐ๋ ํธ์ถ๋์ง ์๋ ํจ์์ ์คํ ๊ฒฐ๊ณผ
- null
- '์๋ค'๋ฅผ ๋ช
์์ ์ผ๋ก ํํํ ๋ ์ฌ์ฉ
typeof null
- typeof ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ ๊ผญ ์ฒดํฌ
-> if(typeof var1 === 'object' && var1 != null
) null
(๊ฐ์ฒด)๊ฐ ๋ค์ด์ค๋ ๊ฒ ๋ฐฉ์ง
2. JavaScript ๊ธฐ๋ณธ ์๋ฃ(notion)_1
-
REFL ์ฌ์ฉ
- vscode Terminal์์
node
์น๊ธฐ
-
๋ฌธ์ ๋ณ์ ์ ์ธ ํ ๋ฐฑํฑ ์์ $๋ก ํด๋น ๊ฐ์ ๊ฐ์ ธ์ ํํ ๊ฐ๋ฅ
${aString} ${bString}
'Hi Yunny'
- ์ซ์์ ํฉ -
${aNum + bNum}
-
๊ฐ์ฒด ๊ตฌ์กฐ ๋ถํด ํ ๋น
- ES6์์ ๋์
. Object, List(๋ฐฐ์ดArray)๋ฅผ ๋ณ์๋ก ๋ถํด ๊ฐ๋ฅ
- ์ฃผ์: ๋ณ์๋ช
๊ณผ ๊ฐ์ฒด์ ํ๋กํผํฐ(key & value) ์ด๋ฆ ์ผ์น!
-
๋ฐฐ์ด์ index = value์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์๋ณ์
-
๋ฐฐ์ด ๊ตฌ์กฐ ๋ถํด ํ ๋น
- ๋ณ์ ์ด๋ฆ ์ ์ธ ์์ , ๋ฐฐ์ด์ ์์๋๋ก ํ ๋น
-
NaN(Not a Number)
- ์ซ์๊ฐ ์๋ ๊ฐ์ ์ซ์๋ก ๋ณํํ๋ ๊ฒฝ์ฐ NaNd์ผ๋ก ๋ฐํ
- ํ๋ณ -
Number.isNaN()
/ isNaN()
-> ํ์ฌ๊ฐ์ด NaN์ด์ด์ผ๋ง true
๋ฅผ ๋ฐํ
3. ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ ๊น๋ ค๊ณ ํ ๋ฌธ์ ํ์๋ค.
- ๋๋ ์์ ๋ฌธ์ ๋ ์ ๋ง๋ ๊ฒ ๊ฐ๋ค.
- ์ ๋ฒ์๋ ๋ฐฐ๊ณ ํ์ '์๊ผฌ์น' ๋ฌธ์ ๋ฅผ ํ์๋๋ฐ ๊ธ๋ฐฉ ํ๋ ธ๊ณ ์ค๋์ '์๋ฉ๋ฆฌ์นด๋
ธ' ๋ฌธ์ ํ์๋๋ฐ ๊ธ๋ฐฉ ํ๋ ธ๋คใ
ใ
ใ
๐ฉ
๋ด ์๊ฐ
- JS ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ๋ฃ๋ค ์ค์ฒฉ ๊ฐ์ฒด ํ ๋น ๋ถ๋ถ์ ๋ํด ์ ํํ ์ดํดํ๊ณ ์ถ์ด ์์ฅ๋ํํ
์ง๋ฌธํ๋ค.
- ์ค๋ช
์ ๋ฃ๊ณ ๋ ํ ์์ฅ๋์ด ๋ณด์ถฉ ์ค๋ช
์ ๋ ํด์ฃผ์๊ฒ ๋ค๋ฉฐ ๋ค๋ฅธ ์๊ฐ์๋ค๋ ๋ถ๋ฌ ์ค๋ช
์ ํด์ฃผ์
จ๋ค.
- ๊ฐ์์ ์ค๋ฅ๊ฐ ์๋ ๋ถ๋ถ์ด์๊ณ ๋ค์ ์ค๋ช
ํด์ฃผ์ ๋๋ถ์ ์ดํด๋ฅผ ์ ๋๋ก ํ ์ ์์๋ค.
- ๋ด๊ฐ ํ ์ง๋ฌธ์ผ๋ก ์ธํด ์ค๋ฅ๊ฐ ์ ์ ๋๊ณ ๋๊ธฐ๋ค๊ณผ ๋ ์ ์ดํดํ ์ ์๋ ์๊ฐ์ ๊ฐ์ง ์ ์์ด์ ๊ธฐ๋ถ์ด ์ข์๋ค.
- ๋ด๊ฐ ์์ ์ฌ๋ฆฐ ์์๊ณตโญ
- ์์์ํจ
- ์ผ์์ผ์ ๋ง์ฐฐ์ด ์์๋ ํ์๊ณผ ์ค๋ ์์์ํ๊ฒ ์๊ธฐํ๋ค.
- ๋ด์ผ๋ถํฐ ๋ค๋ฅธ ํ์ ๋ง๋๋๋ฐ ๊ทธ๋ฅ ์๊ธฐํ์ง ์๊ณ ๋์ด๊ฐ๊น ํ๋ค๊ฐ ํํผํ๊ธฐ ์ซ์ด์ ๋ฐ๋ก ์ ญ ์นดํใ
ใ
๊ฐ์ ์๊ธฐํ์๊ณ ํ๋ค.
- ์์ธํ ์๊ธฐ๋ฅผ ๋ค์ผ๋ ์๋๋ฐฉ์ ๋ ์ดํดํ๊ฒ ๋๊ณ ๋๊น์ง ํ๋ก์ ํธ๋ฅผ ๊ฐ์ด ํด๋ด์ค ๊ฒ์ ๋ํด ๊ณ ๋ง๋ค๊ณ ํ๋ค.
- ํ์์ ๋ง์ ๋ฃ๊ณ ๋๋ ์ค์ค๋ก์ ๋ํ ํผ๋๋ฐฑ์ ํ๋ฉฐ ์ผ๊ธฐ์ ์ ์๋ค. ๋๋ ๋ ์ํ ์ ์๋ ๋ถ๋ถ์ด ์์ง ์์๊น ์ ๊น ์๊ฐํ๋ค ๋ง์๋๋ฐ ์ด๋ฒ์ ๊ธฐ๋ก์ผ๋ก ๋จ๊ธฐ๊ณ ๋ค์ ์๊ธฐ๋ฉด์ ๊ฐ์ ์ํฉ์์ ๋ ๋์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์ถ๋ค.