[JS] ์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ - ํด๋์ค
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
๋น๊ต์ฐ์ฐ์, ์์์ ๋ณ์์ ์ฌ์ฉ, ์ซ์ ๋ณํ ๋ฉ์๋์ ๊ดํ์ฌ
์ฝ์ด์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ณ ๋ด์ฉ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ธฐ
await๊ณผ async๋ promise๋ฅผ ๋ ๊น๋ํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฝ๋ฐฑํจ์์ ์ค์ฒฉ์ด ๋ง์์ง๋ฉด ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ณ ๋ณต์กํด์ง๋ฏ๋ก, promise ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ข๋ค.
๋ค๋ฅธ ์ธ์ด๊ฐ ๋์ํ ๋๋ ์์๋๋ก ์๋ํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์คํฌ๋กค ์ ๋๋ฉ์ด์ ์ ๋ง๋ค๋ฉด์ ๋ฐฐ์ด ๋ฉ์๋๋ค ์ ๋ฆฌํด๋๊ธฐ
๊ฐ์ฒด๋ ๋ฐฐ์ด ์๋ฃ๋ฅผ ๋ณ์๋ก ๋ถํดํด ํ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฌธ๋ฒ
if๋ฌธ์ ๋จ์ถํํ๋ก ์ฌ์ฉํ ์ ์๋ ์กฐ๊ฑด๋ถ ์ผํญ ์ฐ์ฐ์
์ํ๋ ์์๋ฅผ ๋ง๋๋ก ๋ฑ ์ก์์ค๋๊ฒ ์ฝ์ง ์์๋๋ฐ, ๊ฐ์ ๋ค์ผ๋ฉด์ ์ข ์ ๋ฆฌ๊ฐ ๋์๋ค.
Class๋ฅผ ์ฌ์ฉํ๋ฉด Constructor๋ณด๋ค ๋ ๋ช ํํ๊ณ ๊น๋ํ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด๋ผ๋ ๊ฒ์ ๊ฒฐ๊ตญ ๊ฐ์ฒด์งํฅ์ ํน์ฑ์ ์ค๋ช ํ๋ค.
ํ์ ์ ๋ฐ๋ผ ๋ณ์ ํ ๋น,์์ ,๋ณต์ฌ ๋ฑ์ ์์ ์ ํ๋ ๊ณผ์ ์์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์๋ค.
์คํ๋ ๋ ์ฐ์ฐ์๋ฅผ ํ์ฉํ๋ฉด ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ๊ฐ์ ๊บผ๋ด์ ํ์ฉํ ์ ์๋ค.
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ๋ฌธ์์ด์ ๋ค๋ฃจ๊ธฐ ์ฝ๊ฒ ํ๋ ES6 ๋ฌธ๋ฒ์ด๋ค.
const, let, var๋ฅผ ๊ณต๋ถํ ๋ ๋ณต์กํด์ ๋์ด๊ฐ๋ ํธ์ด์คํ ๋ค์ ์ ๋ฆฌํ๊ธฐ
์๊ธฐ์์ ์ ๋ปํ๋ this๋ ์ฐ์ฌ์ง ์์น์ ๋ฐ๋ผ ํด์์ด ๋ฌ๋ผ์ง๋ค.
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ ์ดํดํ๊ณ ๋ค์ ๋ณด๋ new ์์ฑ์
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ ๋ํ ์ดํด๋ ์ค์ํ๊ตฌ๋
ES6 ๋ฌธ๋ฒ์ผ๋ก, Array ๋ด ๋ชจ๋ ์์๋ฅผ ๋ฐ๋ณตํด์ ๊ฐ๊ณต์ํค๋ ๋ฉ์๋์ด๋ค.
ํญ ๋ฉ๋ด๋ฅผ ๋ง๋๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ ๋ด์ฉ ์ ๋ฆฌํ๊ธฐ
ํญ ๋ฉ๋ด ๋ง๋ค๋ ๋ฐ๋ณต๋ฌธ์ ์ฐ๋ฉด์ ๋ฐฐ์ด ํํฐ๋ง ๋ฌธ๋ฒ ๋ค์ ์ ๋ฆฌํ๊ธฐ
์ํ์ฝ๋ฉ ๋ฐ๋ณต๋ฌธ ํํธ๋ฅผ ๋ค์ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ๋ค.
์ด๋ค ๊ฐ์์์๋ var๋ฅผ ํผํ๋ผ๊ณ ํ๊ณ , ์ด๋ค ๊ฐ์๋ var๋ง ์ฌ์ฉํ๊ธธ๋ ์ ๋ฆฌํด๋ณด์๋ค.
๋ ธ๋ง๋์ฝ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ ๋ค์๋ ๋ด์ฉ์ ๋ค์ ๋ณต์ตํด๋ณด์
๋ ธ๋ง๋์ฝ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ ๋ค์๋ ๋ด์ฉ์ ๋ค์ ๋ณต์ตํด๋ณด์
์ฝ๋๋ฅผ ์งค ๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์๋ฏธ๋ฅผ ์๊ฐํ๋ ๊ฒ์ด๋ค.
prettier๋ก ์ฝ์งํ๋ฉด์ ์ฐพ์๋ณธ ๋ด์ฉ์ ๊ธฐ๋กํด๋ณด์
์ฒ์์ผ๋ก ์ ๋ฌด์ ํ์ฉํ ์ฝ๋๋ฅผ ๋ง๋ค์๊ณ ์๊ฐ๋ณด๋ค ๋ ๋ง์ ๊ฒ์ ๋ฐฐ์ ๋ค.2
์ฒ์์ผ๋ก ์ ๋ฌด์ ํ์ฉํ ์ฝ๋๋ฅผ ๋ง๋ค์๊ณ ์๊ฐ๋ณด๋ค ๋ ๋ง์ ๊ฒ์ ๋ฐฐ์ ๋ค.
๊ฐ์์์ ๋ฐฐ์ด๋ด์ฉ ์ ๊ทธ๋ ์ด๋ ํด๋ณด๊ธฐ. ๋๋ฌด ๋ฟ๋ฏํด์ ๋จ๊ธฐ๋ ๊ธ
parameter, argument, ์ธ์, ๋งค๊ฐ๋ณ์ ๋ฑ๋ฑ์ ๋จ์ด๋ค์ด ์ ๋ฆฌ๊ฐ ์ ์๋์ด์ ์ฐพ์๋ดค๋ค.
๋ฒํผ์ ํจ์๋ก ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํ๋ค. ํด๋ฆญ๋ ์ํ๋๋ฐ ํจ์๊ฐ ๋ฐ๋ก ์คํ๋๋ฒ๋ฆฐ ์ด์ ..
์ค๋์ ์ํ์ฐฉ์ค๋ฅผ ์ ๋ฆฌํ๊ณ , ์ธ์ ๊ฐ pages๋ก ๊นํ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๊ธฐ๋กํด๋ณธ๋ค.
ํด์ฆ๋ฅผ ํ๋ค๊ฐ ์๊ธด ์๋ฌธ์ ์ ๊ธ๋ก ์ ๋ฆฌํด ๋จ๊ฒจ๋ณธ๋ค. ์ฝ๋์ฑ๋ฆฐ์ง๋ ๋๋ฌด ์ฌ๋ฐ์ด..
๊น? ๋ธ๋์น? ์ฝ์ง๋ค๊ฐ ๊ฐ์๊ธฐ ์ปค๋ฐ ์คํจํ๋ ์ด์ผ๊ธฐ
๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ๋ฉฐ ๋ณต์ตํ๊ณ , ํ์ํ ๋ ๋ค์ ์ฐพ์๋ณผ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ์ด ์ด๋ก
๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ํตํด ์กฐํฉ๊ณผ ์์ด ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํด๋ณด์
๊ฐ์ ์ค๋ณต ํ์๋ฅผ ๊ตฌํ๋ฉด์ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด ๋ค๋ฃจ๋ ๋ฒ์ ์กฐ๊ธ ๋ ๊ณต๋ถํ ์ ์์๋ ๋ฌธ์
์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํด๋ณด์
๋ฐฐ์ด์ ์์ฑํ๊ณ ์์๋ฅผ ์ถ๊ฐ, ์ญ์ ํ๋ ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณด์
์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๋น๊ตํ๊ธฐ ์ํด Big-O ํ๊ธฐ๋ฒ์ ํ์ฉํ๋ค.
๊ทธ๋ฅ ์ฝ๋ฉํ ์คํธ์ฉ?? ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฐ์ดํฐ๊ตฌ์กฐ ๊ณต๋ถ๊ฐ ํ์ํ ์ด์
๋ค์ ๋ฆฌํฉํ ๋ง ํ๊ณ ๋๋์ด ๊ธฐ๋ณธ๊ธฐ๋ฅ ๊ตฌํ ์๋ฃ!
์ง๋์ฃผ์ ๋ง๋ฌด๋ฆฌํ๋ ค๊ณ ํ๋๋ฐ ๋ง๋ฌด๋ฆฌ๋ ์ปค๋ ์ด์ฐ ํด์ผํ ์ผ์ด ๋ ๋ง์์ก๋ค.
์๋น๋ด์ญ ๋ฑ๋ก ๊ด๋ จ ๋ํ ์ผ ๊ธฐ๋ฅ๋ค์ ์ถ๊ฐ ๊ตฌํํ๋ค.
์๋น๋ด์ญ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๊ณ ๋ฆฌ์คํธ์ ๋ฐ์์ํค๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.
์์ฐ ์ค์ , ์๋น๋ด์ญ ์ถ๊ฐ ๋ชจ๋ฌ, ๋ฌ๋ ฅ ๊ธฐ๋ฅ ๋ฑ์ ๊ตฌํํ๋ค.
๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ธฐ๋ณธ์ด ๋๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์์ํ๋ค.
๋๋์ด ์๊ฐ๋ง ๋ง์๋ ๊ฐ๊ณ๋ถ ๋ง๋ค๊ธฐ๋ฅผ ์คํ์ ์ฎ๊ฒผ๋ค.
utterances๋ก ๋ธ๋ก๊ทธ์ ๋๊ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํด๋ณด์ (minimal-mistakesํ ๋ง)
๋ง์๋๋ ๋ธ๋ก๊ทธ ์ ํ ์ ์ํด ์์ ํ ์์ํ ๋ด์ฉ๋ค ๋ชจ์์ง
๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค๊ณ ์ด์ฌํ ํฌ์คํ ํ์ง๋ง ์๋๊ฐ ์์ฌ๊ธฐ๋ ์ํฉ์ ํด๊ฒฐํด๋ณด์
์๊ฐ๋ณด๋ค ๊ฐ๋จํ๊ฒ ๋ธ๋ก๊ทธ ํ๋น์ฝ์ ๋ฑ๋กํ ์ ์๋ค.
๊นํ ๋ธ๋ก๊ทธ์ ๊ธ์ ์ฌ๋ฆฌ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด์.
๋ฐฐ์๊ฐ๋ ๊ณผ์ ์ด๋ผ ๋ํ ์ผํ๊ฑด ๋ชจ๋ฅด๋๊ฒ ๋ง๋ค. ๋ช๋ฒ์ ์ฝ์ง ๊ณผ์ ์์ ์๊ฒ๋ ๊ฒ๋ค์ ํฌ์คํธ๋ก ๋จ๊ฒจ๋ณธ๋ค.
์ฒ์์ ๋ฐฐ์์ ๋ฌด์ง์ฑ์ผ๋ก ์ฌ์ฉํ๋ position์ ๋ณต์ตํด๋ณด์
CSS๋ก ๋ง์ค์์ ์ฒ๋ฆฌํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์์๋ณด์
๋ฐ์ํ ์ฌ์ดํธ์์ ๋ง๊ตฌ ๋ณํ๋ width๊ฐ์ ๋ฐ๋ผ ๊ฐ์ ๋น์จ๋ก height๋ฅผ ๋ง์ถฐ์ฃผ์
๊ฐ๋ณ๊ฒ ์๊ฐํ๊ณ ๋๊ฒผ๋ค๊ฐ ์ธ ๋๋ง๋ค ํท๊ฐ๋ ธ๋ ์์ฑ ์ ๋ฆฌํ๊ธฐ
ํด์ฌ ํ ์๋ก์ด ์ฌ์ ์ ์์ํ๋ ๋์ ์์ ๋ค์ง
๋ช๋ฒ์งธ ๋ธ๋ก๊ทธ ์ด์ฌ์ธ๊ฐ.. ์ด์ ๋ค์ ๊ธ ์ฎ๊ธฐ๊ธฐ๋ฅผ ์์ํ์ง
ํด๋ก ์ฝ๋ฉ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๋ด๊ฐ ์ ๋ง ์ ๋๋ก ์๋๊ฒ ๋ง๋ ์์ฌ์ด ๋ค์๋ค.
๋ฆฌ์กํธ ๊ธฐ์ด ๋ด์ฉ์ ๊ธฐ๋กํ๋ฉฐ ๋ณต์ตํ์. ์์ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ฃผ๋ props
๋ฆฌ์กํธ ๊ธฐ์ด ๋ด์ฉ์ ๊ธฐ๋กํ๋ฉฐ ๋ณต์ตํ์. ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์ฒ๋ฆฌํ๋ useState
๋ฌด์์ ์์ํด๋ณด๋ ๋ฆฌ์กํธ. ์ ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋์ง ๋จผ์ ์ดํดํ์
๋ ธ๋ง๋์ฝ๋ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์ ์๊ฐ ํ ๋ณต์ต ์ ๋ฆฌ 3
๋ ธ๋ง๋์ฝ๋ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์ ์๊ฐ ํ ๋ณต์ต ์ ๋ฆฌ 2
๋ ธ๋ง๋์ฝ๋ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์ ์๊ฐ ํ ๋ณต์ต ์ ๋ฆฌ 1
global styles & styled-reset & ThemeProvider
๋ฆฌ์กํธ + ํ์ ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ์์ SVG๋ฅผ ํ์ฉํ ์์ด์ฝ ์ปดํฌ๋ํธ
React, Typescript, ESlint ๊ฐ๋ฐํ๊ฒฝ ์ค์ ๋ฐ ์ปดํฌ๋ํธ ๊ตฌ์กฐ ์ค๊ณ
๋น์ทํด๋ณด์ด๋ ๊ฒ๋ค.. ์๋ฉํฑํ ๋งํฌ์ ์ ์ํด ์ ํํ ๋ญ๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฑด์ง ์ฐพ์๋ณด์๋ค
์ฒ์์๋ ์ฐพ์๋ณด๋๋ผ ์๊ฐ์ด ๊ฑธ๋ ค๋ ์ต์ํด์ง๋ฉด ์์ฃผ ํธํด์ง๋ ๋จ์ถํค
ํญ์ ๋๋ฌด ์ฑ๊ธํ๊ฒ ์ปค๋ฐํ๊ณ ํํํ๋ ๋.. ์ปค๋ฐ ์์ ๋ช ๋ น์ด ๊ณต๋ถ ํ์