๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ
[ReactJS] ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ์ Custom Hook
๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ ๊ฐ๊ฐ์ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋ ๊ธฐ๋ฒ ์ฝ๋๊ฐ ํ๋์ ๊ด์ฌ์ฌ๋ง ์ ๊ฒฝ์ฐ๋๋ก ๋ถ๋ฆฌํ๋ ๊ฒ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ์ ํน์ง ํน์ ํ ๋ณํ์ ๋์ํ๊ธฐ ์ํด ์ฝ๊ณ ์ดํดํ๊ณ ์์ ํด์ผ ํ๋ ์ฝ๋์ ๋จ์๋ฅผ ์ค์ผ ์ ์์ด ์ ์ง ๋ณด์์ ์ฉ์ดํด์ง๋ค. ํ๋์ ์ฝ๋๊ฐ ํ๋์ ๊ธฐ๋ฅ์ ๋ด๋ดํ๊ธฐ์ ์ฌ๋ฌ ์ญํ ์ด ํผ์ฌ๋ ์ฝ๋๋ณด๋ค ๋จ์๋ณ๋ก ์ฌ์ฌ์ฉํ๊ธฐ ์ฌ์์ง๋ค. ์ฝ๋์ ๊ธฐ๋ฅ ํ ์คํธ ๋ํ ์ฌ์์ง๋ค. ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๊ฐ ์ ๋ ์ํํธ์จ์ด๋ ๋ฎ์ ๊ฒฐํฉ๋์ ๋์ ์์ง๋๋ ํน์ง์ด ๋ํ๋๋ค. ๋ฎ์ ๊ฒฐํฉ๋ (Loose Coupling) : ์ฝ๋๊ฐ ์ฝํ์์ง ์๊ณ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๋ถ๋ฆฌ๋์ด ์๋ค. ๋์ ์์ง๋ (High Cohesive) : ๋์ผํ ๋ชฉ์ (๊ด์ฌ์ฌ)๋ฅผ ๊ฐ์ง ์ฝ๋๋ผ๋ฆฌ ์ ๋ชจ์ฌ์๋ค. KISS ์์น Keep It Simple, Stup..
[ReactJS] Component์ ๋ถ๋ฆฌ์ ์ฌ์ฌ์ฉ (๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ)
์ปดํฌ๋ํธ ๋ถ๋ฆฌ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๋ ๋ณต์กํ ์ฝ๋๋ฅผ ๋น์ทํ ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋๋ผ๋ฆฌ ๋ณ๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งํ๋ค. ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ณ๋ '๊ฐ๊ฐ์ ๊ด์ฌ์ฌ๋ฅผ ํด๊ฒฐํ๋ ๋ถ๋ถ'์ผ๋ก ๋ถ๋ฆฌํ๋ ๋์์ธ ์์น์ด๋ค. ์ปดํฌ๋ํธ ๋ณ๋ก ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๋ฉด ํ์ฅ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ค. ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฆฌํ๋ ์ด์ React์์ ์ปดํฌ๋ํธ๋ ๋ค์ํ ์ญํ ์ ํ๋ค. ์ด๋ค ์ปดํฌ๋ํธ๋ UI๋ฅผ ํํํ๊ณ ์ ํ๊ณ , ๋ ์ด๋ค ์ปดํฌ๋ํธ๋ ๋์ํ๋ ๋ก์ง์ ๋ด์ ์ ์๋ค. ์์ ๋ ์ญํ ์ ๋ชจ๋ ๋ด๋ ์ปดํฌ๋ํธ ๋ํ ์กด์ฌํ๊ณ , ํ๋๋ ๋ด์ง ์๋ ์ปดํฌ๋ํธ๋ ์กด์ฌํ ์ ์๋ค. ์ด์ฒ๋ผ ์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉํ ์ ์๋ ์ต์ UI ๋จ์์์๋ ๋ถ๊ตฌํ๊ณ , ์น์ ๋ณต์ก๋์ ํด๋น ์ปดํฌ๋ํธ์์ ์ํํ๋ ค๊ณ ํ๋ ์ญํ ์ ๋ฐ๋ผ ์ผ๋ง๋ ์ง ๋ณต์กํด์ง ์ ์๋ค. ๋ฐ๋ผ์ '๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ'..