
1\. ์ํ๊ด๋ฆฌ๋ฅผ ์ ํ ๊น์? ๊ทธ๋ฆฌ๊ณ ํ์ state ๊ด๋ฆฌ๋ ์ด๋ป๊ฒ ํ์๋์?์ํ = state๋ฐ๋๋ผ JS๋ง ๋ฐฐ์ธ ๋๋ state๊ฐ ์์๋๋ฐ, React์์์ ์ฃผ์ ๊ฐ๋ .React์์ ์ํ๊ฐ ๋ณํ๋ฉด ํ๋ฉด์ด ๋ฆฌ๋ ๋๋ง๋๋ ๊ฒ์ ์์ฃผ ์ค์ํ ํต์ฌ ์๋ฆฌ.ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๊ฐ์ด๋
1\. ์ํ๊ด๋ฆฌ๋ฅผ ์ ํ ๊น์? ๊ทธ๋ฆฌ๊ณ ํ์ state ๊ด๋ฆฌ๋ ์ด๋ป๊ฒ ํ์๋์?์ํ = state๋ฐ๋๋ผ JS๋ง ๋ฐฐ์ธ ๋๋ state๊ฐ ์์๋๋ฐ, React์์์ ์ฃผ์ ๊ฐ๋ .React์์ ์ํ๊ฐ ๋ณํ๋ฉด ํ๋ฉด์ด ๋ฆฌ๋ ๋๋ง๋๋ ๊ฒ์ ์์ฃผ ์ค์ํ ํต์ฌ ์๋ฆฌ.ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๊ฐ์ด๋
Can I use Redux without Redux toolkit?Note that you are not required to use Redux Toolkit to use Redux. There are many existing applications that use
1\. ์ํ๊ด๋ฆฌ๋ฅผ ์ ํ ๊น์? ๊ทธ๋ฆฌ๊ณ ํ์ state ๊ด๋ฆฌ๋ ์ด๋ป๊ฒ ํ์๋์?์ํ = state๋ฐ๋๋ผ JS๋ง ๋ฐฐ์ธ ๋๋ state๊ฐ ์์๋๋ฐ, React์์์ ์ฃผ์ ๊ฐ๋ .React์์ ์ํ๊ฐ ๋ณํ๋ฉด ํ๋ฉด์ด ๋ฆฌ๋ ๋๋ง๋๋ ๊ฒ์ ์์ฃผ ์ค์ํ ํต์ฌ ์๋ฆฌ.ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๊ฐ์ด๋
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.๋ต๋ณ)์๋: ๋จ์ํ ์๋ฐ์คํฌ๋ฆฝํธ, ๋ฆฌ์กํธ ๋ฑ์ ์ฝ๋ฉ ๊ธฐ์ ์ด ์๋๋ผ ์ ๋ฐ์ ์ธ ํ๋ก ํธ์๋ ์ง์์ ๊ฐ์ง๊ณ ์๋์ง ํ์ธํ๋ ์ง๋ฌธ.ํ: ์์์ ๊ด๋ จํ ์ง๋ฌธ์ด๊ธฐ์ ์ ์ค์ฒ ๋ฑ ๋น์ธ์ด์ ํํ์ผ๋ก ๋ณด์กฐํ๋ ๊ฒ๋ ์ข์ต๋๋ค.๋ชจ๋ฒ ๋ต์: ๋ธ๋ผ์ฐ์
์ ์ - ์ด๋ ํ ์๋ฏธ๋ฅผ ์ง๋ ๊ฐ.์ ํ๋ฆฌ์ผ์ด์ ์ ์๋๋ฆฌ์ค์ ๋ฐ๋ผ ์ง์์ ์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์๋ ๊ฐ.UI : ๊ธฐ๋ณธ์ ์ผ๋ก ์น ์ํ๋ฆฌ์ผ์ด์ ์์ ์ํ๋, ์ํธ ์์ฉ์ด ๊ฐ๋ฅํ ๋ชจ๋ ์์์ ํ์ฌ ๊ฐ์ ์๋ฏธํ๋ค. ๋คํฌ/๋ผ์ดํธ ๋ชจ๋, ๋ผ๋์ค๋ฅผ ๋น๋กฏํ ๊ฐ์ข input, ์๋ฆผ์ฐฝ์ ๋ ธ์ถ ์ฌ๋ถ
Redux Toolkit์ Redux ๋ก์ง์ ์์ฑํ๊ธฐ ์ํด ์ ํฌ๊ฐ ๊ณต์์ ์ผ๋ก ์ถ์ฒํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. RTK๋ Redux ์ฑ์ ๋ง๋ค๊ธฐ์ ํ์์ ์ผ๋ก ์ฌ๊ธฐ๋ ํจํค์ง์ ํจ์๋ค์ ํฌํจํฉ๋๋ค. ๋๋ถ๋ถ์ Redux ์์ ์ ๋จ์ํํ๊ณ , ํํ ์ค์๋ฅผ ๋ฐฉ์งํ๋ฉฐ, Redux ์ฑ์ ๋ง๋ค๊ธฐ์ฝ๊ฒ
๋น๊ต์ ์ค๋ ๊ธฐ๊ฐ, ๋ฆฌ์กํธ ์ํ๊ณ์์๋ ์ํ ๊ด๋ฆฌ๋ฅผ ๋ฆฌ๋์ค์ ์์กดํ๋ค. ๊ณผ๊ฑฐ ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๋ณด๋ฉด, ๋ฆฌ์กํธ์ ๋ฆฌ๋์ค๊ฐ ํจ๊ป ์ค์น๋ผ ์๋ ๊ฒ์ ํํ ๋ณผ ์ ์์๊ณ , ์ผ๋ถ ๊ฐ๋ฐ์๋ค์ ๋ฆฌ์กํธ์ ๋ฆฌ๋์ค๋ฅผ ๋ง์น ํ๋์ ํ๋ ์์ํฌ ํน์ ์ ๊ณ ํ์ค (de facto)์ผ๋ก ์ฌ๊ธฐ๊ธฐ๋ ํ
๋ฒ์ธ์ผ ๋์ ์ค์ ๋ก ์คํ๋๊ธฐ ์ ์ ๊ทธ ๋ฏธ๋ฆฌ ํ๋ฒ ๊ทธ๋ ค๋ณด๊ณ ๊ทธ๋ฌ๋ ๊ฑธ๋ก ์๋๋ฐ์ ์ด..๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. \- ๋ต๋ณ) \- ์๋: ๋จ์ํ ์๋ฐ์คํฌ๋ฆฝํธ, ๋ฆฌ์กํธ ๋ฑ์ ์ฝ๋ฉ ๊ธฐ์ ์ด ์๋๋ผ ์ ๋ฐ์ ์ธ ํ๋ก ํธ์๋ ์ง์์ ๊ฐ์ง๊ณ ์๋์ง ํ
5. useRef์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. useRef๋ useState์ ๋์ผํ๊ฒ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ ๋๋ง์ด ์ผ์ด๋๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ํ๊ฐ์ ์ ์ฅํ๋ค๋ ๊ณตํต์ ์ด ์๋ค. ๊ทธ๋ฌ๋ useState์ ๊ตฌ๋ณ๋๋ ํฐ ์ฐจ์ด์ ๋ ๊ฐ๊ฐ ์๋ค. useRef๋ ๋ฐํ๊ฐ์ธ ๊ฐ์ฒด ๋ด๋ถ์ ์๋
6. useEffect์ ์คํ ์์์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. https://velog.io/@jhsung23/React-useEffect-%EC%8B%A4%ED%96%89-%EC%88%9C%EC%84%9C https://hanghae99.spartacodingclub.
8\. Async/Await์ Promise์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.Async๋ Await ํจ์๊ฐ ๋ค์ด๊ฐ๋ ๋น๋๊ธฐ์ ๊ธฐ๋ณธ ๊ฐ์ ๊ทธ๋ฐ ๋๋ Promise๋ ๋น๋๊ธฐ ํจ์๊ฐ ๋ฆฌํดํ๋ ํ๋ก๋ฏธ์ค ๊ฐ์ฒด.9\. ๋ฐ์ดํฐ 10,000๊ฐ๋ฅผ ๊ฐ์ง๊ณ ๋ฌดํ ์คํฌ๋กค ๊ตฌํ์์ ๊ฐ์ฅ ์ค์ํ๊ฒ
Async๋ Await ํจ์๊ฐ ๋ค์ด๊ฐ๋ ๋น๋๊ธฐ์ ๊ธฐ๋ณธ ๊ฐ์ ๊ทธ๋ฐ ๋๋ Promise๋ ๋น๋๊ธฐ ํจ์๊ฐ ๋ฆฌํดํ๋ ํ๋ก๋ฏธ์ค ๊ฐ์ฒด.์ฝ๋ฐฑ ํฌ(callback hell) Async/await ์ฝ๋ ์คํ์ผ์ ์ด์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด์ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ๋ ๊ฒ ๋ง์์ด์์ฃ ? ๋ชฐ๋ฅด
Async๋ Await ํจ์๊ฐ ๋ค์ด๊ฐ๋ ๋น๋๊ธฐ์ ๊ธฐ๋ณธ ๊ฐ์ ๊ทธ๋ฐ ๋๋ Promise๋ ๋น๋๊ธฐ ํจ์๊ฐ ๋ฆฌํดํ๋ ํ๋ก๋ฏธ์ค ๊ฐ์ฒด.์ฝ๋ฐฑ ํฌ(callback hell) Async/await ์ฝ๋ ์คํ์ผ์ ์ด์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด์ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ๋ ๊ฒ ๋ง์์ด์์ฃ ? ๋ชฐ๋ฅด
๐ ์ ๋๋ ์ดํฐ, async, awaitAsync๋ Await ํจ์๊ฐ ๋ค์ด๊ฐ๋ ๋น๋๊ธฐ์ ๊ธฐ๋ณธ ๊ฐ์ ๊ทธ๋ฐ ๋๋ Promise๋ ๋น๋๊ธฐ ํจ์๊ฐ ๋ฆฌํดํ๋ ํ๋ก๋ฏธ์ค ๊ฐ์ฒด์ฝ๋ฐฑ ํฌ(callback hell) Async/await ์ฝ๋ ์คํ์ผ์ ์ด์
๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด์ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ๋ ๊ฒ ๋ง์์ด์์ฃ ? ๋ชฐ๋ฅด๊ฐ์ต๋๋น~!๋ฐ์ดํฐ ์กฐํ ๋ฐฉ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด๋ ๊ตฌํ ์, ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ๋ค๊ธฐ
์ ์ฒด ์ฝ๋ ๋ด์์ ๋ณ์ ์ ์ธ๋ถ์ ์์น์ ์๊ด ์์ด,์ฝ๋ ์คํ ์ (๋ฐํ์) ์ ์ธ์ด ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ ํ์.์ด๋ก ์ธํด ์ฒซ๋ฒ์งธ ์ค๋ถํฐ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.var ์ฌ์ฉ ์ ํธ์ด์คํ ์ด ๋ช ํํ ๋ณด์ด๊ณ ,let๊ณผ const๋ ํธ์ด์คํ ์์ด ๋์ํ๋ ๋ฏํ๋ ์ค์ ๋ก๋ ์ด๋ฃจ์ด์ง
๋๊ธฐ : ์ฝ๋๊ฐ ์ฐ์ฌ์ง ์์๋๋ก ์คํ๋น๋๊ธฐ : ์ฒ๋ฆฌ ์๋์ ๋ฐ๋ผ ์์ ์ด ์๋ฃ๋๋๋ก ์คํ๋จผ์ ์ฐ์ธ ์ฝ๋๊ฐ ๋ฌด๊ฒ๊ณ ๋๋ฆด ๊ฒฝ์ฐ ๋์ค์ ์ค๋ ์ฝ๋๋ค์ ๋ฌด์์ ๋๊ธฐํด์ผ ํ๋ ๋นํจ์จ ๋ฐ์.๋๊ธฐ๋ ์์ ์ ์์ฐจ์ ์ผ๋ก ์งํํ๋ฉฐ,๊ฐ ์์ ์ ์ด์ ์์ ์ ์๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ,ํ ์์ ์ด ์์ํ๋ฉด
12. ๋ธ๋ผ์ฐ์ ์ ์๋๋ฐฉ์์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. HTML ์ฝ๊ณ ๋ญ ํ์ฑํ๊ณ ๋ง ๊ทธ๋ฐ ๊ฑฐ ์ง๋ฌธ์ธ๊ฐ์..? ์ฌ์ฉ์์ ์ ๋ ฅ: ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ฃผ์์ฐฝ์ URL(Uniform Resource Locator)์ ์ ๋ ฅํ๊ฑฐ๋, ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๊ทธ ์น ํ์ด์ง์ ์ ๊ทผํ๋ ค๋ ์์ฒญ์ด ์์๋ฉ๋๋ค. DNS ์กฐํ: ์ ๋ ฅ๋ URL์ด ์ฌ๋์๊ฒ๋ ์ฝ๊ธฐ ์ฝ์ง๋ง ์ปดํจํฐ๊ฐ ์ดํดํ ์...
์???GET:๋ฐ์ดํฐ๋ URL์ ํฌํจ๋์ด ์ ์ก๋๊ณ ,URL์ ํตํด ์ ์ก๋๋ฏ๋ก ๋ณด์์ ์ทจ์ฝํฉ๋๋ค.POST:๋ฐ์ดํฐ๋ HTTP ์์ฒญ์ ๋ณธ๋ฌธ(body)์ ํฌํจ๋์ด ์ ์ก๋๊ณ ,๋ฐ์ดํฐ๊ฐ ๋ณธ๋ฌธ์ ํฌํจ๋์ด ์ ์ก๋๋ฏ๋ก, URL์ ๋ ธ์ถ๋์ง ์์ต๋๋ค.์ค???GET: ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ ,

