-
4์ ๋์งธ์ฃผ ํ๋ก ํธ์๋ ๋ด์ค๋ ํฐ๐ฉ News Letter 2021. 4. 9. 23:42
๐ ๋ชฉ์ฐจ
- ํ๋ก ํธ ๊ฐ๋ฐ์๊ฐ ์นํฉ์ ๊ณต๋ถํด์ผํ๋ 4๊ฐ์ง ์ด์
- NPM CLI v7.0 ์ฃผ์๊ธฐ๋ฅ 5๊ฐ ์ดํด๋ณด๊ธฐ
- ์ฝ๋๋ฆฌ๋ทฐ์ ๋ํ ์ฐ๋ฆฌ์ ์ ๊ทผ๋ฒ
- ํ ์คํธ ๊ฐ๋ฅํ ์์ ํจ์ ์์ฑํ๊ธฐ
- CSS ๋ ผ๋ฆฌ์ ์์ฑ๊ณผ tailwind ํ๋ฌ๊ทธ์ธ
- ์ฑ๋ฅํฅ์์ ์ํ ๋์ import
- ์ฝ๋ฉํ ์คํธ ์ฐ์ต
๐ก ํ๋ก ํธ ๊ฐ๋ฐ์๊ฐ ์นํฉ์ ๊ณต๋ถํด์ผํ๋ 4๊ฐ์ง ์ด์
1. ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์
- Hot module replacement (HMR) ๊ธฐ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด ์๋ก๊ณ ์นจ์ ๋ฐฉ์งํด์ค์ ๋ณ๊ฒฝ๋๊ณณ๋ง ์ ๋ฐ์ดํธ ํด์ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ทฐ, ๋ฆฌ์กํธ ํ๋ ์์ํฌ์์ ์ง์ํ๋ ๊ธฐ๋ฅ
2. ์์ฐ๋ ์ฝ๋ ๊ฐ์ง ์น๊ธฐ ๐
- ํ๋ก์ ํธ์ ์์ฐ๋ ์ฝ๋๋ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง๋ค๋ฉด ์ฑ ๋ก๋ฉ ์๊ฐ์ด ๊ธธ์ด์ง.
- ํธ๋ฆฌ ์์ดํน์ ์ด๋ ๊ฒ js ๋ชจ๋์
๋ฒ๋ค๋ง
ํ ๋ ๋ถํ์ํ ์ฝ๋๋ฅผ ์ ๊ฑฐํด์ฃผ๋ ๊ธฐ๋ฅ. - ๋ฒ๋ค๋ง : ๊ธฐ๋ฅ๋ณ๋ก ๋ชจ๋ํ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ค์ ๋ฌถ์ด์ค๋ค ⇒ ์นํฉ์ด ํ๋ ์ผ
3. ์ฝ๋ ์คํ๋ฆฌํ ๊ธฐ๋ฅ์ ํตํ ์ฑ ๋ก๋ฉ ์๊ฐ ์ต์ ํ
- ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ฒ ๋ถํ ํ์ฌ ํ์ํ ๋ฒ๋ค๋ง ๋ก๋ฉ → ์ฑ๋ฅ๊ฐ์
- ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด๊ณ ctrl+shift+P ํ๋ ํธ๋ฅผ ํตํด Coverage๋ฅผ ๊ฒ์ํด์ ๋ฆฌ๋ก๋ฉํด๋ณด๋ฉด ์ฌ์ฉํ์ง ์๋๋ฐ๋ ํ์ฑ๋ ์ฝ๋๊ฐ ๋ง๋ค๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
4. ๋ง์ดํฌ๋ก ํ๋ก ํธ์๋ ์ง์
- module federation ๊ธฐ๋ฅ : ๋ฐํ์์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋์ ์ผ๋ก ์ฝ๋๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ํคํ ์ณ
๐ก NPM CLI v7.0 ์ฃผ์๊ธฐ๋ฅ 5๊ฐ ์ดํด๋ณด๊ธฐ
1. ์ํฌ์คํ์ด์ค ์ง์
- package.json์ ์ํฌ์คํ์ด์ค๋ฅผ ์ ์ํ๋ฉด ์ฌ๋ฌ๊ฐ์ ํ์ ํ๋ก์ ํธ ์์กด์ฑ์ ๋ฃจํธ๋ ๋ฒจ์์ ๊ด๋ฆฌ ๊ฐ๋ฅ.
- ๊ณผ๊ฑฐ์ ํ์ ํ๋ก์ ํธ๋ง๋ค node_modules๊ฐ ์์์ง๋ง ์ด์ ๋ ๋ค ๋ฃจํธ์์ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ ๊ตฌ์กฐ ๊น๋ํด์ง
2. ์ถ๋ ฅ ๋ก๊ทธ๊ฐ ์ข์์ก๋ค
- ํ ๋ ์ด์์ ๋ฑ์ด ์ฌ๋ผ์ ธ์ ์ฝ๊ธฐ ์ฌ์์ง
3. ํผ์ด ์ข ์์ฑ ์๋ ์ค์น
- ๋ฆฌ์กํธ15๋ก ๊ฐ๋ฐํ๋ค๊ฐ ๋ฆฌ์กํธ16์ ํ์๋กํ๋ ํจํค์ง๋ฅผ ์ค์นํ๋ฉด ๋ ๋ฆฌ์กํธ ๋ฒ์ ๋ชจ๋์ ์์กดํด์ผํ๋๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ์์ ํด์ง๋ ์ํฉ ๋ฐ์. ์ด๋ ๋ฆฌ์กํธ16์ ํผ์ด ์ข ์์ฑ์ผ๋ก ์ถ๊ฐํจ.
- ์ด๋ฐ๊ฑธ npm์ด ์์์ ํด์ค๋ค.
4. Yarn ํธํ์ฑ - ์ฌ์ด ๋ง์ด๊ทธ๋ ์ด์
- npm 6๋ฒ์ ์ yarn.lock ํ์ผ์ ์๋ณด๊ณ ์ต์ ํจํค์ง๋ฅผ ์ค์นํ๋ค.
- ํ์ง๋ง npm 7๋ฒ์ ๋ถํด ์์์ yarn ์์กด์ฑ๋ ์ ์ค์นํด์ค๋ค.
5. npx์ ๋ํด ๋ ๋์ ํ๋กฌํํธ ๋ฉ์ธ์ง ์ ๊ณต
- ์ค์น ์ ์ฌ์ฉ์ ํ์ธ์ ๋ฌป๋๋ค.
๐ก ์ฝ๋๋ฆฌ๋ทฐ์ ๋ํ ์ฐ๋ฆฌ์ ์ ๊ทผ๋ฒ
- ์ฝ๋๋ฆฌ๋ทฐ์ ๋ชฉํ๋ ๋ฌด์์ธ๊ฐ?
- ํ๋ก๋์ ํ๊ฒฝ ์ ์ ๊ฒฐํจ ๋ฐ๊ฒฌ
- ์ข์ ์์์ ํจํด ๊ณต์
- ๋์ฒดํ ์ ์๋ ์ ๊ทผ๋ฒ๊ณผ ๊ด์ ๋ ผ์
- ๋ชจ๋ ๋ ๋ฒจ์ ๊ฐ๋ฐ์๊ฐ ํ์ต ๊ฐ๋ฅ
- ์ ์ฉํ ๋ฌธ์๋ ์๋ฃ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด
- ํ ์ ์ฒด์ ์ง์ ์ ๊ณต
- ์ง๋ฌธํ๊ณ ์ดํด ํ์ธํ๊ธฐ
- ์ฝ๋์ ๊ฐ๋ ์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ ํฅ์
- ๋ฌธ์ ์๊ตฌ์ฌํญ ํ์ธ
- ์์ ์ด ํ์ค ํ์ง์ ์ถฉ์กฑํ๋์ง ํ์ธ
- ๋ณ๊ฒฝ์ฌํญ์ ๋ํ ๊ทผ๊ฑฐ ๊ธฐ๋ก
- ์ฃผ๋์ด ๊ฐ๋ฐ์ ์ฝ์นญํด์ฃผ๊ธฐ
- ์ฝ๋๋ฒ ์ด์ค์ ์ฃผ์ธ์์ ํฅ์
- ์ํฅ์ ๋ฐ๋ ๋ค๋ฅธ ํ์๊ฒ ๋ณ๊ฒฝ์ฌํญ ์๋ ค์ฃผ๊ธฐ
- ์ ๋ชจ๋ ์ฌํญ๋ค
- ๋ชจ๋ ์ฝ๋ ๋ฆฌ๋ทฐ๋ ์ง๋ฌธํ๊ณ , ์ง์์ ๊ณต์ ํ๊ณ ๋์์ ์๊ฐํ ์ ์๋ ๊ธฐํ๋ค.
- ์ฝ๋๋ฆฌ๋ทฐ๋ ์ ์๋ฅผ ๋งค๊ธฐ๊ฑฐ๋ ๊ฒํ ์๊ฐ ์์ฑ์๋ณด๋ค ๋ ์ ์๊ณ ์์์ ์ฆ๋ช ํ๋ ์ฐ์ต์ด ์๋๋ค.
- ์์ฑ์์ ๊ฒํ ์ ๋ชจ๋ ๊ฒฐ๊ณผ์ ๊ธ์ ์ ์ธ ๊ธฐ์ฌ๋ฅผ ํ๊ณ ๊ณผ์ ์ค ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐฐ์๊ฐ๋ ๊ฒ์ด ์ด์์ ์ด๋ค.
- ์ฝ๋์ ๋ํ ํผ๋๋ฐฑ์ ๊ฐ์ธ์ ๋ํ ํ๊ฐ๋ก ๋ฐ์๋ค์ฌ์ ์๋๋ค.
- ์ฐ๋ฆฌ๋ ๋ชจ๋๊ฐ ์ต์ ์ ์๋๋ก ํ๋ํ๋ค๊ณ ๊ฐ์ ํ๋ค.
- ๋ถํ ๋์ ๊ฐ์ ์ ์ํ ๊ตฌ์ฒด์ ์ธ ์กฐ์น๋ฅผ ์ ์ํ๋ค.
- ์ฐ๋ฆฌ๋ ํ์ง์ ์ํด ๋ ธ๋ ฅํ์ง๋ง '์๋ฒฝํจ'์ ๋ชฉํ๋ก ํ์ง๋ ์๋๋ค. (์๋ฒฝํ ์ฝ๋๋ ์ด์ฐจํผ ์กด์ฌํ์ง ์๋๋ค.)
- ํ์ด๋ฆฌ๋ทฐ, ๊ทธ๋ฃน๋ฆฌ๋ทฐ ๋ฑ ์ฆ์ ๋ฆฌ๋ทฐ ์ฌ์ดํด ๋ง๋ค๊ธฐ
(์ ์ฒด ๋ฒ์ญ ์์ )
๐ก ํ ์คํธ ๊ฐ๋ฅํ ์์ ํจ์ ์์ฑํ๊ธฐ
์์ ํจ์?
- ์ฌ์ด๋ ์ดํํธ ์์ด ์ถ๋ ฅ๊ฐ์ด ์ ๋ ฅ๊ฐ์ ์ํด์๋ง ๊ฒฐ์ ๋๋ ํจ์.
- ํจ์๊ฐ ๋ฆฌํด๊ฐ ๊ณ์ฐ์ ์ ์ธํ๊ณ ๋ค๋ฅธ ๋์์ ์ํํ๋ฉด ๋ถ์ํ๋ค.
์ ์ญ ์ํ ํผํ๊ณ ๋ก์ปฌ ์ํ ์ ์งํ๊ธฐ
- ํจ์๊ฐ ๋ค๋ฅธ ์ ์ญ๋ณ์์ ์์กดํ๋ฉด ๋ถ์ํ๋ค.
- ์ ๋ค์ด ์ด๋ป๊ฒ ์๋ก ์ฐ๊ด๋์ด ์๋์ง ์ถ์ ํ๋ ๊ฑด ํ๋ค๋ค.
์ฌํ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ
- ํจ์๊ฐ ์์ํ๊ณ , ๊ฐ๋ค์ด ๊ฒ์ฌํ๊ธฐ ์ฌ์ธ ๊ฒฝ์ฐ ํ ์คํ , ๋๋ฒ๊น ํ๊ธฐ ์ฝ๋ค.
- ์ธ์ ๋๊ฒจ์ฃผ๊ณ ์ถ๋ ฅํ์ธํ๋ฉด ํ ์คํธ ๋!
- ์ปจํ ์คํธ ์ค์ , ๋ฆฌํ์คํธ, ์ฌ์ฉ์ ๋ฑ ๋ฐฉํด๋๋ ์ฌ์ด๋์ดํํธ๊ฐ ํ์์๋ค.
์์ ํ๊ฒ ๊ณ์ฐ๊ฒฐ๊ณผ ์บ์ฑ
- ์์ํจ์๋ ์ฐธ์กฐ๊ฐ ํฌ๋ช ํ๋ค. ์ ๋ ฅ์ ๋ํด ํ๋ฒ๋ง ์ถ๋ ฅ ๊ณ์ฐ.
- ์์ํจ์๋ฅผ ํตํด์๋ง ์์ ํ๊ฒ ๊ณ์ฐ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๊ณ ์ฌ์ฌ์ฉํ ์ ์๋ค.
๋ ์ด์ง ๋ก๋ฉ (Laziness)
- ์์ํจ์๋ ์ฌ์ด๋์ดํํธ๋ฅผ ์ผ์ผํค์ง ์๊ธฐ ๋๋ฌธ์ ํธ์ถํ์ง ์์๋, ๋ฆฌํด๊ฐ์ ์ฌ์ฉํ์ง ์์๋ ์๊ด์๋ค.
- ํธ์ถ ์ต์ ํ.
๐ก CSS ๋ ผ๋ฆฌ์ ์์ฑ๊ณผ tailwind css ํ๋ฌ๊ทธ์ธ
- ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ฐ๊ธฐ๋ชจ๋(๊ธ์ ํ๋ฆ ๋ฐฉํฅ)๋ ์ผ→์ค ํ๋ฆ์ด์ง๋ง ๋ชจ๋ ์ธ์ด๊ฐ ์ด์ ๊ฐ์ง ์๋ค.
- CSS๋ฅผ ์ฌ์ฉํ ๋, ๋ค๋ฅธ ์ฐ๊ธฐ๋ชจ๋์ ๋์ํ๊ธฐ ์ํด์
left
,right
์ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์์ฑ๊ฐ์ด ์๋start
,end
๊ฐ์ ์๋์ ์ด๊ณ ๋ ผ๋ฆฌ์ ์ธ ์์ฑ๊ฐ์ด ํ์ํ๋ค. - tailwind css๋ก ๋ ผ๋ฆฌ์ ์์ฑ๊ฐ์ ์ฌ์ฉํ ์ ์๋ ํ๋ฌ๊ทธ์ธ์ด ์๋ค.
๐ก [Vue.js] ์ฑ๋ฅํฅ์์ ์ํ ๋์ import
- ํ์ํ ๋๋ง ๋์ ์ผ๋ก ์ฝ๋๋ฅผ Import ํ๋๋ก ๊ตฌํํ๋ฉด ์ด๊ธฐ ๋ก๋ฉ ์๋ ํฅ์ ๊ฐ๋ฅ.
- ์นํฉ์ lazy loading๊ณผ ์ฝ๋ ์คํ๋ฆฌํ ๊ธฐ๋ฅ์ด ์ ์ฉ๋๋ ๋ถ๋ถ : ๋น๋๊ธฐ ์ปดํฌ๋ํธ, ๋ผ์ฐํฐ, ๋ทฐ์์ค ๋ชจ๋
- ์ฌ์ฉ์์ ์์
// ์ผ๋ฐ์ ์ธ import ์ฌ์ฉ import MyComponent from "~/components/MyComponent.js"; // ๋น๋๊ธฐ import ์ฌ์ฉ const MyComponent = () => import("~/components/MyComponent.js");
๐ฉ๐ป ์ฝ๋ฉํ ์คํธ ์ฐ์ต
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ฃผํ์ง ๋ชปํ ์ ์
- ๋ง๋ผํค์ ์ฐธ๊ฐ์ ๋ฐฐ์ด๊ณผ ์์ฃผ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์๋ฅผ return ํ๋ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ํ ์คํธ์ผ์ด์ค, ํจ์จ์ฑ ์ปค๋ฒ๋ฆฌ์ง 100% ๋ชฉํ!
๐ข ๋ด์ค๋ ํฐ ๊ตฌ๋ ํ๊ธฐ
- ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๊ณต๋ถ ๋ฐ ์์ด ์ค๋ ฅ ํฅ์์ ์ํด ํ ์ฃผ๊ฐ ์ฝ์ ์ธ์ ๊ธฐ์ฌ๋ค์ ์์นด์ด๋นํ๊ณ ์์ต๋๋ค.
- ๊ฐ๋ฐ์ ๊ณต๋ถํ๋ ํ์, ์ฃผ๋์ด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๊ตฌ๋ ์ ํ์ํฉ๋๋ค! ๋ฉ์ผ๋ก ํจ๊ป ์ฝ์ด์ ๐
๋ฐ์ํ'๐ฉ News Letter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
10์ ๋ท์งธ์ฃผ ํ๋ก ํธ์๋ ๋ด์ค๋ ํฐ (0) 2021.10.24 4์ ๋ท์งธ์ฃผ ํ๋ก ํธ์๋ ๋ด์ค๋ ํฐ (0) 2021.04.30