<๊ฐ์>
1. Text ์ปดํฌ๋ํธ ์ปค์คํฐ๋ง์ด์ง
(1) ์ฝ๋๋ฆฌ๋ทฐ
ํด๋น ์ปดํฌ๋ํธ๋ color, fontsize์ ์ปค์คํฐ ๋ง์ด์งํ๋ Text ์ปดํฌ๋ํธ์ด๋ค.
๋ฐ์๋ Typography์ ํ์ ์ ๊ฒ์ฌํ๋ PropTypes๋ผ๋ ์์ฑ์ ์ฌ์ฉํ๋ค.
ํด๋น PropTypes ์์ฑ์ ์ธ๋ ค๋ฉด
์ด๊ฑธ ์ค์น ํด์ผํ๋ค.
propTypes๋ผ๋ ํ์ ๊ฒ์ฌ๊ธฐ์ ๋ด๋ถ๋ {Property: PropTypes.์ํ๋ ํ์ }ํํ๋ก ์ฐ๊ณ
ํด๋น ์์ฑ์ ์ธ์๋ก ์ํ๋ ํ์ ์ด ๋ค์ด์ค์ง ์์์ ์ Warn ๊ฒฝ๊ณ ๋ฌธ์ ํ๋ฉด์ ๋์ด๋ค.
https://ko.legacy.reactjs.org/docs/typechecking-with-proptypes.html
์ ๋งํฌ๋ propTypes์ ์ฌ์ฉ๋ฒ์ ๋ํด ์ ํ ์๋ค. ํ์ ์ ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ด ๋ค์ํ๊ฒ ์๋ค.
์ฐ๋ฆฌ๋ ์์ ์์์ ์ค๋ช ๋ ๋ด์ฉ์ด ๋ฌด์์ ๋ปํ๋ ์ง ์์๋ณด์.
๋จผ์ color: PropTypes.string์ ์ปฌ๋ฌ ์์ฑ์ ๋ค์ด์ค๋ ์ธ์๋ String์ด์ฌ์ผ ํ๋ค๋ ๋ป์ด๋ค. ๋ง์ฝ String ์ธ์ ๊ฐ์ด ๋ค์ด์ฌ ์ ์ฝ์์ ๊ฒฝ๊ณ ๋ฌธ์ด ๋ฌ๋ค.
๊ทธ ๋ค์ fontSize: PropTypes.number.isRequired๋ fontSize ์์ฑ์๋ ๋ฌด์กฐ๊ฑด number ํ์ ์ด ๋ค์ด์์ผ ํ๊ณ , ํด๋น ์์ฑ์ ํ์ ๊ฐ์ด๋ผ๋ ๋ป์ด๋ค. ๋ฐ๋ผ์ fontSize์ ์ธ์์ ๋ค์ด์จ ๊ฐ์ด number ๊ฐ์ด ์๋๊ฑฐ๋, ์ธ์๋ก ์๋ฌด๊ฒ๋ ๋ค์ด์ค์ง ์์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฌธ์ด ๋ฌ๋ค.
๋ง์ง๋ง์ผ๋ก oneOfType์ ์์ฑ์ ํ์ ์ด ([]) ์์ ์์ ์ค ํ๋์ฌ์ผ ํ๋ค๋ ๋ป์ด๋ค. ์์์๋ children์ด๋ ์์ฑ์ด element (<></>)์ด๊ฑฐ๋ String ๊ฐ์ด์ด์ผ ํ๋ค๋ ๋ป์ด๋ค.
a. ์ฝ๋์ ๊ตฌ์กฐ์ ๋ํด
๊ทธ๋ฆฌ๊ณ ์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด export default๋ก ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ๋ฐ๋ก export ํ์ง ์๊ณ , ์ด๋ฆ์ ๋ถ์ฌํ ํ ,
ํด๋น ์ปดํฌ๋ํธ์ ์์ฑ์ธ PropTypes๋ฅผ ์ฐ๊ณ ๊ทธ ํ์ exportํ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์ ์ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
propsTypes๋ ์ปดํฌ๋ํธ์ ์์ฑ์ด๋ค. ์ ํ๊ธฐ๋ฒ์ผ๋ก ์ปดํฌ๋ํธ์ ์์ฑ์ ๋ถ๋ฌ์ค๋ ค๋ฉด ์ปดํฌ๋ํธ์ ์ด๋ฆ์ ์์์ผ ํ๋ค.
ํ์ง๋ง export default () => {}๋ฅผ ์ฐ๋ฉด ํด๋น ์ต๋ช ํจ์์ ํ์ด์ง ์ด๋ฆ์ ํ ๋นํ์ฌ ์ธ๋ถ์์ ํธ์ถํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค.
ํด๋น ํ์ด์ง ๋ด๋ถ์์๋ ์ฌ์ ํ ์ต๋ช ํจ์์ด๋ค. ๋ฐ๋ผ์ ์ ํ๊ธฐ๋ฒ์ผ๋ก propsTypes๋ผ๋ ์์ฑ์ ๋ถ๋ฌ๋ค์ฌ ์ธ ์๊ฐ ์๋ค.
๋ฐ๋ผ์ ํด๋น ํจ์์ ์ด๋ฆ์ ๋ถ์ฌํ ํ, propTypes๋ฅผ ์ฐ๊ณ , ๊ทธ ๋ค์์ default ํจ์๋ก exportํ์๋ค.
app.js ์ ์ชฝ์ด๋ค. Text๋ผ๋ ๋ฌธ์๋ ํฌ๊ธฐ์ ์๊น์ ๋ค๋ฅด๊ฒ ํด์ฃผ๊ธฐ ์ํด Typography๋ก ํ๋ฒ ๋ ๊ฐ์๋ค.
(2) ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ
a. import ํ ๋ as๋ฅผ ์ฌ์ฉํ๋ฉด importํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ช ๋ช ๊ฐ๋ฅํ๋ค.
b. element ๋ค์๊ฒ๋ children์ด๋ ์์ฑ์ด ์๋ค. ํด๋น ์์ฑ์ <> </> ์ฌ์ด์ ์๋ ๊ฐ์ด ์ธ์๋ก ๋ด๊ธด๋ค.
c. element๋ <> </>ํํ์ ์์๋ฅผ ๋งํ๋ค. ์ด๋ ํ๋ฉด์ ํ์๋ ๋ด์ฉ์ ๋ํ ๊ธฐ์ ์ด๋ค.
2. Image ์ปดํฌ๋ํธ ์ปค์คํฐ๋ง์ด์ง
(1) ์ฝ๋ ๋ฆฌ๋ทฐ
์ด๊ฑด ๋ญ ์ด๋ฆ๋ง ๋ฐ๊ฟจ์ง Image์ ์์๋ฅผ ๊ทธ๋๋ก ์ผ๋ค.
(2) ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ
require ๋ช ๋ น์ด๋ ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ๋ถ๋ฌ์ ์ธ ์ ์๊ฒ ํด์ฃผ๋ ๋ช ๋ น์ด ์ด๋ค.