์์ฆ ๋ธ๋ก๊ทธ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์๋ค.
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๋ฆฌํฉํ ๋ง์ ํ๋ค๋ณด๋ UI๋ฅผ ์ฒ์๋ถํฐ ๋์์ธ ํ๋ ๋ฐฉ๋ฒ์ ๋ด ๋๋ฆ๋๋ก ์ ํด๋์ผ๋ฉด ๋์ค์ ๋ฆฌํฉํ ๋งํ ์ผ์ด ์ค์ด๋ค๊ฒ ๋ค๋ ์๊ฐ์ ํ์๋ค.
๊ทธ๋์ UI Component๋ฅผ Designํ ๋ ๊ณ ๋ คํด์ผํ ์ฌํญ์ ๋ด ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณด์๋ค.
1. ์ปดํฌ๋ํธ๋ฅผ ์ ์ ํ๊ฒ ๊ตฌ๋ถํ์๋๊ฐ
2. ์ปดํฌ๋ํธ์ ๊ฐ element๋ค์ด ์ ์ ํ๊ฒ ๊ตฌ์ฑ๋์ด์๋๊ฐ?
3. styling์ ์ด๋ค ๋๊ตฌ๋ฅผ ์ ํํ ๊ฒ์ธ๊ฐ?
4. styled-component๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ด ์ข์ง ์์๊น?
5. UI๋ฅผ ๋ณด์ฌ์ฃผ๋ component๊ฐ ๊น๋ํ๊ฒ ์ ์ง๋๊ณ ์๋๊ฐ?
1. ์ปดํฌ๋ํธ๋ฅผ ์ ์ ํ๊ฒ ๊ตฌ๋ถํ์๋๊ฐ?
์ฒ์ UI์ค๊ณ์ ์ปดํฌ๋ํธ๋ฅผ ์ ์ ํ๊ฒ ๊ตฌ๋ถํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค. ์ด๊ฒ์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ๊ธฐ๋ณธ ์ฌํญ์ด๋ UI๋ฅผ ์ค๊ณํ ๋ ํญ์ ๊ณ ๋ คํ๊ณ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํด์ผ๊ฒ ๋ค.
๋ํ redux๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ํ์์ ๋ฐ๋ผ Container Component(์ํ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ ์ปดํฌ๋ํธ)๋ฅผ ๋ง๋ค์ด์ฃผ์.
2. ์ปดํฌ๋ํธ์ ๊ฐ element๋ค์ด ์ ์ ํ๊ฒ ๊ตฌ์ฑ๋์ด์๋๊ฐ?
์ฌ๋ฌ ์ปดํฌ๋ํธ๋ก ์ค๊ณ๋ฅผ ํ ๋ค์ ๊ฐ ์ปดํฌ๋ํธ์ element๋ค์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ ๊ฒ์ธ์ง๋ ์ค์ํ ๊ฒ ๊ฐ๋ค.
๋ถํ์ํ๊ฒ element๋ค์ด ์์ง ์์์ง, ๋ํ ํ์ํ element๋ค์ด ์๋์ง ์ด๋ฌํ ๋ถ๋ถ๋ค์ ์ฌ์ ์ ์๊ฐํ๊ณ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ๋ค.
๋ฌผ๋ก ๋์ค์ ๋ฆฌํฉํ ๋งํ ๋ ์์ ํ๋ฉด ๋๊ฒ ์ง๋ง ์ฒ์ ๊ตฌ์ฑํ ๋๋ ์๊ฐ์ ํ๊ณ ์ค๊ณํ๋ฉด ์ถํ์ ๋ฆฌํฉํ ๋ง์ ํ ๋์ ํธํ ๊ฒ ๊ฐ๋ค.
3. styling์ ์ด๋ค ๋๊ตฌ๋ฅผ ์ ํํ ๊ฒ์ธ๊ฐ?
์ปดํฌ๋ํธ๋ฅผ stylingํ ๋, ์ฌ๋ฌ ๊ฐ์ง styling ๋ฐฉ๋ฒ์ ์ ํํ ์ ์๋ค.
originalํ๊ฒ css๋ก ํด๋ ๋๋ฉฐ, sass,styled-component๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.
๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ ์ ์๊ฒ ์ง๋ง ํ์ฌ๊น์ง๋ ๋๋ styled-Component๋ฅผ ์ ํธํ๋ ํธ์ด๋ค.
์ด์ ๋ ์ปดํฌ๋ํธ์ element์ className์ด ๋์ง๋์ง ๋ถ์ด์๋ ๊ฒ์ด ๊น๋ํด ๋ณด์ด์ง ์๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๋ํ styled-Component๋ ๊ฐ๊ฑฐ๋ ๋น์ทํ ์คํ์ผ๋ง ์์๋ค์ ์ ์ ํ ์ฌ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ์ ์ด ์ฅ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ฌผ๋ก ์ด๊ฑด ์์ง๊น์ง ๋ด ์ทจํฅ์ด๊ธฐ๋๋ฌธ์ ์ถํ์๋ ์ด๋จ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์ด์จ๋ ์ง๊ธ์ styling ๋ฐฉ๋ฒ์ผ๋ก styled-component๋ฅผ ์ ํธํ๊ณ ์๋ค.
4. styled-component๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ด ์ข์ง ์์๊น?
๋ฆฌํฉํ ๋งํ ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ณด๋ styled-component๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํ๋์ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ ๋ ์ฝ๋๊ฐ ๊ต์ฅํ ๋ฒ์กํด๋ณด์ด๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์๋ค.
๋ณด๋ ์ด์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๊ฒ ์ง๋ง ๋๋ ์ด๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๋ ์ ์ง๋ณด์์ธก๋ฉด๊ณผ ๊ฐ๋
์ฑ์ ์ข๋ค๊ณ ์๊ฐ์ด ๋ค์ด ๊ฐ ์ปดํฌ๋ํธ๋ณ๋ก styling ํ์ผ์ ๊ตฌ๋ถ์ง์ด ๋๋ ๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ผ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
5. UI๋ฅผ ๋ณด์ฌ์ฃผ๋ component๊ฐ ๊น๋ํ๊ฒ ์ ์ง๋๊ณ ์๋๊ฐ?
์ด ์ฌํญ์ redux์ ๊ฐ์ด ์ฌ์ฉํ ๋ ํนํ ๊ณ ๋ คํ ์ฌํญ์ด๋ผ๊ณ ์๊ฐ์ด ๋ค์๋ค.
redux๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ณดํต UI Component(UI๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ปดํฌ๋ํธ)์ Container component(์ํ ๊ด๋ฆฌ๋ฅผ ํ๋ ์ปดํฌ๋ํธ)๋ก ๋๋๋ค.
์ด ๋ UI ์ปดํฌ๋ํธ๋ ์ต๋ํ ๊น๋ํ๊ฒ ์ ์งํ๋ ๊ฒ์ด ์ข๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๋๋ฌธ์ ํ ์ ์๋ ์์ ๋ค์ Container component์์ ๊ตฌํํด์ UI Component๋ก ๋๊ฒจ์ฃผ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํ๋ค.
์ ์ฌํญ๋ค์ ๋ด๊ฐ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ฉฐ ๊ณ ๋ คํด์ผํ ์ฌํญ์ด๋ผ๊ณ ์๊ฐํ์ฌ ์ ๋ฆฌํด๋์ ๊ฒ์ด๊ณ ๋์ ์ทจํฅ์ด๋ฏ๋ก ๋ง๋ ๋ฐฉ๋ฒ์ด ์๋ ์๋ ์๊ฒ ์ง๋ง ์ถํ์ UI๋ฅผ ์ค๊ณํ ๋ ๋ค์ ๋์๊ฒจ๋ณด๋ฉฐ ๋ณธ ํฌ์คํ ์ ์ฐธ์กฐํ์ฌ ๋์์ธ์ ํด๋ด์ผ๊ฒ ๋ค.
์ ์ฌํญ๋ค์ด ๋ง๋ ๋ฐฉ๋ฒ์ ์๋ ์ ์๊ฒ ์ง๋ง ์ผ๋จ ํ๋ก์ ํธ๋ฅผ ์ฒ์ ๋์์ธํ ๋ ๋ฌด์์ ์ฝ๋๋ถํฐ ์์ฑํ๋ค๊ธฐ๋ณด๋ค๋ ๋๋ฆ์ ์ค๊ณ๋ฅผ ํ์ฌ UI, Component ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์ฌํญ์ ์ ๋ฆฌํ์ฌ ์ค๊ณํ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.