์ฟ ํค, ์ธ์ , ์น์คํ ๋ฆฌ์ง์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด๋ณด์ธ์ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง(CSR)๊ณผ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR)์ ๊ฐ๋ ์ ๋ํด ์ค๋ช ํด์ฃผ์๊ณ , ์ฅ/๋จ์ ์ ์ค๋ช ํด์ฃผ์ธ์.TCP/UDP์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.http, https ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.๋ผ์ดํ์ฌ์ดํด์ด ์๋ฏธํ๋
์ฟ ํค๋ ๋ธ๋ผ์ฐ์ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ฒ๋ก ์ ์ก๋๋ฉฐ, ์ธ์ ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ธ์ ์๋ณ์๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํฉ๋๋ค. ์น ์คํ ๋ฆฌ์ง๋ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ฒ๋ก ์๋์ผ๋ก ์ ์ก๋์ง ์์ต๋๋ค.ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง : SPA(์ฑ๊ธํ์ด์ง๋ ๋๋ง)์์ ์๋ฐ
์ฟ ํค๋ ๋ธ๋ผ์ฐ์ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ฒ๋ก ์ ์ก๋๋ฉฐ, ์ธ์ ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ธ์ ์๋ณ์๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํฉ๋๋ค. ์น ์คํ ๋ฆฌ์ง๋ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ฒ๋ก ์๋์ผ๋ก ์ ์ก๋์ง ์์ต๋๋ค.ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง : SPA(์ฑ๊ธํ์ด์ง๋ ๋๋ง)์์ ์๋ฐ
https://velog.io/@yjcoyjco/%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98-%EC%9B%B9%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80
ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง : SPA(์ฑ๊ธํ์ด์ง๋ ๋๋ง)์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋์, ํ๋์ ํ์ด์ง์ ๋ชจ๋ ์์๋ค์ ์ฒ์ ํ ๋ฒ ๋ ๋๋ง ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ๋ ์ฌ๊ธฐ์ ๋ณต์๋ณต์ ์ ์ฉ๋๋..?์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง : ๊ฐ๊ฐ ํ์ด์ง์ HTML ์์๋ฅผ ์๋ฒ์์ ๋ค ๋๋ฑ๋๋ฑ ํด์ค์ ์๋ต ๋ณด๋ด์ฃผ
TCP (Transmission Control Protocol):TCP๋ ํต์ ์ ์์ํ๊ธฐ ์ ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ , ํต์ ์ด ๋๋๋ฉด ์ฐ๊ฒฐ์ ํด์ ํ๋ ์ฐ๊ฒฐ ์งํฅ ํ๋กํ ์ฝ์ ๋๋ค. ์ด๋ฅผ ํตํด ์์ ์ ์ด๊ณ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅํฉ๋๋ค.์์ ์ธก์์ ์ ์ก ์ธก์ผ๋ก๋ถํฐ ์์ ํ์ธ
HTTP๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฌธ์ผ๋ก ์ ์กํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ ๋์ ์ํธํ๋์ง ์์ต๋๋ค.์ํธํํ์ง ์๊ธฐ ๋๋ฌธ์ ์ค๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ก์ฑ๊ฑฐ๋ ์์ ํ๋ ๊ณต๊ฒฉ์ด ์ฝ๊ฒ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์น ํ์ด์ง ๋ก๋ฉ, ์ ๋ณด ๊ฒ์ ๋ฑ์์ ์ฌ์ฉ๋ฉ๋๋ค.HTTPS๋
๋ผ์ดํ์ฌ์ดํด์ ์ด๋ค ์์คํ , ๊ฐ์ฒด, ๋๋ ์ํํธ์จ์ด ์ปดํฌ๋ํธ๊ฐ ์์ฑ๋๊ณ ๋์ํ๋ฉฐ ์๋ฉธํ๋ ๊ณผ์ ์ ๋ํ๋ด๋ ๊ฐ๋ ์ ๋๋ค. ๋ผ์ดํ์ฌ์ดํด์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ ๋จ๊ณ์์๋ ํน์ ํ ์์ ์ด ์ํ๋ฉ๋๋ค.๐ ๋ผ์ดํ์ฌ์ดํด
React ์ปดํฌ๋ํธ์ ๋ผ์ดํ์ฌ์ดํด์ ์ปดํฌ๋ํธ๊ฐ ์์ฑ, ์ ๋ฐ์ดํธ, ์ ๊ฑฐ๋๋ ๊ณผ์ ์์ ์ผ์ด๋๋ ๋ฉ์๋๋ค์ ๋ํ๋ ๋๋ค.์์ฑ ๋จ๊ณ:constructor: ์ปดํฌ๋ํธ๊ฐ ์์ฑ๋ ๋ ์คํ๋๋ ๋ฉ์๋๋ก, ์ด๊ธฐ ์ํ ์ค์ ๋ฑ์ ์ํํฉ๋๋ค.componentDidMount: ์ปดํฌ๋ํธ๊ฐ DO
21. ์ฐ๋กํ๋ง๊ณผ ๋๋ฐ์ด์ฑ์ ๊ฐ๋ ๊ณผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
SEO๋ ๋ฌด์์ด๊ณ SEO๋ฅผ ์งํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.์ด๋ฏธ์ง ์ต์ ํ์ ๋ํด ์ค๋ช ํด์ฃผ์๊ณ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํ ๊ฒฝํ์ด ์๋ค๋ฉด ์ค๋ช ํด์ฃผ์ธ์.ํ๋ก ํธ์๋ ์ฑ๋ฅ์ต์ ํ๋ฅผ ์ํ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๋ง์ํด์ฃผ์๊ณ ๊ทธ ์ค ํ๋ก์ ํธ์์ ํ์ฉํ
23. SEO๋ ๋ฌด์์ด๊ณ SEO๋ฅผ ์งํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
24. ์ด๋ฏธ์ง ์ต์ ํ์ ๋ํด ์ค๋ช ํด์ฃผ์๊ณ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
25. ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํ ๊ฒฝํ์ด ์๋ค๋ฉด ์ค๋ช ํด์ฃผ์ธ์.
26. ํ๋ก ํธ์๋ ์ฑ๋ฅ์ต์ ํ๋ฅผ ์ํ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๋ง์ํด์ฃผ์๊ณ ๊ทธ ์ค ํ๋ก์ ํธ์์ ํ์ฉํ ๊ฒฝํ์ด ์๋ค๋ฉด ์ค๋ช ํด์ฃผ์ธ์.
27. Javascript event loop์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.

