๋ด์ผ๋ฐฐ์์บ ํ 4๊ธฐ ์คํ๋ฅดํ์ฝ๋ฉ React B๋ฐ
๐ ์ค๋์ ๊ณต๋ถ
1. Javascript ์ด๋ก
- ์ด์ ๋ค์๋ ์ ํฝ JS ์ค๊ธ๊ฐ์
- hoisting: ๋ณ์ ์ ์ธ์ ์ต์์์ ์ ์ธ๋ ๊ฒ ์ฒ๋ผ ํ๋
- TDZ(Temporal Dead Zone):
let
const
๋ TDZ์ ์ํฅ์ ๋ฐ์ ํ ๋น ์ ์๋ ์ฌ์ฉํ ์ ์๋ค.
-> ํจ์ ์์์ 'TDZ=console.log(age)
' ๋ค์ let
์ ๋ค์ ์ ์ธํ ์ ์์
let
const
: block-scoped
- ํจ์, if๋ฌธ ๋ธ๋ก ์์์ ์ ์ธ๋ ํจ์๋ ๋ด๋ถ์์๋ง ์ ํจ = ์ง์ญ ๋ณ์
var
: function-scoped
- ํจ์ ๋ด๋ถ์์ ์ ์ธ๋ ๋ณ์๋ง ์ง์ญ ๋ณ์
- ์์ฑ์ ํจ์
-> function User(name)
๋๋ฌธ์๋ก ํจ์๋ฅผ ๋ง๋ฆ
-> new
์ฐ์ฐ์๋ก ํจ์๋ฅผ ํธ์ถ
- Object Method
-> Object.assign()
๊ฐ์ฒด ๋ณต์
- (1, 2, 3)์ด๋ฉด 1์ 2, 3์ด ํฉ์ณ์ง
-> Object.keys()
ํค ๋ฐฐ์ด ๋ฐํ
-> Object.values()
๊ฐ ๋ฐฐ์ด ๋ฐํ
-> Object.entries()
ํค/๊ฐ ๋ฐฐ์ด ๋ฐํ
-> Object.fromEntries()
ํค/๊ฐ ๋ฐฐ์ด์ ๊ฐ์ฒด๋ก
- Symbol
-> ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ค์ด ๋์ ์ฝ๋์ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉด์ method ์ถ๊ฐ ๊ฐ๋ฅ
-> console.log(`His ${key} is ${user[key]}.`)
value๋ ${value}๋ก ํ๋ฉด undefiend ๋์ด
2. Programmers
- Lv0 ๋จ๊ณ
- ๊ฐ๋๊ธฐ ๋ฌธ์ ๋ค์ ํ๊ธฐ
-> else if
์ฌ์ฉํด์ ํ์๋ค
<๋ค๋ฅธ ํ์ด>
-> ? :
์ธ ๋ ์ข ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฐ๋ค! ๋๋ if๋ฌธ ์ฐ๋ ๊ฒ์ฒ๋ผ ๊ดํธ๋ ๋ง ์จ์ ์ค๋ฅ๊ฐ ๋ฌ๋ ๊ฒ ๊ฐ์!
- ์ง์์ ํฉ
-> for, if, += ์ด์ฉํด์ ํ์์
<๋ค๋ฅธ ํ์ด>
-> ํฉ์ ๋ด์ ๋ณ์ ์ค์ ํ๊ธฐ
-> ์ง์๋ฅผ ๊ตฌํ๋ ๊ฑฐ๋ for๋ฌธ์์ i+=2
์ค์ ํ๋ฉด
if(i%2-===0)
์ธ ํ์ ์์
- ์๊ผฌ์น
-> ๋ฐฐ๊ณ ํ์ ๋๋ ๋๋ฐ ๊ธ๋ฐฉ ์ ํ๋ ธ์
-> ์๋ฃ์ ๊ฐ์์์ ์๋น์ค ๊ฐ์๋ฅผ ๋นผ๊ณ ๊ณ์ฐํจ
3. SP_์น ํผ๋ธ๋ฆฌ์ฑ ๊ฐ์
- 2์ฃผ์ฐจ
<lable>
์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ ๋๋ฅด์ง ์์๋ ํด๋น ๋ถ๋ถ์ ๋๋ฅด๋ฉด ์ฒดํฌ๊ฐ ๋จ!
preventDefault()
submitํ ๋ ์๋ก๊ณ ์นจ์ ๋ง์์ค
- ์์
!!
๋ถ์ฌ์ฃผ๋ฉด ๊ฐ์ด Boolean์ผ๋ก ๋ณํ
- ๋ฉ์ธ ๋ฐ์ค ์์ ์์๋ค ์์น
-> ๋ฉ์ธ ๋ฐ์ค์ position์ absolute
/ relative
๋ก ์ ํด์ค๋ค.
-> ํ์ ์์์ positon๋ ์ ํ ๋ค์(๋ณดํต absolute
) top, right ๋ฑ์ ๊ฐ์ ์ค์ ์์น๋ฅผ ์ ํด์ค๋ค.
ex. top:0, bottom:0
๋ฉ์ธ ๋ฐ์ค ์์์ ๋์ด๋ฅผ 100%๋ก ์ฐจ์งํ๋ค.
- ์์ด์ฝ์ด ๋ณด์ด์ง ์์์ ํ์ฌ ๋ค์ด๋ฒ ํ์ด์ง์ ์์ด์ฝ ์ด๋ฏธ์ง ์ฃผ์๋ก ๋ณ๊ฒฝํ๊ณ background-size, ๊ฐ ์์ด์ฝ background-position๋ฅผ ๋ณ๊ฒฝํ๋ ํด๊ฒฐ!
display: table
์์ ๋ด์ฉ์ table-cell
๋ก ํด์ฃผ๋ฉด ๋ด๋ถ ์์๊ฐ ๊ท ๋ฑํ๊ฒ ์ ๋ ฌ ๋๋ค.
- ์ต๊ทผ ๊ฒ์์ด ์ฐฝ ๋ง๋ค๊ธฐ ์์ ๋ค์ ํด ๋ณด๊ธฐ!!!
4. Button & Input button
- form์ ์ ์ถ ๋ฒํผ์ ์ด๋ฏธ์ง ๋ฃ๊ธฐ
- Button -> img ํ๊ทธ๋ฅผ ์์ ํ๊ทธ๋ก ์ฌ์ฉ
- Input -> css์ background-image ์ฌ์ฉ
โญ๊ฒ์์์ง ์ต์ ํ๋ฅผ ์ํด ์ด๋ฏธ์ง๋ img ํ๊ทธ ์ฌ์ฉ
- Button
- ํ์ ์์๋ฅผ ์ถ๊ฐํ ์ ์์ด ๋์์ธ ์์ ๋๊ฐ ๋๋ค.
-><button> ์ด๊ณณ <span>ํด๋ฆญ</span> ํ๊ธฐ </button>
-> span๋ถ๋ถ๋ง css๋ก ์ ๋ณ๊ฒฝ
โ
์ฆ๊ฐ์ฐ์ฐ์ ์ดํดํ๊ธฐ
- ++์ ์์น์ ๋ฐ๋ฅธ ๊ฐ ๋์ถ
let a = 10;
let b = a++ + 5;
let c = b--;
let i = 1;
let j = i++ + 1;
let k = ++i + 1;
- ๊ธฐ์ด ๊ฐ์ ๋ค์ ๋ '๊ทธ๋ ๊ตฌ๋'ํ๊ณ ๋์ด๊ฐ๋๋ฐ ์ค๋ ํ์๋ถ์ด ์ด๋ ๊ฒ ๋ฌธ์ ๋ฅผ ๋ด์ฃผ์๋๊น ๋ด๊ฐ ์ดํด๋ฅผ ์ถฉ๋ถํ ๋ชป ํ๋ค๋ ๊ฑธ ๊นจ๋ฌ์์!
- ์ ๋ ๊ฒ ์์ ๋ฌธ์ ๋ฅผ ํ๊ณ ๋๋ ์ดํด๊ฐ ํ์คํ ๋๋ค!
- ์์ผ๋ก ์ ๋ '๊ธ์ฟ ๋ใ
'๋ก ๋์ด๊ฐ์ง ๋ง๊ณ ๋ฌด์กฐ๊ฑด ์์๋ฌธ์ ๊น์ง ํ๊ณ ์ดํดํ๊ณ ๋์ด๊ฐ๊ธฐ!!!
ํ๋ก๊ทธ๋๋จธ์ค ํธ๋ ๋ฐฉ๋ฒ
- ๊ฐ๋จํ๊ฒ ํธ๋ ๋ฐฉ๋ฒ ๋จผ์ ์ฐพ์ง ๋ง ๊ฒ
- ์ ํผ ๋ฌธ์ ๋ฅผ ์ฌ๋ฟ์ด์ ํจ๊ป ํ์ด๋ณด๋ฉฐ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ
- ๊ฐ๋ฅํ ์์ธํ๊ฒ ์ฝ๋๋ฅผ ์ง๋ฉด์ ์๋ ์๋ฆฌ ์ดํดํ๊ธฐ
- reduce ๋ฑ์ ํจ์๋ฅผ ์ด์ฉํด ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ด๊ฐ for, while๋ฌธ ๋ฑ์ ํ์ฉํด ์ฝ๋์ ์๋ ์๋ฆฌ๋ฅผ ์ถฉ๋ถํ ์ดํดํ ๋ค์ ๋ฐฐ์๋ ๋๋ค!!
๐ฉ
'์?' ์๊ฐํ๊ธฐ
- miniํ์๋ค์ด button, a, input button์ ์ฐจ์ด์ ๋ํด ์ ๋ฆฌ๋ ๊ธ์ ๊ณต์ ํด์คฌ๋ค.
- mini projectํ ๋ ์ด ๋ถ๋ถ์ ๋ํ ๊ถ๊ธ์ฆ์ด ์๊ฒผ์๋๋ฐ ๋ฐ๋ก ์ ๋ฆฌํ ์ฌ์ ๊ฐ ์์ด์ ์ง๋์ณค๋ค.
- ์์นจ์ JS ์ด๋ก ๊ณต๋ถ ํ๋ค๊ฐ ๊ณต์ ๋ ๊ธ์ ๋ดค๋๋ฐ ์๊ฐ ์ด์ ์ ํ๋ ๊ฑธ ๋์๋ณด๋ฉฐ "์?"๋ฅผ ์๊ฐํ์ง ์๊ณ ๊ทธ์ ์๋ก์ด ๊ฑธ ๋จธ๋ฆฟ ์์ ์ง์ด ๋ฃ๋ ๊ฒ์๋ง ์ง์คํ๋ ๊ฒ ์๋๊ฐ ์ถ์๋ค.
- ๋ค์ด์ผ ํ๋ ๊ฐ์๊ฐ ์์ผ๋ฉด "์ผ๋จ ๋ค ๋ฃ๊ณ ๋ณด์" ํ๋ ์ต๊ด์ ๋ฒ๋ ค์ผ ํ๋ค. 5๋ถ์ง๋ฆฌ๋ฅผ 50๋ถ๊ฐ ๋ณด๋๋ผ๋ ๊ทธ ์๊ฐ ๋์ ๊ณ์ ์ถฉ๋ถํ ์ดํดํ๊ณ "์ ์ด๋ ๊ฒ ํ ๊ฑธ๊น, ์ด๋ ๊ฒ ํ๋ฉด ์ด๋จ๊น?"๋ผ๋ ์ง๋ฌธ์ ๊ณ์ ๋์ง๊ธฐ
- ์์ฆ ๋ณต์ต์ด ๋ง์ด ๋ถ์กฑํ ๊ฒ ๊ฐ๋ค.
- ํด์ผ ํ ๊ฒ ๋ง์ ๊ฒ๋ ๋ง์ง๋ง ๋ด๊ฐ TIL์ ์ ๋ฆฌํ ๋ถ๋ถ์ ๋ณด๋ฉฐ ๋ณต์ตํ๋ ์๊ฐ์ ๊ผญ ๊ฐ์ ธ์ผ ํ๋ค.
- '๋ด ๊ฒ'์ผ๋ก ๋ง๋ค๊ธฐ๋ฅผ ์ ํ๋ฉด ์๋ฌด๊ฒ๋ ๋จ์ง ์๋๋ค.