๐ React์ SOLID ์์น ์ ์ฉํ๊ธฐ
1. ๋จ์ผ ์ฑ ์ ์์น (SRP) ์ฌ๋ฌ๋ถ์ ์ปดํฌ๋ํธ๋ ์๋ก ๋ค๋ฅธ ๊ฐ๋๋ถ๋ค ์ฌ์ด์ ์์กด์ฑ์ด ํจ์ฌ ๋ ์ฝํ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๋ ์ ์ ํ์ง ๋ชปํ ์ถ์ํ, ๋ค์ฌ๋ค๋ฅํ ์ ์ญ ์ปดํฌ๋ํธ ์์ฑ, ๋ฐ์ดํฐ์ ์๋ชป๋ ์ค์ฝํ ์ค์ ๋ฑ ์๋ชป๋ ์ค๊ณ๋ฅผ ์ ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ด๋ฒ์ํ ๋ฆฌํฉํ ๋ง์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค. 2. ๊ฐ๋ฐฉ-ํ์ ์์น (OCP) ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ ๋ด๋ถ์ ์๋ ๋ณ์ ๋ก์ง์ ์์ ํ ์ ๊ฑฐํ๊ณ ์ด์ ์ปดํฌ๋ํธ ์์ฒด๋ฅผ ์์ ํ์ง ์๊ณ ๋ ๋ฌธ์ ๊ทธ๋๋ก ์ํ๋ ๋ชจ๋ ๊ฒ์ ์ ๋ ฅํ ์ ์๋๋ก ํฉ์ฑ(composition)์ ์ฌ์ฉํ ์ ์์ต๋๋ค. 3. ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น (ISP) React ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ์ด๊ฒ์ "์ปดํฌ๋ํธ๋ ์ฌ์ฉํ์ง ์๋ props์ ์์กดํด์๋ ์ ๋ฉ๋๋ค"๋ก ํด์ํ๊ฒ ์ต๋๋ค. ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น์ ์์คํ ์ ์ปดํฌ๋ํธ๋ค ๊ฐ ์์กด์ฑ์ ์ต์ํํด ์ปดํฌ๋ํธ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ , ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋๋ก ํฉ๋๋ค. 4. ์์กด๊ด๊ณ ์ญ์ ์์น (DIP) ์์กด๊ด๊ณ ์ญ์ ์์น์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ ๊ฐ์ ๊ฒฐํฉ์ ์ต์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์์๋ค์ํผ, ์ต์ํ๋ ๊ฐ๋ณ ์ปดํฌ๋ํธ์ ๋ํ ์ฑ ์ ๋ฒ์๋ฅผ ์ต์ํํ๋ ๊ฒ ๋ถํฐ ์ปดํฌ๋ํธ ๊ฐ์ ์ธ์ ๋ฐ ์์กด์ฑ์ ์ต์ํํ๋ ๊ฒ๊น์ง ๋ชจ๋ SOLID ์์น ์ ๋ฐ์ ๊ฑธ์ณ์ ๋ฐ๋ณต๋๋ ์ฃผ์ ์ ๋๋ค.