28. Array, LinkedList์ ๋ํด ์ค๋ช ํด์ฃผ์๊ณ ๊ฐ๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๋ง์ํด์ฃผ์ธ์.
: ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ์๋น์คhttps://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.html
๋ผ์ดํ์ฌ์ดํด, ์ฝ๋ฐฑํจ์, ๋น๋๊ธฐ ํฌํจ ๊ตฌ์ฒด์ ์ธ ์ดํด์ฟ ํค, ์ธ์ vs ์น์คํ ๋ฆฌ์ง๋ก ์ ๋ถ๋ฅ,์ฟ ํค ์ข ๋ฅ, ์น ์คํ ๋ฆฌ์ง ์ข ๋ฅ๋ณ ๊ธฐ๋ฅ, ํน์ง ์ดํด์ค์ ์ฉ๋ก ์์ง๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋ ์ข ๋ฅ ์ถ๊ฐ ์์งSEO ์งํ ๋ชจ๋ ๋ฆฌ์กํธ Deep Dive
๋์ ์๋ฐ๋๋ ๊ฐ๋ ์ด๋ผ๊ธฐ๋ณด๋ค๋์ฝ๋๋ฅผ ์ฝ๊ณ ํด์? ํ๊ฐ? ํ๋ค๋ ์ ์์ ๋งฅ์ ๊ฐ์ด ํ๋ค.๊ทธ๋ฐ๋ฐ ์ปดํ์ผ์ ์ ์ฒด ์ฝ๋ ์ฒ์๋ถํฐ ๋๊น์ง,์คํ ์ด์ ์ ์ด๋ฃจ์ด์ ธ์, ์๋ฌ๊ฐ ์์ด์ผ ๋ฐํ์์ผ๋ก ๋์ด๊ฐ๋ ๊ฒ์ด๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ธํฐํ๋ฆฌํฐ๋ ๋ฐํ์์์ ํ์ค ํด์, ํ์ค ์คํ์๋ฐ๋ก๋ฐ๋ก ์ค์
๊ทธ ์ด๋ฒคํธ๊ฐ์ฌ, ๋ฑ ์ด๊ฑฐ ํ๋์๋ง ์ ์ฉ๋์ด์ผ ํ๋๋ฐ ๋ง ๊ฐ์ด ๋๋ฆฌ๊ฐ ๋๋ ๊ฒ์ผ๊ฑธ์?๋ถ๋ชจ๊ฐ ์์ ์์ํํ ์ด๋ฒคํธ ์์..?๊ฐ ์ํฉ์ ๊ฐ์ ํ๋ผ๋ ์กฐ๊ฑด์ด, ์๋นํ ๊น๋ค๋ก์ด ๋ต๋ณ์ด ๋ ๊ฒ์์ ๋ณด์ฌ์ค๋ค.this ๋ฐ์ธ๋ฉ์ ์ ํ๋ ๊ฒ ํ์ดํํจ์์๋๊ฐ?ํ๋กํ ํ์ ์ด๋ผ๋ ๋ด๋ถ ์ฌ๋กฏ์ด
๊ทธ ์ด๋ฒคํธ๊ฐ์ฌ, ๋ฑ ์ด๊ฑฐ ํ๋์๋ง ์ ์ฉ๋์ด์ผ ํ๋๋ฐ ๋ง ๊ฐ์ด ๋๋ฆฌ๊ฐ ๋๋ ๊ฒ์ผ๊ฑธ์?๋ถ๋ชจ๊ฐ ์์ ์์ํํ ์ด๋ฒคํธ ์์..?๊ฐ ์ํฉ์ ๊ฐ์ ํ๋ผ๋ ์กฐ๊ฑด์ด, ์๋นํ ๊น๋ค๋ก์ด ๋ต๋ณ์ด ๋ ๊ฒ์์ ๋ณด์ฌ์ค๋ค.this ๋ฐ์ธ๋ฉ์ ์ ํ๋ ๊ฒ ํ์ดํํจ์์๋๊ฐ?ํ๋กํ ํ์ ์ด๋ผ๋ ๋ด๋ถ ์ฌ๋กฏ์ด
๊ทธ ์ด๋ฒคํธ๊ฐ์ฌ, ๋ฑ ์ด๊ฑฐ ํ๋์๋ง ์ ์ฉ๋์ด์ผ ํ๋๋ฐ ๋ง ๊ฐ์ด ๋๋ฆฌ๊ฐ ๋๋ ๊ฒ์ผ๊ฑธ์?๋ถ๋ชจ๊ฐ ์์ ์์ํํ ์ด๋ฒคํธ ์์..?๊ฐ ์ํฉ์ ๊ฐ์ ํ๋ผ๋ ์กฐ๊ฑด์ด, ์๋นํ ๊น๋ค๋ก์ด ๋ต๋ณ์ด ๋ ๊ฒ์์ ๋ณด์ฌ์ค๋ค.this ๋ฐ์ธ๋ฉ์ ์ ํ๋ ๊ฒ ํ์ดํํจ์์๋๊ฐ?์๋ฐ์คํฌ๋ฆฝํธ์์ this๋ ํ
๐ก ์ด๋ฒคํธ ์ ํ(์บก์ฒ๋ง, ๋ฒ๋ธ๋ง), ์ด๋ฒคํธ ์์
๐ก ์ด๋ฒคํธ ์ ํ(์บก์ฒ๋ง, ๋ฒ๋ธ๋ง), ์ด๋ฒคํธ ์์
์๋ฐ์คํฌ๋ฆฝํธ์์ this๋ ํ์ฌ ์คํ ์ปจํ ์คํธ(context)์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ํน๋ณํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค. ์คํ ์์น์ ๋ฐ๋ผ this๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ด ๋ฌ๋ผ์ง๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ฃผ๋ก ํจ์ ๋ด์์ this๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค.๐ ์ ์ญ ์ปจํ ์คํธ: ์ ์ญ ์ปจํ ์คํธ์์ this๋
๐ ์ฝ๋ฉ์ ํ ํ๋กํ ํ์ ๊ฐ์
๐ฅ ๊ฐ์ฒด, ์์๊ฐ vs ๊ฐ์ฒด๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ์ ์ํด ๋ณต์ฌํ ๋ ๋ฐ์ํ๋ ์ฃผ์ ์ค๋ฅ๋ ์๊ธฐ์น ์์ ๋ณ๊ฒฝ์ด๋ค.์ด๋ ํ ๊ฐ์ฒด์ ์์ฑ์ ์์ ํ ๋,ํด๋น ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง ๋ค๋ฅธ ๊ฐ์ฒด๋ค๋ ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค.์์์น ๋ชปํ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๋ฐ์ดํฐ๊ฐ ์๋์น ์๊ฒ ์์ ๋ ์ ์
๐ซง nullish, null vs undefined, falsy
๐ ๋น๊ต์ฐ์ฐ์
์ฐธ์กฐ์ ์ํ ๋ณต์ฌ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ(๋ถ๋ณ์ฑ) garbage collection? garbage collector๊ฐ ์๋ ์ ํด ๋ฉ๋ชจ๋ฆฌ ๋์ ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ ๋ง๊ธฐ ์ํด event.stopPropagation() ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ํน์ ์ด๋ฒคํธ๊ฐ ๋ถ๋ชจ ์์๋ก ์ ํ๋์ง ์๋๋ก ์ฐจ๋จํ ์ ์์ต๋๋ค. ํธ์คํธ ๊ฐ์ฒด๋ JavaScri...
8. ์ด๋ฒคํธ ๋ฃจํ์ ์คํ ์ปจํ ์คํธ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. 9. ํด๋ก์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. 10. html์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ก๋ฉํ๋ script ํ๊ทธ๋ ๋ณดํต body ํ๊ทธ์ ์ตํ๋จ์ ์์นํ๋๋ฐ์. ๊ทธ ์ด์ ๊ฐ ๋ฌด์์ผ๊น์? 11. ์ฌ๋ฌ ๋น๋๊ธฐ ํจ์๋ฅผ ๋์์ ๋ณ๋ ฌ๋ก ํธ์ถํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? 12. Promise๋ฅผ ์ฌ์ฉํด ํจ์์ ํ์์์ ๊ธฐ๋ฅ...
HTML์์ <script> ํ๊ทธ๋ฅผ ๋ณดํต <body> ํ๊ทธ์ ์ตํ๋จ์ ๋ฐฐ์นํ๋ ์ด์ ๋ ํ์ด์ง์ ๋ก๋ฉ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ์ต์ ํํ๊ธฐ ์ํด์์ด๋ค.๋ ๋๋ง ์ฐจ๋จ ๋ฐฉ์ง๋ธ๋ผ์ฐ์ ๋ HTML์ ์์์ ์๋๋ก ์์ฐจ์ ์ผ๋ก ํ์ฑํ๋ฉฐ ํ๋ฉด์ ๋ ๋๋งํฉ๋๋ค.
์ฌ๋ฌ ๋น๋๊ธฐ ํจ์๋ฅผ ๋์์ ๋ณ๋ ฌ๋ก ํธ์ถํ๋ ค๋ฉด, JavaScript์์๋ Promise.all ๋๋ Promise.allSettled ๊ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ค์ ๋น๋๊ธฐ ์์ ๋ค์ ๋ณ๋ ฌ๋ก ์คํํ๊ณ , ๋ชจ๋ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.Promise.all์ ๋ชจ๋
Promise๋ฅผ ์ฌ์ฉ, ํจ์์ ํ์์์ ๊ธฐ๋ฅ ๊ตฌํ์๋ Promise.race() ๋ฉ์๋๊ฐ ํจ๊ณผ์ ์ด๋ค. Promise.race()๋ ์ ๋ฌ๋ฐ์ ์ฌ๋ฌ ๊ฐ์ Promise ์ค๊ฐ์ฅ ๋จผ์ ์๋ฃ๋ Promise๋ฅผ ๋ฐํํ๋ฏ๋ก, ์ด๋ฅผ ํ์ฉํด ํ์์์ ๋ก์ง์ ๊ตฌํํ ์ ์๋ค.Promis

