230919(ํ) ์ฑ์ฅ
๐ค ์ฑ์ฅ์ผ์ง 7.0
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
โ (7.0)<์์ ๊ฐํธ>
ํ์ธ๋ง ํ์ต๋ฒ
์ ์๊ฒ ๋๋งํผ, ์ฑ์ฅ์ผ์ง๋ ์ ๋ง ๊ทธ ๋ ์ ํค์๋ ์ค์ฌ์ผ๋ก ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋๋ก ํ๋ค.
โ๏ธ ํค์๋: ์ง๊ด์ ์ด๊ณ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ์์ฑ
favicon์ด ๋ณ๊ฒฝ๋์ง ์์ ๋ ํด๊ฒฐ๋ฒ
ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด์ ๋์์ด๋๋ถ๊ป์ ๋ง๋ค์ด์ฃผ์ ์์ด์ฝ์ผ๋ก favicon์ ์ ์ฉํ๋ค. ๊ทธ๋ฐ๋ฐ ์๋ฌด๋ฆฌ ์๋ก๊ณ ์นจ์ ํด๋ณด๊ณ , ํ์ด์ง ์บ์๋ ์ง์๋ด๋ ๋ณ๊ฒฝ๋์ง ์์๋ค.
๊ทธ๋ฌ๋ค๊ฐ ๋ฐฉ๋ฒ์ ์ฐพ์๋๋ฐ ์๋์ ๊ฐ์ด version
์ ๋ช
์ํด์ค์ผ๋ก์จ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ก์ด favicon์ ๊ฐ์ ธ์ค๋๋ก ํ ์ ์๋ค.
๊ธฐ์กด
<link rel="icon" href="%PUBLIC_URL%/icons/favicon.ico" type="image/x-icon" />
๋ณ๊ฒฝ
<link rel="icon" href="%PUBLIC_URL%/icons/favicon.ico?v=2" type="image/x-icon" />
PWA
PWA๋ Progressive Web App์ ์ฝ์๋ก, ์น๊ณผ ์ฑ์ ์ฅ์ ์ ๊ฒฐํฉํ ๊ฒ์ด๋ค. ์น์ ์ฅ์ ์ ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผํ ์ ์๋ค๋ ๊ฒ์ด๊ณ , ์ฑ์ ์ฅ์ ์ ์คํ๋ผ์ธ์์๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ์ฅ์ ์ ๊ฒฐํฉํ ๊ฒ์ด PWA์ด๋ค.
CRA์ ํจ๊ป PWA๋ฅผ ์ฝ๊ฒ ์ ์ฉํ ์ ์๋ ํ ํ๋ฆฟ์ด ์๋ค.
npx create-react-app my-app --template cra-template-pwa-typescript
์์ ๊ฐ์ด ์ดํ๋ฆฌ์ผ์ด์
์ ํ์ฑํ๋ฉด manifest.json
๊ณผ serviceWorker.ts
ํ์ผ์ด ์์ฑ๋๋ค. ์ด ํ์ผ๋ค์ ํตํด PWA๋ฅผ ์ ์ฉํ ์ ์๋ค.
๊ฐ ํ์ผ์ ์ญํ ์ ๋ค์๊ณผ ๊ฐ๋ค.
manifest.json
: ์น ์ฑ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํ์ผserviceWorker.ts
: ์น ์ฑ์ ์คํ๋ผ์ธ ์บ์ฑ์ ๋ด๋นํ๋ ํ์ผ
์ดํ์ ์์ ํ์ผ๋ค์ ๋ํ ์ค์ ๊ณผ ์์ด์ฝ์ ๋ํ ์ค์ ์ ํด์ฃผ๋ฉด ๋๋๋ฐ, ์ด ๋ถ๋ถ์ ์ด๋ ต์ง ์์ผ๋ ์๋ ์ฐธ๊ณ ์๋ฃ๋ฅผ ๋ณด๋ฉด ๋๋ค!
Storybook
Storybook ๊ณต์๋ฌธ์๊ฐ ๋๋ฌด ์๋์ด์์ด์ ๋๋๋ค. ์ฌ์ค styled-components์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ์ ๋ฒ๊ฑฐ๋ก์ด ์ค์ ๋ค์ด ๋ง์ ๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ, ๊ณต์๋ฌธ์๊ฐ ๋๋ฌด ์ ๋์ด์์ด์ ์ด๋ ต์ง ์๊ฒ ์ค์ ํ ์ ์์๋ค. ๋, Storybook์์ Story๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ํด ๋ง๋ chromatic
์ด๋ผ๋ ์๋น์ค๋ ์์๋๋ฐ, ์ด๊ฒ๋ ๋๋ฌด ์ ๋์ด์์ด์ ๋ฐฐํฌํ๋๋ฐ ์ด๋ ค์์ด ์์๋ค. ๋ฐ๋ก ์ค์ ์ ๋ํ ๊ธ์ ์ ์ ํ์๊ฐ ์์๋ฏโฆ!
๐ ํ๊ณ
์ค๋ ์ ๋ง ํ๋ฃจ์ข ์ผ ๋ชธ์ด ๋ฌด๊ฒ๊ณ ์กธ๋ ค์ ํ๋ค์๋๋ฐ, ๊ทธ๋ฐ ๊ฒ์น๊ณ ๋ ์ด๊ฒ์ ๊ฒ ๋ง์ด ํ ํ๋ฃจ๋ฅผ ๋ณด๋ธ ๊ฒ ๊ฐ์์ ๊ธฐ๋ถ์ด ์ข๋ค :)