WEB32 ๋ฆฌ์กํธ์์ setState๋ฅผ ํตํด์ state๋ฅผ ๋ณ๊ฒฝํด์ฃผ๋ ์ด์ / setState์ ๋น๋๊ธฐ์ฑ ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ฒ์์๋ ์๋ ์๋ฌธ์ด ๊ฐ์๊ธฐ ์๊ฒผ์๋ค. ์ ๋ฆฌ์กํธ๋ useState๋ผ๋ ํ ์ ์ฌ์ฉํด์ ์ํ๊ด๋ฆฌ๋ฅผ ํ๋๊ฒ์ธ๊ฐ ๋ฌผ๋ก ํ ์ ์ฌ์ฉํด์ ๋ผ์ดํ์ฌ์ดํด์ ์กฐ์ํ ์ ์๊ฒ ํ์ฌ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋ง์์ฃผ๊ณ , ๋ด๊ฐ ์ํ๋ ์์ ์ ์ํ๋ ๋์์ ํ๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ผ ๊ฑฐ๋ค. ํ์ง๋ง, ์!! ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์ ์ฌ์ฉํ๋ฏ์ด ์ฌ์ฉํ๋ฉด ์๋๋๊ฒ์ด๋ ์ด๊ฒ ๋ฌธ๋ ๊ถ๊ธํด์ก๋ค ์ด์ state๋ immutable(๋ถ๋ณ์ฑ)์ ์ ์งํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ปดํฌ๋ํธ๋ ํ์ฌ์ this.state์ setState๋ฅผ ๋น๊ตํด์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ง render ํจ์๋ฅผ ํธ์ถํ๋๋ฐ, state๋ฅผ ์ง์ ์์ ํ๊ฒ ๋๋ฉด ๋ฆฌ์กํธ๊ฐ render ํจ์๋ฅผ ํธ์ถํ์ง ์์ ์ํ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ๋ ๋๋ง์ด ์ผ์ด๋์ง ์์ ์ ์๋ค. ์ํ ๋ณ๊ฒฝ์ ์ถ์ ํ.. 2022. 10. 21. CSR vs SSR CSR ๊ณผ SSR ์ ์ฐจ์ด๋ฅผ ํ์ตํ ๋๋ ํ์์ ์ผ๋ก SPA์ MPA์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ๋จผ์ ๋์์ผํ๋ค. ํด๋น ๋ถ๋ถ์ ๋ํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด๋ณด๋ฉด ์ข์๊ฒ๊ฐ๋ค. ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก CSR๊ณผ SSR์ ๋ํ ์๊ธฐ๋ก ๋์ด๊ฐ๋ณด์. ์ฐพ์๋ณด๋ฉด CSR์ SPA์ ์ฐ๊ฒฐ์ง์ด์ ๋ง์ด ์ค๋ช ์ด ๋์ด์๊ณ , SSR์ MPA์ ์ฎ์ฌ์ ๋ง์ด ์ค๋ช ์ด ๋์ด์๋ค. ์์ ์๋ ์ด๊ฒ๋ง ๋ณด๊ณ ๊ทธ๋ผ ์๋ก์๋ก ๊ฐ์ ๊ฐ๋ ์ธ๊ฐ?๋ผ๋ ์๊ฐ์ ํ์๋๋ฐ ์๋๋ค. ๋ช ์ฌํ ๊ฒ์ CSR์ด ์ ๋ถ SPA๋ฐฉ์์ด ์๋๋ผ๋ ์ ! ๊ทธ๋ ๋ค๋ฉด csr, ssr์ด ๋ฌด์์ธ์ง ์์๋ณด๋๋ก ํ์! CSR(Client Side Rendering) ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง. ๋ง ๊ทธ๋๋ก๋ค ํด๋ผ์ด์ธํธ ์ชฝ์์ ๋ ๋๋ง์ด ์ผ์ด๋๋ค๋ ์๊ธฐ๋ค. ์์ฒญ์ ๋ณด๋ด๊ณ -> ์๋ต์ ๋ฐ๊ณ -> ๊ทธ๋ฆฌ๊ณ ์ด ๊ณผ์ ๋ฐ๋ณต .. 2022. 1. 2. Redux ๋ฆฌ๋์ค๋ ์ด๋ ต๋ค... Redux? ์ปดํฌ๋ํธ๊ฐ ๋ง์์๋ก ๋ณต์กํด์ง๋ ์ํ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ why? ๊ตฌ์กฐ๊ฐ ์ ์ ๋ณต์กํด์ง๋ฉด์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ถํฐ ์ตํ์ ์ปดํฌ๋ํธ๊น์ง ๋ด๋ ค์ค๋ฉด์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๋ฌด ๋นํจ์จ์ ! ๋ฆฌ๋์ค๋ก ๋ฐ๊นฅ์์ ์ํ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ฉด์ ํจ์จ์ ์ผ๋ก ์ ๊ทผ! ์ดํด๊ฐ ๋์ง ์๋๋ค๋ฉด ์๋์ ๊ฐ์ ์ํฉ์ ๋ณด์! ๐ ์์ ์ปดํฌ๋ํธ ๊ตฌ์กฐ๊ฐ ์๋์ ์ปดํฌ๋ํธ๊ตฌ์กฐ์ ๊ฐ์ด ๋ณต์กํด์ก๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด๋ด ๊ฒฝ์ฐ, ์ตํ์ ์์ ์ปดํฌ๋ํธ๊น์ง ์ํ๋ฅผ ์ ๋ฌํด์ฃผ๊ฑฐ๋ ์์ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ์ด๋ฒคํธ์ ์ํด์ ๋ค๋ฅธ ๋ฃจํธ์ ์๋ ์ปดํฌ๋ํธ์ ์ํ๋ณํ๋ฅผ ๋ถ๋ฌ์ผ์ผ์ผ์ผํ๋ ์ํ์ผ ๊ฒฝ์ฐ์ผ ๋ ๋นํจ์จ์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. How? ์์ ์ ๊ฐ ๋ฌธ์ ๋ก ์ ์ํ๋ ์ํฉ๋ค์ ๋ฆฌ๋์ค๋ ๋ฐ๊นฅ์์ ์ํ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๋์์ค ๋ฆฌ.. 2021. 7. 13. [React] useEffect useEffect๋ฅผ ์ข ๋ ์ง์ค์ ์ผ๋ก ๋ค๋ค๋ณผ๋งํ ๊ฐ์น๊ฐ ์๋ค๊ณ ๋๊ผ๋ค. ์ด๋ ๋ผ์ดํ์ฌ์ดํด๊ณผ ์ง๊ฒฐ๋์ด์๊ธฐ ๋๋ฌธ์ ๋ ์ ํํ ์๊ณ ์ฌ์ฉํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ฉด์ ๋ค์ ๋ฆฌ๋ค๊ธฐ ์ฑ ์ ์ค๋๋ง์ ํด์ ์ดํด๋ณด์๋ค. UseEffect useEffect๋ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ๋๋ง๋ค ํน์ ์์ ์ ์ํํ๋๋ก ์ค์ ํ ์ ์๋ ํ ์ด๋ค. componentDidMount + componentDidUpdate componentDidMount + componentDidUpdate + componentWillUnmount ๋ง์ดํธ ๋ ๋๋ง ์คํํ๊ณ ์ถ์ ๋ (ComponentDidMount) useEffect(() => { console.log('๋ง์ดํธ๋ ๋๋ง'); },[]); ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ๋งจ ์ฒ์ ๋ ๋๋ง ๋์ ๋๋ง ์คํํ๊ณ ์ถ์ .. 2021. 7. 6. [React] LifeCycle (๋ผ์ดํ์ฌ์ดํด, ์๋ช ์ฃผ๊ธฐ) ์น์ ๊ณต๋ถํ๋ค๋ณด๋ฉด ๋น ์ง ์ ์๋๊ฒ ๋ ๋ฐ๋ก ๋ผ์ดํ์ฌ์ดํด์ด๋ค. ์ง๊ธ๊น์ง ๋๋ ๋ผ์ดํ ์ฌ์ดํด ๊ฐ๋ ๋ง ๊ณต๋ถ๋ฅผ ํด์ ์ ํํ๊ฒ ์ด๋์ ์ฐ์ด๊ณ ๋ด๊ฐ ์ฌ์ฉํ๋ฉด์๋ ์ด๊ฒ ๋ผ์ดํ์ฌ์ดํด์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง์กฐ์ฐจ ์ ํํ๊ฒ ์์ง ๋ชปํ๊ณ ๋์ด๊ฐ์๋๋ฐ ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด ์ ํํ ์ง๊ณ ๋์ด๊ฐ๋ ค๊ณ ํ๋ค. ์ผ๋จ, ๊ตฌ๊ธ์ react lifecycle์ด๋ผ๊ณ ์น๋ฉด ํญ์ ๋์ค๋ ๊ทธ๋ฆผ์ด ์๋ค. mount๋ถํฐ unmount๊น์ง ์ข๋ฅด๋ฅต ์๋ ์ฌ์ง์ด๋ค. ๋๋ ๊ทธ๋ฅ ์ด๊ฒ๋ง ๊ณต๋ถํ๊ณ ์๊ณ ์์๋ค. ๊ทผ๋ฐ ์ ๋ผ์ดํ์ฌ์ดํด์ ๋ํด์ ์์์ผํ๋์ง ๊ทผ๋ณธ์ ์ธ ๋ถ๋ถ์ ๋ํด ๋ถ์กฑํ๋ค๊ณ ๋๊ปด์ ์ด๋ฒ์ ๊ทธ ๋ถ๋ถ์ ์ข ๋ ์์ธํ ์์๋ณด๋๋ก ํด์ผ๊ฒ ๋ค! ๋ผ์ดํ์ฌ์ดํด์ด๋? ๋ผ์ดํ ์ฌ์ดํด์ ๊ฐ๋จํ ์๋ฉ๋ง ๋ณด๋๋ผ๋ 'ํ ํ๋ฉด์ด ์์ฑ๋๊ณ ์ฌ๋ผ์ง๊ธฐ๊น์ง์ ๊ณผ์ '์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ ๋ผ์ด.. 2021. 7. 5. [React] Rerendering(๋ฆฌ๋ ๋๋ง) ๋ฆฌ์กํธ๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ฉด, ํจ์จ์ฑ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋นผ๋์ ์๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. ์ ๋ฒ์ ์ ๋ฆฌํ๋ DOM์์์ ๊ฐ์ ๋๋ ๊ทธ๋ ๊ณ , ์ด๋ค ํ ๊ฐ๋ ์ ๊ณต๋ถํ ๋๋ง๋ค ๊ทธ ๊ฐ๋ ์ด ํจ์จ์ ์ด๊ฒ ๋์์ค๋ค๊ณ ํ๋ ๊ฒ์ด ๋ง๋ค๋๊ฒ์ด๋ค. ๋๋ ์ ์ ์ด๋ฐ ์ง๋ฌธ์ ๋ฐ์ ์ ์ด ์๋ค. '๋ฆฌ๋ ๋๋ง์ด ๋ญ์ง ์์๋์?' ์ด ๊ธ์ ๋ณด๋ ์ฌ๋ฌ๋ถ๋ค์ ๋ฌด์จ ๋๋ต์ ํ๊ฒ ๋๊ฐ? ๋๋ ๊ทธ๋๋ ๋ถ๋๋ฝ์ง๋ง ๋ฆฌ๋ ๋๋ง์ด ๊ทธ๋ฅ ๋ ๋๋ง์ ๋ค์ํ๋ค๋ ๊ฑฐ ์๋๊ฐ? ์ด๋ ๊ฒ ์๊ฐํ์๋ค. ์ฌ์ค ๋ง ๋ป์ ๊ทธ๋ ๋ค. ํ์ง๋ง, ์ง๋ฌธ์ ์๋๊ฐ ๊ณผ์ฐ ์ง์ง ๋ป์ ๋ฌผ์ด๋ณด๋ ๊ฒ์ด์์๊น? ์ด๋ ๋ชจ๋ ์ง๋ฌธ์ ๋ต์ ๊ฐ๋ก๊ฐ์ด ํ ๋๋ ์ง์ ์์ ์ฐจ๋ถํ ๋ค ์ ์ด๋จ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ณต๋ถํ๋ฉด์ ์ฑ์๋๊ฐ๊ธฐ ์์ํ๋ค. ๋ฆฌ๋ ๋๋ง์ ๋ฌด์์ธ์ง ๊ทผ๋ณธ๋ถํฐ ์์์ผํ๋ฉฐ, ์ ์ด๊ฑธ ์์์ผํ๋์ง, ์ด๋์์ ์ด ๊ฐ๋ ์ด ์ฐ์ด๋.. 2021. 6. 24. ์ด์ 1 2 3 4 5 6 ๋ค์ ๋ฐ์ํ