ํํ์์ ๊ฐ์ ์์ฑํ๋ ์ฝ๋์ ์กฐ๊ฐ. ํํ์์ ํญ์ ํ๊ฐ๋์ด ํ๋์ ๊ฐ์ ๋ฐํํ๋ค.๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํํ์์ด๋ ๋ฌธ์์ ์ฌ์ฉ๋ ์ ์๋ค.๋ณ์์ ํ ๋น ๊ฐ๋ฅํ๊ณ , ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ ์ ์๋ค.ํํ์์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฌธ์ฒ๋ผ ์ฌ์ฉ๋ ์๋ ์๋ค.โก๏ธ ํํ์์ ์คํ ๊ฒฐ๊ณผ
์๋ฐ์คํฌ๋ฆฝํธ์ ์คํ ์ปจํ ์คํธ(Execution Context)๋ ์ฝ๋๊ฐ ์คํ๋๋ ํ๊ฒฝ์ ๋งํ๋ฉฐ,๋ณ์, ํจ์, ๊ฐ์ฒด ๋ฑ์ด ์ด๋ป๊ฒ ์ ์ฅ๋๊ณ ์ ๊ทผ๋๋์ง๋ฅผ ์ ์ํ๋ค.์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์คํ์ ๊ธฐ๋ณธ ๋์ ์๋ฆฌ ์ดํด์ ํต์ฌ ๊ฐ๋ .์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์ฒ์ ์คํ๋ ๋ ์์ฑ๋ฉ๋๋ค.์ ์ญ
13. ๋ณ์, ์์, ๋ฐ์ดํฐ ํ์ , ์ฐ์ฐ์, ํจ์ ์ค๋ช
์๋ฐ์คํฌ๋ฆฝํธ์์ ํด๋ก์ (Closure)๋, ํจ์๊ฐ ์ ์ธ๋ ๋์ ์ธ๋ถ ๋ ์์ปฌ ํ๊ฒฝ(Lexical Environment)์ ๊ธฐ์ตํ์ฌ, ํด๋น ํจ์๊ฐ ๊ทธ ํ๊ฒฝ ๋ฐ์์ ํธ์ถ๋๋๋ผ๋ ๊ทธ ํ๊ฒฝ์ ์ ๊ทผํ ์ ์๋ ๊ธฐ๋ฅ์ ๋งํ๋ค.โก๏ธ ํด๋ก์ ๋ ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ์ ์กฐ
์๋ฐ์คํฌ๋ฆฝํธ์ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์กฐ๊ฑด๋ฌธ์ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํํ๊ฑฐ๋ ์คํํ์ง ์๋๋ก ํ๋ค.if ๋ฌธ์ฃผ์ด์ง ์กฐ๊ฑด์ด true์ผ ๋ ์ฝ๋ ๋ธ๋ก์ ์คํํฉ๋๋ค.javascript์ฝ๋ ๋ณต์ฌif (์กฐ๊ฑด) { // ์กฐ๊ฑด์ด ์ฐธ
16. ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ค๋ช ํด์ฃผ์ธ์. ์์๊ฐ ์์ด์ ์ธ๋ฑ์ค๋ก ๊ฐ์ ์ฐธ์กฐํ๋ ๋ฐฐ์ด, ํค-๊ฐ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ชจ์๋๋ ๊ฐ์ฒด 17. ์๋ฐ์คํฌ๋ฆฝํธ ES6 ๋ฌธ๋ฒ์์ ์๋ก ์ถ๊ฐ๋ ๋ฌธ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๋ฐ์ดํฐ ํ์ ์ผ๋ก๋ Symbol, ํค์๋๋ก๋ let,

์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์กฐ์ํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์๋ฃ ๊ตฌ์กฐ์ ๋๋ค. ๋ ๊ฐ์ง ๋ชจ๋ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, ๊ฐ๊ฐ์ ํน์ง๊ณผ ์ฉ๋๊ฐ ๋ค๋ฆ ๋๋ค. ์๋์์ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.๋ฐฐ์ด (Array)์ ์๋ฐฐ์ด์ ์์๊ฐ ์๋ ๋ฐ์ดํฐ์ ์งํฉ์ ๋๋ค.๊ฐ๊ฐ
ES6(ECMAScript 2015)์์๋ JavaScript์ ์์ฐ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ๋ค์ํ ์๋ก์ด ๋ฌธ๋ฒ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ค์์ ์ฃผ์ ES6 ๋ฌธ๋ฒ ๊ธฐ๋ฅ๋ค์ ๋๋ค:๋ณ์ ์ ์ธlet: ๋ธ๋ก ๋ฒ์ ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค.const: ๋ธ๋ก ๋ฒ์ ์์๋ฅผ ์ ์ธํฉ๋๋ค. ๊ฐ ๋ณ
์๋ฐ์คํฌ๋ฆฝํธ์์ ์ผ๊ธ ๊ฐ์ฒด(first-class citizen)๋ก์์ ํจ์๋, ํจ์๊ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ๋ค๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ทจ๊ธ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฆ, ํจ์๋ ๋ณ์์ ํ ๋น๋๊ฑฐ๋, ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋๊ฑฐ๋, ํจ์์์ ๋ฐํ๊ฐ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.์๋ฐ์คํฌ๋ฆฝํธ์
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๊ณผ์ ๊ณผ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ๊ฐ๋ ์ ๋ณ์ ์ ์ธ, ์ด๊ธฐํ, ๊ทธ๋ฆฌ๊ณ ์คํ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค. ์๋์ ์ด๋ฅผ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ ์์ญ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ๋ ๊ฐ์ง ์ฃผ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฌ์ฉํฉ๋๋ค

Set์ JavaScript์์ ๊ณ ์ ํ ๊ฐ์ ์งํฉ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฐ์ฒด์ด๋ค.๋ฐฐ์ด๊ณผ ๋น์ทํด ๋ณด์ด์ง๋ง, ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์๋๋ค๋ ์ ์ด ๋ค๋ฅด๋ค.(์ธ๋ฑ์คX, ์ค๋ณต ๊ฐX)์ค๋ณต ์ ๊ฑฐ : Set์ ์ถ๊ฐ๋๋ ๊ฐ์ ์๋์ผ๋ก ์ค๋ณต์ด ์ ๊ฑฐ๋๋ค.์์ ์ ์ง : ์ฝ์ ๋ ๊ฐ์ ์์๋ฅผ ์ ์งํ

์คํ ์ปจํ ์คํธ๋ JavaScript ์ฝ๋๊ฐ ์คํ๋๋ ๋์ ์์ฑ๋๋ ํ๊ฒฝ์ผ๋ก, ์ฝ๋์ ์คํ์ ํ์ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค. ์คํ ์ปจํ ์คํธ๋ ํฌ๊ฒ ์ธ ๊ฐ์ง ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:VariableEnvironmentLexicalEnvironmentthis ๋ฐ์ธ๋ฉ๊ฐ ์์์ ์ญํ ๊ณผ
22. ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ฐฑํจ์์ ๊ฐ๋ ๊ณผ ์์ ์ค๋ช
์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฝ๋ฐฑ ํจ์๊ฐ ์ ๋ฌ๋ ํจ์์๊ฒ ์ ์ด๊ถ์ด ์ด์๋๋ค๋ ๊ฒ์ ์ฝ๋ฐฑ ํจ์์ ์คํ์, ์ ๋ฌ๋ฐ์ ํจ์๊ฐ ๊ฒฐ์ ํ๋ค๋ ์๋ฏธ์ด๋ค.์ฆ, ์ฝ๋ฐฑ ํจ์๋ ํธ์ถ ์์ ๊ณผ ์คํ ์์๋ฅผ ์ ๋ฌ๋ฐ์ ํจ์์ ๋ ผ๋ฆฌ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.์ด๋ ๋น๋๊ธฐ ์์ ์์ ํนํ ์ค์ํ๋ค.์ฆ์ ์คํ : ํจ์ ๋ด๋ถ์
30. CORS์ ์ฑ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.

๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ ๋, ์ฝ๋ฐฑ ํจ์๊ฐ ์ค์ฒฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉด์ ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ํฌ๊ฒ ๋จ์ด์ง๋ ๋ฌธ์ ๋ฅผ ๋งํฉ๋๋ค.์ด๋ ์ฝ๋๊ฐ ๋จ๊ณ์ ์ผ๋ก ์คํ๋๋ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋น๋๊ธฐ ์์ ๋ง๋ค ์ฝ๋ฐฑ์ ์ ์ํ๊ณ , ์ด๋ฅผ ๋ค์ ๋ค๋ฅธ ์ฝ๋ฐฑ์ผ๋ก ์ฐ๊ฒฐํ ๋ ๋ฐ์ํฉ๋๋ค.์ฝ๋ฐฑ ์ง์ฅ์ ๋ํ์ ์ธ ์๋
JavaScript์์ DOM(Document Object Model)์ HTML์ด๋ XML ๋ฌธ์๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ์กฐ์ํ ์ ์๋๋ก ๋ฌธ์๋ฅผ ํํํ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ๊ตฌ์กฐ์ ๋๋ค. DOM์ ๋ฌธ์๋ฅผ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ํํํ๋ฉฐ, ๊ฐ ์์์ ์์ฑ์ ๋ ธ๋(Node)๋ก ๋ํ๋ ๋๋ค. ์ด๋ฅผ ํต
JavaScript์์์ ํด๋์ค ๋ฌธ๋ฒ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ ์ง์ํ๊ธฐ ์ํด ๋์ ๋ ๋ฌธ๋ฒ์ ๋๋ค. ES6(ECMAScript 2015)๋ถํฐ ์ ๊ณต๋๋ฉฐ, ๊ฐ์ฒด ์์ฑ ๋ฐ ๊ด๋ฆฌ๊ฐ ๋ ์ง๊ด์ ์ด๊ณ ๋ช ํํ๊ฒ ํํ๋ฉ๋๋ค. ์ฃผ์ ๊ฐ๋ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.ํด๋์ค (Class)ํด๋์ค๋

์์ ๋ณต์ฌ (Shallow Copy)์์ ๋ณต์ฌ๋ 1๋จ๊ณ ๊น์ด์ ๊ฐ์ฒด ์์ฑ๋ค๋ง ๋ณต์ฌํฉ๋๋ค.๊ฐ์ฒด๋ ๋ฐฐ์ด ์์ ์ค์ฒฉ๋ ๊ฐ์ฒด(Nested Object)๊ฐ ์์ผ๋ฉด, ์ค์ฒฉ๋ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ๋ง ๋ณต์ฌ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์๋ณธ ๊ฐ์ฒด์ ์ค์ฒฉ๋ ๊ฐ์ฒด๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์์ ๋ณต์ฌ๋ ๊ฐ์ฒด๋ ์ํฅ์ ๋ฐ์ต๋๋ค

JavaScript์์ ๋ถ๋ณ์ฑ(immutability)์ด ์ค์ํ ์ด์ ๋ ์ฝ๋์ ์์ธก ๊ฐ๋ฅ์ฑ, ๋๋ฒ๊น ์ ์ฉ์ด์ฑ, ํจ์จ์ ์ธ ์ํ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ๋๋ฌธ. ์ํ ๋ณ๊ฒฝ ์ถ์ ์ ์ฉ์ด์ฑ๋ถ๋ณ์ฑ์ ์ ์งํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก, ์ํ๊ฐ ์ธ์ , ์ด๋์, ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์๋์ง ๋ช
์ด๋ฒคํธ ์์์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.์ด๋ฒคํธ ์์(Event Delegation)์ด๋ฒคํธ ์์์ JavaScript์์ ํจ์จ์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก, ๋ถ๋ชจ ์์์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ค์ ํ์ฌ ํ์ ์์์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ DOM ํธ๋ฆฌ์์
CORS(Cross-Origin Resource Sharing)๋ ๋ธ๋ผ์ฐ์ ์์ ๊ต์ฐจ ์ถ์ฒ ์์ฒญ(cross-origin requests)์ ์์ ํ๊ฒ ์ ์ดํ๊ธฐ ์ํด ๋์ ๋ ๋ณด์ ์ ์ฑ ์ ๋๋ค. ์ด ์ ์ฑ ์ ํ ์ถ์ฒ(origin)์์ ์คํ ์ค์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ถ์ฒ์ ๋ฆฌ์
๋น๋๊ธฐ ์์ ์ด ์ต์ข ์ ์ผ๋ก ์ฑ๊ณตํ๋์ง ์คํจํ๋์ง๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด.๋ชจ๋ํ : ๋ ๋ฆฝ์ ์ธ ํจ์๋ก ๋ถ๋ฆฌํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋๋ฐ, ์ฌ๊ธฐ์ ๊ธฐ ์ฎ์ฌ์๊ธฐ ๋ณด๋ค๋ ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๊ธฐ ์ฉ์ดํจ.์ฅ์ ์ฒด์ด๋์ผ๋ก ์ฌ๋ฌ ๋น๋๊ธฐ ์์ ์ ๋จ๊ณ์ ์ผ๋ก ๋๋ ์ ์๋ค.๊ฐ .then()์์ ๋ฐํ ๊ฐ์ ํตํด ๋ค์
์ด๋ฒคํธ ๋ฃจํ, ํ, ์ฝ ์คํhttps://seo-tory.tistory.com/83
์ํ๊ด๋ฆฌ๋ ์ ํ ๊น์? ๊ทธ๋ฆฌ๊ณ ํ์ ์ํ๊ด๋ฆฌ๋ ์ด๋ป๊ฒ ํ์๋์?๋ต๋ณ)์๋: ์ํ ๊ด๋ฆฌ์ ๋ชฉ์ ๊ณผ ํ์ ์ํ ๊ด๋ฆฌ ํจํด ํ์ ๋ฐ ์ ์ญ ์ํ ๊ด๋ฆฌ์ ๋ํด์๋ ์ถ๊ฐ ๋ต๋ณ(์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ)์ ๊ธฐ๋ํ๋ ์ง๋ฌธ.๋ชจ๋ฒ ๋ต์: ์ํ๊ด๋ฆฌ์ ํ์์ฑ์ ๋ฆฌ์กํธ์ MVVM ํจํด๊ณผ ๊ด๋ จ์ง์ด
๋ต๋ณ)์๋: ๋ฆฌ์กํธ์ ๊ธฐ๋ณธ ์๋ฆฌ์ ๊ฐ์ ๋์ ํต์ฌ์ ์ดํดํ๊ณ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฅํ๋ฉด useState์์ ๊ด๊ณ์ฑ๋ ์ค๋ช ํ ์ ์๋์ง ํ์ธํ๋ ์ง๋ฌธ๋ชจ๋ฒ ๋ต์: ์ค์ ๋์ HTML์ ์์๋ฅผ ํธ๋ฆฌ๋ก์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ๋ชจ๋ธ์ด๋ฉฐ, ๋ธ๋ผ์ฐ์ ๋ ์ค์ ๋์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด์
๋ต๋ณ)์๋: ์ปดํฌ๋ํธ ๋ผ์ดํ ์ฌ์ดํด๊ณผ useEffect์ ์ดํด๋๋ฅผ ๊ฐ์ง๊ณ ์๋์ง, ๊ฐ ๋ผ์ดํ ์ฌ์ดํด์์ ์ด๋ค ์์ ์ ์ฒ๋ฆฌํด์ผ ํ๋์ง ์ค๋ช ํ ์ ์๋์ง ํ์ธํ๋ ์ง๋ฌธ.๋ชจ๋ฒ ๋ต์: ์ปดํฌ๋ํธ ๋ผ์ดํ ์ฌ์ดํด์ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ์๋ฉด create-mount-update-unmoun
๋ต๋ณ)์๋: ์์นซ ์ง๋์น๊ธฐ ์ฌ์ด ๋ฆฌ์กํธ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ํด ํ์ธํ๋ ์ง๋ฌธ๋ชจ๋ฒ ๋ต์: ๋ค, ๋ฆฌ์คํธ ๋ ๋๋ง์์ key ์์ฑ์ ๋ฆฌ์กํธ์๊ฒ ์์ด์ ๊ฐ ์์๋ฅผ ์๋ณํ๋ ๋ฐ์ ์ฌ์ฉ๋๋ ๊ฐ์ ๋๋ค. ์ด key ๊ฐ ์์ด์ผ ๋ฆฌ์กํธ๋ ๊ฐ์ ๋์์ ์ด๋ค ์์๊ฐ ์ด๋์ ์๊ณ , ์ด๋ป๊ฒ ์์๊ฐ
๋ต๋ณ)์๋: ์์นซ ์ง๋์น๊ธฐ ์ฌ์ด ๋ฆฌ์กํธ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ํ์ธํ๋ ์ง๋ฌธ. ๊ฐ๋ฐ์ ํธ๊ธฐ์ฌ์ด ๋ง์์ผ ์ ์ ์๋ ํญ๋ชฉ์ ๋๋ค.๋ชจ๋ฒ ๋ต์: ๋จ๋์ง์ ์ ์ผ๋ก ๋ง์๋๋ฆฌ์๋ฉด ๋ฐ๋ก ๋ฆฌ์กํธ์ StrictMode ๋๋ฌธ์ ๋๋ค. ์ด ๋ชจ๋๋ฅผ ์ผ๊ฒ ๋๋ฉด ์ค๋ฅ๋ฅผ ํผํ ์ ์๋๋ก ์๊ฒฉํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์
๋ต๋ณ)์๋: ์ปค์คํ ํ ์ ์ฌ์ฉํ ์ ๋๋ก ์ฝ๋ ํ๋ฆฌํฐ์ ๊ด์ฌ์ด ์๋์ง ํ์ ํ๋ ค๋ ์ง๋ฌธ๋ชจ๋ฒ ๋ต์: ๋ค ์ ๋ ์ต๊ทผ ํ๋ก์ ํธ์์ ์ปค์คํ ํ ์ ์ฌ์ฉํ ๊ฒฝํ์ด ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ์ ๋ง ์ ์ฌ์ฉํ๊ณ ์๋ ๊ธฐ์ ์ด๊ธฐ๋ ํฉ๋๋ค. ์ปค์คํ ํ ์ ์ฌ์ฉํ๋ค๋ฉด ๊ธฐ์กด์ ์ปดํฌ๋ํธ ๋ด๋ถ์ ์์ฑ๋
๋ต๋ณ)์๋: ์ฑ๋ฅ ์ต์ ํ์ ๊ด์ฌ์ด ์๋์ง ํ์ธํ๋ ์ง๋ฌธํ: ์ฌ์ฉ ์์๋ฅผ ๋ค๋ฉด ์ข์ต๋๋ค.๋ชจ๋ฒ ๋ต์: ๋ฆฌ์กํธ์์ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง ๋๋ ๊ธฐ์ค์ ์ดํด๋ณด์๋ฉด ๋ํ์ ์ผ๋ก ๋ฐ์์จ props์ ๋ณ๊ฒฝ์ด ์์ต๋๋ค. props๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํ์ ์ปดํฌ๋ํธ ๋ชจ๋๊ฐ ๋ฆฌ๋ ๋๋ง๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง
๐๏ธ ๊ณ ์ฐจ ์ปดํฌ๋ํธ(HOC)๋?๐ฎ DOM vs Virtual DOMReact.Memo ๋ณด๊ธฐ
React.Suspense์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๋ต๋ณ) ์๋: ๋น๋๊ธฐ ๋ฐ์ดํฐ ๋ก๋ฉ ๋ฐ ๋ ๋๋ง ๊ณผ์ ์ ์ดํดํ๊ณ Suspense๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ๋ ์ง๋ฌธ ๋ชจ๋ฒ ๋ต์: ๋ค ๋ฆฌ์กํธ์ Suspense๋ ๋น๋๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ฉํ ๋, ๊ทธ
๋ฆฌ์กํธ์ ์ํ๊ฐ ๋ถ๋ณ์ฑ์ ์ ์งํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์?๋ต๋ณ)์๋ : ๋ฌด์์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ ๊ฐ๋ ์ ๋ํด ํ์ธํ๋ ์ง๋ฌธ๋ชจ๋ฒ ๋ต์ : ๋ค ๋ฆฌ์กํธ๋ ๋ถ๋ณ์ฑ์ ์ ์งํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๊ทธ๋์ ์ ์์๋ค์ํผ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ง์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋๋ผ, ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด
React.Suspense์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.๋ต๋ณ)์๋: ๋น๋๊ธฐ ๋ฐ์ดํฐ ๋ก๋ฉ ๋ฐ ๋ ๋๋ง ๊ณผ์ ์ ์ดํดํ๊ณ Suspense๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ๋ ์ง๋ฌธ๋ชจ๋ฒ ๋ต์: ๋ค ๋ฆฌ์กํธ์ Suspense๋ ๋น๋๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ฉํ ๋, ๊ทธ๋ฆฌ๊ณ ๋ก๋ฉ ์ํ๋ฅผ ํ์ํ ๋ ์ฌ์ฉํ๋ฉด ์ข์
๋ฆฌ์กํธ์ ์ ์ด ์ปดํฌ๋ํธ์ ๋น์ ์ด ์ปดํฌ๋ํธ์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.๋ต๋ณ)์๋: ๋ฆฌ์กํธ์ ํผ์ ์ด๋ป๊ฒ ๋ค๋ฃจ์๋์ง ํ์ธํ๋ ์ง๋ฌธ๋ชจ๋ฒ ๋ต์: ๋ค, ์ ๋ ๋ฆฌ์กํธ์์ ํผ์ ๋ค๋ฃฐ ๋ ์ ์ด ์ปดํฌ๋ํธ์ ๋น์ ์ด ์ปดํฌ๋ํธ์ ๋ํด ์ตํ์ต๋๋ค. ๋ฆฌ์กํธ์์ ํผ์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ ๋ ๊ฐ
flux ์ํคํ ์ฒ๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.๋ต๋ณ)์๋: ๋ฆฌ๋์ค์์ ์ฐ์๋ flux ์ํคํ ์ฒ์ ์๋ ๋ฐฉ์์ ์๊ณ ์๋์ง ํ์ธํ๋ ์ง๋ฌธํ: ๋ง์น ๋ฆฌ๋์ค๋ฅผ ์ธ ๋์ฒ๋ผ ์์๋๋ก ์๊ธฐํ๋ฉด ์ข์ต๋๋ค.๋ชจ๋ฒ ๋ต์: ๋ค flux ์ํคํ ์ฒ๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ธฐ๋ฐ์ผ๋กํ๋ ์ํคํ ์ฒ์ ๋๋ค. ์ด๋ฌํ
๋ฆฌ์กํธ์ Strict ๋ชจ๋๋ ์ ํ์ํ ๊น์?๋ต๋ณ)์๋: ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ฐ๋ฅธ ๋ชจ๋์ ๋ํด ์๊ณ ์๋์ง ํ์ธํ๋ ์ง๋ฌธ๋ชจ๋ฒ ๋ต์: ๋ง์น ESLint๊ฐ ํ์ํ ์ด์ ์ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋์ด๊ณ ๋๊ตฌ๋ ์ง ์๋ฒฝํ ์๋ ์์ต๋๋ค. ๊ทธ๋์ linter๊ฐ ์ํฐ ํจํด์ ์ก์์ฃผ๋ ๊ฒ์ด๊ตฌ์.
SPA์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.๋ต๋ณ)์๋: ์ต๊ทผ ํ๋ก ํธ์๋ ํจ๋ฌ๋ค์์ธ Single Page Application์ ๋ํด ์๊ณ ์๋์ง ํ์ธํ๋ ์ง๋ฌธํ: ์ฅ๋จ์ ์ ๋ช ํํ๊ฒ ์ ์ํ๋ฉด ์ข์ต๋๋ค.๋ชจ๋ฒ ๋ต์: ๋ค, SPA๋ Single Page Application์ ์ฝ์๋ก์ ๋ฆฌ์กํธ
RESTful API์ ๋ํด ์ดํดํ๊ณ ์ค๋ช ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ RESTful API์ ๊ฐ๋ ๊ณผ ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ ์๋์ง ํ๊ฐ.ํ:REST์ ์ ์์ ์์น์ ์ค๋ช ํ์ธ์.RESTful API์ ์ฃผ์ ํน์ง๊ณผ HTTP ๋ฉ์๋(GET, POST, PUT,

RESTful API์ ๋ํด ์ดํดํ๊ณ ์ค๋ช ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:RESTful API์ ๊ฐ๋ ๊ณผ ์ฌ์ฉ๋ฒ ์ดํด ์ฌ๋ถ ํ๊ฐ.ํ:REST์ ์ ์์ ์์น ์ค๋ช .RESTful API์ ์ฃผ์ ํน์ง๊ณผ HTTP ๋ฉ์๋(GET, POST, PUT, DELETE)์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ธ๊ธ.
RESTful API์ ๋ํด ์ดํดํ๊ณ ์ค๋ช ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:RESTful API์ ๊ฐ๋ ๊ณผ ์ฌ์ฉ๋ฒ ์ดํด ์ฌ๋ถ ํ๊ฐ.ํ:REST์ ์ ์์ ์์น ์ค๋ช .RESTful API์ ์ฃผ์ ํน์ง๊ณผ HTTP ๋ฉ์๋(GET, POST, PUT, DELETE)์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ธ๊ธ.
HTTP ํ๋กํ ์ฝ์ ๋ํ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๋์ ๋ฐฉ์์ ์ดํดํฉ๋๋ค.๋ต๋ณ)์๋:HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๋์ ๋ฐฉ์ ์ดํด๋ ํ๊ฐ.ํ:HTTP์ ์ ์์ ์ฃผ์ ํน์ง ์ค๋ช .HTTP ์์ฒญ๊ณผ ์๋ต์ ๊ตฌ์กฐ ์ค๋ช .์ํ ์ฝ๋(200, 404, 500 ๋ฑ)์ ์๋ฏธ ์ธ๊ธ.๋ชจ๋ฒ๋ต์:HTTP
๋น๋๊ธฐ ํต์ ์ ๋ํ ๊ฐ๋ ์ ์ดํดํ๊ณ axios์ fetch๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:๋น๋๊ธฐ ํต์ ์ ๊ฐ๋ ์ดํด, axios์ fetch๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๋ ๋ฅ๋ ฅ ํ๊ฐ.ํ:๋น๋๊ธฐ ํต์ ์ ๊ฐ๋ ๊ณผ ํ์์ฑ ์ค๋ช .axios์ fetch์ ์ฐจ์ด์ ์ธ๊ธ
๋ฆฌ์กํธ์์ ์ฌ์ฉ๋๋ Virtual DOM ์ ๋์๋ฐฉ์์ ์ค๋ช ํ ์ ์๋ค.๋ต๋ณ)์๋:React์ Virtual DOM ๊ฐ๋ ๋ฐ ๋์ ๋ฐฉ์์ ์ดํด ํ๊ฐ.ํ:Virtual DOM์ ์ ์์ ํ์์ฑ ์ค๋ช .Virtual DOM์ด ์ค์ DOM๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์ค๋ช .Virtual D
axios์ instance์ interceptor๋ฅผ ์ดํดํ๊ณ ํ์ฉํ์ฌ ์ข ๋ ๊น์ ์์ค์ API call์ ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:axios์ instance์ interceptor์ ๋ํ ์ดํด, ํ์ฉ ๊ณผ API ํธ์ถ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฅ๋ ฅ ํ๊ฐ.ํ:axios
React-query์ ์ฅ์ ๊ณผ ์ฌ์ฉ๋ฒ์ ์ดํดํ๊ณ ์๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ React-query์ ์ฅ์ ๊ณผ ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ ์๋์ง ํ๊ฐ.ํ:React-query์ ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ์ฅ์ ์ ์ค๋ช ํ์ธ์.React-query๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ์ธ์.React-qu
immer.js๋ ๋ถ๋ณ์ฑ์ ์ ์งํ๋ฉด์ ๊ฐ๋ณ์ ์ผ๋ก ๋ณด์ด๋ ์ฝ๋ ์์ฑ์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ์๊ณ ์์ด. ๊ทผ๋ฐ immer๋ always๋ผ๋ ์๋ฏธ๊ฐ ์๋ค๊ณ ํด. ์ด ์๋ฏธ์ immer.js์ ์ฌ์ฉ์ ์ฐ๊ด์ด ์์ด?Editimmer๋ผ๋ ๋จ์ด์ ์ด์๊ณผ immer.js์ ํต์ฌ ๊ฐ๋ ์ฌ
flux ์ํคํ ์ฒ : ํ์ด์ค๋ถ์์ ๊ฐ๋ฐ, ๋ฆฌ์กํธ ์ํ ๊ด๋ฆฌ๋ฅผ ๋ ์ ํ๊ธฐ ์ํด ๋ฐ์ดํฐ ํ๋ฆ์ ๋จ๋ฐฉํฅ์ผ๋ก ์ ์ด. 4๋จ๊ณ์ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ณ ๊ฐ ๋จ๊ณ๊ฐ ๋ชจ๋ํ๋์ด ๋ ๋ฆฝ์ ๊ด๋ฆฌ์ ์ฉ์ดํ๋ค.React.suspense : ๋น๋๊ธฐ ์์ ์ ๋๊ธฐ ์ํ ๊ด๋ฆฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ๋ ๋ฆฌ์กํธ
Tanstack Query์ useQuery, useMutation์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์บ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ดํดํฉ๋๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ Tanstack Query์ useQuery์ useMutation ํ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์บ์ฑํ ์ ์๋์ง ํ๊ฐ.ํ
Tanstack Query์ useInfiniteQuery๋ฅผ ์ด์ฉํ ๋ฌดํ์คํฌ๋กค์ ๊ตฌํํ ์ ์๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ Tanstack Query์ useInfiniteQuery๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ ์ ์๋์ง ํ๊ฐ.ํ:useInfiniteQuery์ ๊ฐ๋ ๊ณผ ์ฌ
Tanstack Query์ useInfiniteQuery๋ฅผ ์ด์ฉํ ๋ฌดํ์คํฌ๋กค์ ๊ตฌํํ ์ ์๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ Tanstack Query์ useInfiniteQuery๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ ์ ์๋์ง ํ๊ฐ.ํ:useInfiniteQuery์ ๊ฐ๋ ๊ณผ ์ฌ
props drilling๊ณผ ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ดํ์ฌ ์ค๋ช ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ props drilling ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ , ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋์ง ํ๊ฐ.ํ:props drilling์ ๋ฌธ์ ์ ์ ์ค๋ช ํ์ธ์.props drilling์

