์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ JS ์ ๊ฐ ๊ตฌ๋ฌธ ํ์ฉ๋ฒ 3๊ฐ์ง
์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ JS ์ ๊ฐ ๊ตฌ๋ฌธ ํ์ฉ๋ฒ 3๊ฐ์ง ๊ด๋ จ
IT ์ง์์ด ๋ฌด์๋ณด๋ค ์ค์ํด์ง ์์ฆ, ์ฌ๋ฌ๋ถ์ ์ด๋ป๊ฒ ๊ณต๋ถํ๊ณ ์๋์? ๊ฐ์ฅ ๋จผ์ ๋๊ธธ์ด ๊ฐ๋ ๊ฑด ๋ค์ํ IT ๊ฐ์ ์์์ผ ๊ฒ๋๋ค. ๊ฐ์๋ฅผ ์ ๊ณตํ๋ ๊ต์ก ๊ธฐ์ ๋ค๊ณผ ํจ๊ป, ์์ฆIT์์ โIT ๊ฐ์ ์๋ฆฌ์ฆโ๋ฅผ ์ค๋นํ์ต๋๋ค. ์์ ํ ๊ต์ก ์์์ ํ ์คํธ๋ก ์ฝ๊ณ ํ์ํ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ๊ฐ์ธ์.
์ด๋ฒ ๊ฐ์๋ โWeb ๊ฐ๋ฐ์ ๋ถํธ์บ ํ 2024: JavaScript์ ์ต์ ๊ธฐ๋ฅ๋คโ์ ๋๋ค. ๊ฐ๋ฐ์์ด์ ๋ถํธ์บ ํ ๊ฐ์ฌ๋ก ํ๋ํ๋ฉฐ ์ ์ธ๊ณ 175๋ง ๋ช ์ด์ ์๊ฐ์์ ๋ฐฐ์ถํ ์ฝํธ ์คํธ(Colt Steele) ๋์ด ๊ฐ์๋ฅผ ๋งก์์ต๋๋ค. ์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํด ์ฝ๋ ์์ฑ์ ๋์์ด ๋๋ JavaScript ๊ธฐ๋ฅ์ ์๊ฐํฉ๋๋ค. ์์ด๋ก ์งํํ ๊ฐ์์ ๋ฒ์ญ๋ณธ์ ๊ธฐ์ด๋ก ๊ธ์ ๊ตฌ์ฑํ๊ณ , ์ ์ฒด ์์์ ์ ๋ฐ๋ฏธ์์ ํ์ธํ ์ ์์ต๋๋ค.
์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ JS ์๋ฆฌ์ฆ
์๋ ํ์ธ์, ๊ฐ๋ฅด์น๋ ์ผ์ ์ง์ฌ์ผ๋ก ์ฌ๋ํ๋ ๊ฐ๋ฐ์ ์ฝํธ ์คํธ์ ๋๋ค. ์ด๋ฒ ๊ฐ์์์๋ JavaScript์ ์ ๊ฐ ๊ตฌ๋ฌธ(Spread syntax)์ ์ดํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ํธํ๊ฒ ์ฝ๋๋ฅผ ์ฐ๊ณ ๊ด๋ฆฌํ๋๋ก ํฐ ๋์์ ์ค ๊ฒ๋๋ค.
ํจ์ ํธ์ถ ์์ ์ ๊ฐ ๊ตฌ๋ฌธ
์ฐ์ ์ ๊ฐ ๊ตฌ๋ฌธ์ด๋ ๋ฌด์์ธ์ง๋ถํฐ ๋ฐฐ์ฐ๊ฒ ์ต๋๋ค. ์ ๊ฐ ์ข์ํ๋ ๊ธฐ๋ฅ์ด์ฃ .
์ฌ์ค ์ด ๋ด์ฉ์ ํ ๋ฒ์ ์ค๋ช ํ ์๋ ์์ต๋๋ค. ์ ๊ฐ๋ ๋ค์ํ ์ํฉ์์ ์ฐ์ ๋๋ค. JavaScript์์ ๋ง์น ๋ค์ฉ๋๋ก ์ฐ์ด๋ ์ค์์ค ๊ตฐ์ฉ ์นผ๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
์ ๊ฐ(Spread)๋ ๋ฌด์์ผ๊น?
๊ณต์์ ์ธ ์ ์๋ ์๋์ง๋ง MDN์์ ๋ฐ์ทํ ์ ๊ฐ์ ์ ์์ ๋๋ค.
Info
๋ฐฐ์ด๊ณผ ๊ฐ์ด ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์ ๊ฐ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ ํ์ฅํฉ๋๋ค. ํจ์๋ก ํธ์ถํ ๊ฒฝ์ฐ์ 0๊ฐ ์ด์์ ์ธ์๋ก, ๋ฐฐ์ด ๋ฆฌํฐ๋ด์์๋ ์์๋ก ํ์ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ๊ฒฝ์ฐ, ๊ฐ์ฒด ํํ์์ 0๊ฐ ์ด์ ํค-๊ฐ ์์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ์ด ๋ชจ๋ ์ดํดํ๋ค๋ฉด ์ ์ค๋ช ์ ๋ ํ์ ์๊ฒ ์ฃ . ์ด ์ค๋ช ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์๋ ํ์ ์์ ๊ฑฐ๊ณ ์. ๊ทธ๋ฌ๋ ์๋๋ผ๋ฉด, ์์ง ์ตํ์ผ ํ ๋ด์ฉ์ด ๋ง์ต๋๋ค.
์ด ์ ์์์ ์ฌ๋ฌ๋ถ์ด ์ฃผ๋ชฉํด์ผ ํ ํต์ฌ ๋จ์ด๋ ๋ฐ๋ก โํ์ฅ(expanded)โ์ ๋๋ค. ์ค์ํ ๋จ์ด์ ๋๋ค. ์ ๊ฐ์ ์ญํ ์ด์ฃ . ์ฆ, ์ ๊ฐ๋ฅผ ์ฐ๋ฉด ์ด๋ค ๊ฒ์ ๊ฐ์ ธ์์ ํผ์น๋ค๋ ๊ฒ๋๋ค. ๋ฐ๋ณตํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ํผ์น๋ฉด ๋ณํ๊ฐ ๋ํ๋ฉ๋๋ค. ๊ทธ๋ผ ํ๋ฒ ํด ๋ณด๊ฒ ์ต๋๋ค.
์ซ์ ๋ฐฐ์ด ์ ๊ฐํ๊ธฐ
์ฝ์์ ์ด๊ณ ํจ์๋ฅผ ์ฐ๊ฒ ์ต๋๋ค. Math.max
๋ฅผ ์ฐ๊ณ ์ธ์๋ฅผ ํ๋์ฉ ๋ฃ์ต๋๋ค. ๊ณง ์ต๋๊ฐ์ ์ฐ๋ฆฌ์๊ฒ ์๋ ค ์ฃผ์ฃ . ์ธ์๋ฅผ ์ด ๊ฐ์์ ์ค์ญ ๊ฐ๊น์ง, ํน์ ๋ฐฑ ๊ฐ๊น์ง ๋ฃ์ ์ ์์ต๋๋ค. ๊ทธ๋๋ ์ต๋๊ฐ์ ์ฐพ์ ๊ฒ๋๋ค.
๋ฐ๋ฉด Math.min
์ ์ต์๊ฐ์ ์ฐ๋ฆฌ์๊ฒ ์ค๋๋ค. ๋ง์ฐฌ๊ฐ์ง ์ธ์๋ ์ํ๋ ๋งํผ ๋ฃ์ ์ ์์ต๋๋ค.
๋ด์ฅ ๋ฉ์๋์ ์๋ ๋ค๋ฅธ ํจ์๋ค๊ณผ ๋ค๋ฆ ๋๋ค. ๊ทธ๋ค๊ณผ์ ์ฐจ์ด๋ ๋ถ๋ช ํฉ๋๋ค. ๋ค๋ฅธ ํจ์๋ ์ธ์๋ฅผ ํ ๊ฐ ํน์ ๋ ๊ฐ๋ง ์ ํํด ๋ฃ์ผ๋๊น์.
์ด์ ๋ฐฐ์ด์ ๋ง๋ค๊ฒ ์ต๋๋ค. ๋ฐฐ์ด์ ์ซ์๋ฅผ ๋ง์ด ๋ฃ์ด ๋ณด์ฃ . Math.max
์ ์ธ์๋ก ๋ฃ์๋ ์ซ์๋ฅผ ๋ชจ๋ ๋ฃ๊ฒ ์ต๋๋ค. nums
๋ผ๋ ๋ณ์์ ์ ์ฅํด ๋ณผ๊ฒ์.
์ด์ ์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค. Math.max
๋ฅผ ์ด์ฉํด์์. ๊ทธ๋ฐ๋ฐ ์ด๋ฐ, Math.max
์ nums
๋ฅผ ๋ฃ์๋๋ ์ซ์๊ฐ ์๋๋ผ๊ณ ๋์ต๋๋ค. (NaN)
์ด๋ป๊ฒ ์ถ๋ ฅํด์ผ ํ ์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ซ์ ์ ์ฒด๊ฐ ์๋ ๋ฐฐ์ด์ด ๊ทธ๋๋ก ํต๊ณผ๋๋๊น์. ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ธ์๋ฅผ ๋ฐ๋ก ๋ฃ์ด์ผ ํฉ๋๋ค. ์ซ์ ํ๋ํ๋ ๋ฃ์ด์ผ ํ์ฃ .
๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ ๊ฐ๋ฅผ ์ฌ์ฉํ ๊ฒ๋๋ค. ์ ์ธ ๊ฐ(...)๊ฐ ํ์ํ์ฃ . ๊ทธ๋ฌ๋ฉด ์ด ๋ฐฐ์ด์ด ๊ฐ๊ฐ ์ธ์๋ก ํผ์ณ์ง๋๋ค. ๋ฌด์จ ๋ป์ผ๊น์? ์ง์ ๋ณด๊ฒ ์ต๋๋ค. Math.max
์ nums
๋ง ์ฐ๋ ๋์ ์ ์ ์ธ ๊ฐ๋ฅผ nums
์์ ๋ฃ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด Math.max
ํจ์์ ๋๊ฐ์ ๊ฐ์ด ๋์ต๋๋ค. ๋ฐฐ์ด์ด ํผ์ณ์ง๊ณ ์ธ์๊ฐ ๋ฐ๋ก ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ๊ฐ ๊ตฌ๋ฌธ์ด ๋ฐฐ์ด ๊ดํธ๋ฅผ ์ง์ ์ ๋ฟ nums
๋ณ์์ ๊ฐ์ด ๋ฐ๋ ๊ฑด ์๋ฌด๊ฒ๋ ์์ต๋๋ค. Math.max
์ ...nums
๊ฐ ํต๊ณผํ๋ฉฐ ๋ฐฐ์ด์ด ํผ์ณ์ง ๊ฒ์
๋๋ค.
๋ฌธ์ ๋ฐฐ์ด ์ ๊ฐํ๊ธฐ
์๋ฅผ ํ๋ ๋ ๋ง๋ค์ด ๋ณด์ฃ .
console.log
์๋ ์ํ๋ ๋๋ก ์ธ์๋ฅผ ๋ฃ์ ์ ์์ต๋๋ค. ์ธ์๋ฅผ ์ผํ๋ก ๋ถ๋ฆฌํด์ ๋ฃ๊ฒ ์ต๋๋ค. ์ผํ๊ฐ ์ค์ํ ์ญํ ์ ํ์ง ์์ง๋ง, ์ผํ๋ฅผ ๋ฃ์ผ๋ฉด ์ธ์ ์ฌ์ด์ ๊ณต๋ฐฑ์ ๋ง๋ค์ด์ ์ถ๋ ฅํ์ฃ .
console.log
์ nums
๋ฅผ ๋ฃ์ผ๋ฉด ์ด๋จ๊น์?
์ซ์ ๋ฐฐ์ด์ ์ถ๋ ฅํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ธ ๊ฐ๋ฅผ ๋ฃ์ด์ ์ถ๋ ฅํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์กฐ๊ธ ๋ค๋ฆ ๋๋ค.
๋ฐฐ์ด์ ์๋ ์์๋ฅผ console.log
์์ ๊ฐ๊ฐ์ ์ธ์๋ก ์ถ๋ ฅํ์ต๋๋ค. ์ซ์ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์์ฃ .
๋ฌธ์์ด ์ ๊ฐํ๊ธฐ
๋ฐฐ์ด์๋ง ์ ๊ฐ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ์ ์๋ ๊ฑด ์๋๋๋ค. ๋ฐ๋ณตํ ์ ์๋ ๊ฐ์ฒด๊ฐ ๋ ์์ต๋๋ค. ๋ฌธ์์ด ์ญ์ for...of
๋ฌธ์ผ๋ก ๋ฐ๋ณตํ ์ ์์ฃ . ๊ทธ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ํจ์๋ก ํธ์ถํ ๋ ํผ์น ์ ์์ต๋๋ค.
๋จผ์ ๋ฌธ์์ด์ ์ถ๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค. console.log
์ ์ธ์๋ก hello๋ฅผ ์
๋ ฅํ๋ฉด hello๋ ๋จ์ด ํ๋๋ง ์ถ๋ ฅํ ๊ฒ๋๋ค. ์ ์ธ ๊ฐ(...)๋ฅผ ๋ฃ์ด์ hello๋ฅผ ํผ์น๋ฉด ์ด๋จ๊น์? ๋ฌธ์๊ฐ ํ๋์ฉ ํผ์ณ์ง๊ณ ์ธ์๊ฐ ๋ถ๋ฆฌ๋๊ฒ ์ฃ . ์๋ ์ด๋ฏธ์ง์ฒ๋ผ ๋์ต๋๋ค.
๋ ๋ค ๋ฐ๋ฅด๊ฒ ์ถ๋ ฅํ ๊ฒ์ผ๋ก ํฐ ์ฐจ์ด๋ ์์ด ๋ณด์ ๋๋ค. ๋ฌธ์ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์๊ฒผ์ ๋ฟ์ด์ฃ .
์ถ๋ ฅ๊ฐ์ด ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง ๋ดค์ผ๋, ์ด๋ฒ์ ์กฐ๊ธ ๋ค๋ฅด๊ฒ ์
๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค. console.log
์ h, e, l์ ์ผํ๋ก ๋ถ๋ฆฌํด ๋ฃ์์ต๋๋ค.
hello ๋จ์ด๋ฅผ ์ ๋ถ ๋ฃ์ง๋ ์์์ง๋ง, ์ ๊ฐ ๊ตฌ๋ฌธ์ ์ผ์ ๋ ๊ณต๋ฐฑ์ด ์ด๋์ ๋์๋์ง ์ ์ ์์ต๋๋ค. ์ธ์๋ฅผ ๋ฐ๋ก๋ฐ๋ก ๋ฃ์ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ์ฃ . ๋ฌธ์์ด ํ ๋ฉ์ด๋ฆฌ๊ฐ ๋ฌธ์ ํ๋ํ๋๋ก ๋ถ๋ฆฌ๋ ํจ๊ณผ์ ๋๋ค. ์ซ์ ๋ฐฐ์ด์ ์ถ๋ ฅํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๋ฐฐ์ด ๋ฆฌํฐ๋ด ์ ๊ฐ ๊ตฌ๋ฌธ
์ ๊ฐ ๊ตฌ๋ฌธ ๋ ๋ฒ์งธ ๋ด์ฉ์ ๋๋ค. ๋ฐฐ์ด ๋ฆฌํฐ๋ด์ ๊ฒฝ์ฐ, ์ ๊ฐ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ ๋ฐฐ์ด๊ณผ ๊ฐ์ด ๋ฐ๋ณตํ ์ ์๋ ๊ฐ์ฒด๋ฅผ 0๊ฐ ์ด์์ ์์๋ก ํ์ฅํฉ๋๋ค. ์ฆ, ๋ฐ๋ณตํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ํผ์น๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
๋ฐฐ์ด ๋ณต์ฌํ๊ธฐ
์์๋ก ์์ธํ ์ค๋ช ํด ๋ณผ๊ฒ์. ์ฌ๊ธฐ ๊ณ ์์ด(cats)์ ๊ฐ(dogs) ๋ฐฐ์ด์ด ์์ต๋๋ค.
์ธ ๋ฒ์งธ ๋ฐฐ์ด์ ๋ง๋ค๊ฒ ์ต๋๋ค. ํจ์ ์ด๋ฆ์ ๋ชจ๋ ๋ฐ๋ ค๋๋ฌผ(allPets)๋ก ๋ชจ๋ ๊ณ ์์ด์ ๋ชจ๋ ๊ฐ๋ฅผ ์ฌ๊ธฐ์ ํฌํจํ๋ ค๊ณ ํฉ๋๋ค. ์ง๊ธ์ด์ผ ์ ์ง๋ง ์์๊ฐ ์๋ฐฑ ๊ฐ ์ ๋ ๋์ด๋ฌ์ ๋, ์ด๋ฅผ ๋ชจ๋ ์ ๋ ฅํ๋ ค๋ฉด ์ ๋ง ํ๋ค ๊ฒ๋๋ค.
์ด๋ ์ ๊ฐ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๋ฉด ์์ ์ด ์์ํฉ๋๋ค. ๋ฌผ๋ก ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค. slice์ ๊ฐ์ ํจ์๋ก ๋ฐฐ์ด์ ๋ณต์ฌํ ์๋ ์์์ฃ . ๊ทธ๋ ์ง๋ง ์ฌ๊ธฐ์์๋ ์ฌ์ฉํ์ง ์์ ๊ฒ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฐ๋ณตํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ์ ๊ฐํด ํผ์น ๊ฑฐ๋๊น์.
์ ๊ฐํ ๊ณ ์์ด ๋ฐฐ์ด์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฃ์์ต๋๋ค. ์ถ๋ ฅ๊ฐ์ ์ด๋จ๊น์?
๋๊ฐ์ต๋๋ค. ๋ค๋ง ์ง๊ณ ๋์ด๊ฐ ๊ฒ์ด ์์ต๋๋ค. ๋ชจ๋ ๋ฐ๋ ค๋๋ฌผ(allPets) ๋ฐฐ์ด๋ก ๊ณ ์์ด ์ด๋ฆ์ ์ถ๋ ฅํ ๊ฒ ๊ฐ์ง๋ง, ์ฌ์ค ์์ ์๋์ ์ถ๋ ฅ๊ฐ์ ๋ค๋ฆ ๋๋ค. ์์ ๋ฐฐ์ด์ ๊ทธ์ ๋ณต์ฌํ ๊ฐ์ ๋๋ค.
๋ชจ๋ ๋ฐ๋ ค๋๋ฌผ(allPets) ๋ฐฐ์ด์ ์ธ์๋ฅผ ํ๋๋ฅผ ๋ฐ๊ฟ ๋ณด๊ฒ ์ต๋๋ค. allPets.push๋ก ์๋ฌด ๊ฐ์ด๋ ๋ฃ์์ฃ . ๊ทธ ๊ฒฐ๊ณผ, ๋ชจ๋ ๋ฐ๋ ค๋๋ฌผ ๋ฐฐ์ด์ ๋ฌ๋ผ์ก์ง๋ง, ๊ณ ์์ด ๋ฐฐ์ด์ ์ฌ์ ํ ์ถ๋ ฅ๊ฐ์ด ๊ฐ์ฃ .
์ฆ, ์ ๊ฐ๋ฅผ ์ด์ฉํด ์ฝํ ์ธ ๋ฅผ ๋ณต์ฌํ ๊ฒ๋๋ค.
๋ ๊ฐ์ง ๋ฐฐ์ด ๋ฌถ๊ธฐ
๋ ๊ฐ์ง ๋ฐฐ์ด์ ๋ฌถ์ ์๋ ์์ต๋๋ค. ๊ณ ์์ด ๋ฐฐ์ด๊ณผ ๊ฐ ๋ฐฐ์ด์ ๋ชจ๋ ์ฐ๋ ๊ฑฐ์ฃ . ์ด์ ๋ง์ฝ ๋ชจ๋ ๋ฐ๋ ค๋๋ฌผ ๋ฐฐ์ด์ ์ถ๋ ฅํ๋ฉด ๋ ๊ฐ์ง ๊ฐ์ ๋ค ์ถ๋ ฅํ ๊ฒ๋๋ค. ๋ฐฐ์ด ๋ ๊ฐ๋ฅผ ๋ฌถ์ด, ์ธ ๋ฒ์งธ ๋ฐฐ์ด์ ์๋กญ๊ฒ ๋ง๋ ๊ฒ์ ๋๋ค.
๊ทธ๋๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด ๋ณด๊ณ , ์์๋ฅผ ๋ฐ๊ฟ์๋ ์ถ๋ ฅํด ๋ณด์์ต๋๋ค.
์ด์ฒ๋ผ ์ ๊ฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ต์ข ์ ์ธ ๊ฒฐ๊ณผ์๋ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
์๋ก์ด ์ธ์๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ๊ฑฐ๋ถ์ด ์ด๋ฆ์ ๋ฃ์ด ๋ณผ๊ฒ์. โ์คํผ๋(Speedy)โ๋ผ๊ณ ์ ๋ ฅํ๊ฒ ์ต๋๋ค.
์ถ๋ ฅ๊ฐ์ โ์คํผ๋(Speedy)โ๋ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ํ๋ ๋๋ก ๋ฃ์ ์ ์์ฃ . ์กฐ๊ธ ์ด์ํ์ง๋ง, ๋ง์ฝ ์ฌ๋ฌ๋ถ์ด ์ซ์๋ฅผ ๋ฃ์ด๋ ๋์ํ ๊ฒ๋๋ค.
์ด์ฒ๋ผ ์ ๊ฐ๋ ๋ชจ๋ ๋๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ํจ์๋ก ํธ์ถํ ๋, ๋ฐฐ์ด์ ํผ์ณค๋ ๊ฒฝ์ฐ์ ๊ฐ์ฃ . ์ด๋ฒ์๋ ๋ฐฐ์ด ํ๋๋ฅผ ๋ค๋ฅธ ๋ฐฐ์ด๋ก ํผ์น๊ฑฐ๋, ๋ฐฐ์ด ๋ ๊ฐ๋ฅผ ํผ์ณ์ ์ธ ๋ฒ์งธ ๋ฐฐ์ด์ ๋ง๋ค์์ ๋ฟ์ ๋๋ค.
๋ฐฐ์ด๋ง ํผ์น ์ ์๋ ๊ฑด ์๋๋๋ค. ๋ฐ๋ณตํ ์ ์๋ ๊ฐ์ฒด์๋ ๋ฌธ์์ด๋ ์๋ค๊ณ ํ์ฃ . hello๋ผ๋ ๋ฌธ์์ด์ ๋ฐฐ์ด ์์ ๋ฃ๊ณ ์ ๊ฐ ๊ตฌ๋ฌธ์ ๋ฃ์ผ๋ฉด, ๋ฌธ์์ด์ ํผ์ณ ๋ฐฐ์ด์ ์๋กญ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
console.log
๋ก ๋ฌธ์์ด์ ํผ์ณค์ ๋์ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์ต๋๋ค. ์์๊ฐ ํ๋ํ๋์ฉ ์กด์ฌํ๊ณ ์. ์ด ๊ฒฝ์ฐ์๋ ๋ฌธ์ ํ๋ํ๋๊ฐ ๋ฐฐ์ด์์ ์์๋ค๋ก ํผ์ณ์ง ๊ฒ๋๋ค.
๊ฐ์ฒด ์ ๊ฐ ๊ตฌ๋ฌธ
์ ๊ฐ ๊ตฌ๋ฌธ์ ๋ง์ง๋ง ํ์ฉ๋ฒ์ ๋๋ค. ๊ฐ์ฒด ๋ฆฌํฐ๋ด์์ ์ ๊ฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
์ ๊ฐ ๊ตฌ๋ฌธ์ ํ์ฉํ๋ฉด ๊ฐ์ฒด์ ์๋ ํน์ฑ์ ๋ณต์ฌํด์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊ฐ์ฒด ์ฌ๋ฌ ๊ฐ๋ฅผ ํ ๊ฐ์ฒด๋ก ๋ฌถ์ ์๋ ์์ต๋๋ค. ๋, ๊ธฐ์กด์ ๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค์, ๋ณต์ฌํ๊ฑฐ๋ ์์ ํ ์๋ ์์ต๋๋ค. ์ฐจ๊ทผ์ฐจ๊ทผ ์์๋ด ์๋ค.
ํน์ฑ์ ํผ์ณ ์๋ก์ด ๊ฐ์ฒด ๋ง๋ค๊ธฐ
์ฐ์ ๊ฐ์ฒด์ ํน์ฑ์ ํผ์ณ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ ์๋ฅผ ๋ณผ๊น์? ๊ฐ์ฒด๊ฐ ๋ ๊ฐ ์์ต๋๋ค. ๊ณ ์์๊ณผ(feline)์ ๊ฐฏ๊ณผ(canine)๊ฐ ์์ฃ .
๋ ๊ฐ์ฒด ๋ชจ๋ ์๋ฌผ ๋ถ๋ฅ(family) ํน์ฑ์ด ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง ๊ณ ์์๊ณผ(Felidae)์ ๊ฐฏ๊ณผ(Caninae)์ ๋๋ค. ์ด์ ํน์ฑ ํ๋๋ฅผ ๋ณต์ฌํด์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ณด์ฃ .
{...feline}
์ด๋ผ๋ ๊ตฌ๋ฌธ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ์ ์์ต๋๋ค.
์๋ก์ด ๊ฐ์ฒด์ ํน์ฑ์ ๊ณ ์์๊ณผ ๊ฐ์ฒด์ ํน์ฑ๊ณผ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ ์๋ก์ด ํน์ฑ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ์์ ๋ฃ์ด ๋ณผ๊ฒ์. ๊ฒ์์(black)์ด๋ผ๊ณ ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๊ณ ์์๊ณผ ํน์ฑ์ ๊ฒ์์์ด๋ผ๋ ํน์ฑ์ ์ถ๊ฐํ ๊ฐ์ฒด๊ฐ ์๋กญ๊ฒ ๋ง๋ค์ด์ก์ต๋๋ค. ํน์ฑ์ ๋ณต์ฌํด์ ๊ฐ์ฒด๋ฅผ ์๋กญ๊ฒ ํผ์ณค๊ณ ๊ฒ์์์ ์ถ๊ฐํ ๊ฑฐ์ฃ .
๊ฐ์ฒด๋ฅผ ๋ฌถ์ด ์๋ก์ด ๊ฐ์ฒด ๋ง๋ค๊ธฐ
์ด์ ๊ฐ์ฒด ๋ ๊ฐ๋ฅผ ๋ฌถ์ด์ ์๋ก์ด ๊ฐ์ฒด, catDog๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค. ๊ณ ์์๊ณผ์ ๊ฐฏ๊ณผ๋ฅผ {...feline, ...canine}
๊ตฌ๋ฌธ์ผ๋ก ๋ฌถ์์ต๋๋ค.
ํน์ฑ ๋ ๊ฐ๊ฐ ๋ชจ๋ ๋ณต์ฌ๋์์ต๋๋ค. ํ์ง๋ง ์ด๋ด ๋๋ ์ถฉ๋์ด ์๊น๋๋ค. ๋ ๊ฐ์ฒด ๋ชจ๋ ์๋ฌผ ๋ถ๋ฅ ํน์ฑ์ด ์๊ธฐ ๋๋ฌธ์ด์ฃ . ๊ทธ๋์ ์์๊ฐ ์ค์ํฉ๋๋ค.
์์์์๋ ๊ณ ์์๊ณผ ํน์ฑ์ธ Felidae๊ฐ ๋จผ์ ๋ณต์ฌ๋์๊ณ , ๊ทธ ๋ค์ ๊ฐฏ๊ณผ ํน์ฑ์ธ Caninae๊ฐ ๋ณต์ฌ๋์์ต๋๋ค. ์ด๋ ๊ฒ ์ถฉ๋์ด ์์ ๋๋ ๋ ๋ฒ์งธ ๋ณต์ฌ๋ ํน์ฑ์ด ์์ ํน์ฑ์ ๋ฎ์ต๋๋ค. ๋ง์ฝ ์์๋ฅผ ๋ฐ๊ฟ ์ ๋ ฅํ๋ฉด, ์๋ฌผ ๋ถ๋ฅ ํน์ฑ ์ญ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์์ ์๋ก์ด ํน์ฑ์ ๋ฃ์ด๋ณด๋ฉด ์ด๋จ๊น์? ์๋ฌผ ๋ถ๋ฅ ํน์ฑ์ธ family๋ฅผ โSteeleโ์ด๋ผ๊ณ ์ฐ๊ฒ ์ต๋๋ค.
๊ณง Steele์ด ๊ฐ์ฒด ํน์ฑ์ผ๋ก ๋ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ ์์์ผ๋๊น์.
์ง๊ธ๊น์ง ์ ๊ฐ๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํด ๋ดค์ต๋๋ค. ํน์ฑ์์ ํค-๊ฐ ์์ ๊ฐ์ ธ์ ์ถ๊ฐํ ๋ค์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์์ฃ . ์ด๋ฐ ์ง๋ฌธ์ ๊ฐ๋ ๋ฐ์ต๋๋ค. โ์ด ๊ตฌ๋ฌธ์ด ๋ง์ด ์ฐ์ด๋์?โ ๋ผ๊ณ ์.
์, ์ด ๋ฐฉ๋ฒ์ ๋ฐฐ์ด์ ํผ์ณ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๊ฒฝ์ฐ์๋ ์ฐ์ ๋๋ค. 2, 4, 6, 8์ ๋ฃ์ ๋ฐฐ์ด์ด ์์ต๋๋ค. ์ด ๋ฐฐ์ด์ ํผ์ณ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค. ์ ์ธ ๊ฐ๋ฅผ ๋ฃ์ด ์ ๊ฐํ์ฃ . ๊ฒฐ๊ณผ๊ฐ ์ด๋ป๊ฒ ๋ ๊น์? ๋ฌด์์ด ํค๊ณ ๋ฌด์์ด ๊ฐ์ด์ฃ ?
์ธ๋ฑ์ค๋ฅผ ํค๋ก ์ฌ์ฉํ ๊ฒ์ด ๋ณด์ ๋๋ค. ์ธ๋ฑ์ค 0๋ฒ์ โ2โ๊ฐ ์์ฃ . 1๋ฒ์ โ4โ, 2๋ฒ์ โ6โ, 3๋ฒ์ โ8โ์ด ์์ฃ . ๋ฌธ์์ด๋ ์ด์ ๋๊ฐ์ด ์ทจ๊ธํ ์ ์์ต๋๋ค.
์ ์ ๊ฐ๋ฅผ ์ฌ์ฉํ ๊น?
๊ทธ๋ผ ์ ์ ๊ฐ๋ฅผ ์ฌ์ฉํ ๊น์? ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ฃ ?
๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ๋ ์ฐ๋ฆฌ๋ ์ ๊ฐ๋ฅผ ์ฌ์ฉํด์ ํผ์นฉ๋๋ค. ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๋ ์์ ์ ์ฃผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฆฌ์กํธ(React)๋ฅผ ์ธ ๋ ํ์ํฉ๋๋ค. ์ฒ์ ์์ํ๋ ๋จ๊ณ์์๋ ๋ค๋ฃจ์ง ์์๋ ์ค๋ฌด์์๋ ์์ฃผ ์ค์ํฉ๋๋ค.
๊ทธ๋์ ๊ฐ์ฒด๋ฅผ ๋ณํํ์ง ์๊ณ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ๋๋ค. ๋ณํ์ด ์๋ ๋ณต์ฌ๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ํ๋ ๋ ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค. ์ด๋ค ์ฌ์ฉ์์ ๋ฐ์ดํฐ์ ๋๋ค.
์ฌ์ฉ์๋ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ, ์ฌ์ฉ์ ๋ช ์ ์ ๋ ฅํด์ผ ํฉ๋๋ค. ์ด๊ฑธ ๋ชจ๋ ๋ฌถ์ด ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ๋ง์ฝ ์ด ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ๋ฑ๋กํ๋ ค๋ฉด, ์ด ์ ๋ณด๋ฅผ ๋ชจ๋ ์ ๊ณตํด์ผ ํ๋๊น์.
๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๋ง์ ์๋ณ์์ธ ID๋ ํ์ํ๊ณ isAdmin
ํน์ฑ์ด ์ฐธ์ธ์ง ๊ฑฐ์ง์ธ์ง๋ ์
๋ ฅํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๊ฒ ์ต๋๋ค. dataFromForm์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ณต์ฌํ ์ ์์ต๋๋ค. ID๋ฅผ ์ถ๊ฐํ๊ณ , isAdmin
ํน์ฑ์ ๊ฐ์ ๊ฑฐ์ง์
๋๋ค. ๋ ํน์ฑ์ ์ ๊ฐ ๋ง๋ค์์ฃ . ๋ค์ ์ด๊ฒ์ ๋ณ์ newUser
๋ก ์ ์ฅํ๊ฒ ์ต๋๋ค.
์ฝ์์์ ๋ณด๊ฒ ์ต๋๋ค. newUser
๋ฅผ ์
๋ ฅํ๋ ์๋์ ๊ฐ์ด ๋์์ต๋๋ค.
email
, password
, username
์ ํผ์ ์๋ ๋ฐ์ดํฐ์ฃ . ๊ทธ๋ฆฌ๊ณ ID์ isAdmin
ํน์ฑ์ ์ ๊ฐ ๋ง๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ํด์น์ง ์์ผ๋ฉฐ ์ฌ์ฉ์์ ์๋ณ์ ์ํํ ์ ์์ต๋๋ค.
๋ง์น๋ฉฐ
์ ๊ฐ์ ๊ดํ ์ค๋ช ์ ์ฌ๊ธฐ๊น์ง์ ๋๋ค. ๊ฝค ๋ง์ ๋ด์ฉ์ ๋ฐฐ์ ์ง๋ง, ์ ๋ฆฌํ์๋ฉด ์ ๊ฐ๋ ์ ๋ณด์ ์์ค๋ฅผ ํผ์ณ ๋ค๋ฅธ ์ฉ๋๋ก ๋ง๋๋ ์์ ์ ๋๋ค.
๋ฐฐ์ด ๋๋ ๋ฐ๋ณตํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ์ธ์๋ ๋ฐฐ์ด ๋ฆฌํฐ๋ด๋ก ํผ์น ์ ์์ต๋๋ค. ๋ ๊ฐ์ฒด๋ฅผ ํผ์ณ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๊ณ ์. ๋ง ๊ทธ๋๋ก ๋ชจ๋ ํผ์น๋ ๊ฒ(์ ๊ฐ)๊ณผ ๊ด๋ จ ์์์ต๋๋ค. ๊ณ ์ํ์ จ์ต๋๋ค. ๋ค์ ์๊ฐ์๋ ๋ถํด์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.