css in js vs module.css์ ๋ํด ์ค๋ช ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ CSS-in-JS์ CSS Module์ ์ฐจ์ด์ ๊ณผ ์ฅ๋จ์ ์ ์ดํดํ๊ณ ์๋์ง ํ๊ฐ.ํ:CSS-in-JS์ CSS Module์ ๊ฐ๋ ์ ์ค๋ช ํ์ธ์.๋ ๋ฐฉ๋ฒ์ ์ฅ๋จ์ ์ ์ค๋ช ํ์ธ์.CSS
hook์ ์กฐ๊ฑด๋ฌธ ์์์ ์ฌ์ฉํ๋ฉด ์๋๋ ์ด์ ์ ๋ํด ์ค๋ช ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ React Hook์ ์กฐ๊ฑด๋ฌธ ์์์ ์ฌ์ฉํ๋ฉด ์๋๋ ์ด์ ๋ฅผ ์ดํดํ๊ณ ์๋์ง ํ๊ฐ.ํ:React Hook์ ๊ท์น์ ์ค๋ช ํ์ธ์.Hook์ ์กฐ๊ฑด๋ฌธ ์์์ ์ฌ์ฉํ๋ฉด ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ค

react ์ปดํฌ๋ํธ์ ์ฅ์ ์ ๋ํด ์ค๋ช ํ ์ ์์ต๋๋ค.๋ต๋ณ)์๋:์ง์์๊ฐ React ์ปดํฌ๋ํธ์ ์ฅ์ ์ ์ดํดํ๊ณ ์๋์ง ํ๊ฐ.ํ:React ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ, ์ปดํฌ์ง์ , ์ ์ง๋ณด์์ฑ ๋ฑ์ ์ฅ์ ์ ์ค๋ช ํ์ธ์.React ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ์์ ๋ฅผ ๋ ์ฌ๋ ค ๋ณด์ธ์.๋ชจ๋ฒ๋ต์:Re
๋ธ๋ผ์ฐ์ - ์๋ฒ ๊ฐHTML ๋ฌธ์๋ฟ ์๋๋ผ ๋์์, ์ด๋ฏธ์ง ๋ฑ ์ ์ก ๊ฐ๋ฅ1\. ๋น์ฐ๊ฒฐ์ฑ : ํ ๋ฒ ํต์ ์ผ๋ก ๋จ์ . ์ฟ ํค, ์ธ์ ๋ฑ์ ์ด์ฉํด ์ฐ๊ฒฐ ์ ์งํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.2\. ๋ฌด์ํ์ฑ : ์ด์ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์๋๋ค. ์ฟ ํค, ์ํ๋ก ์ํ ์ ์งํ ์ ์๋ค.์์๋ต ์ํ๋ผ