์๊ฐ
ํ๋ก๊ทธ๋๋ฐ์ ์ฒ์ ์ ํ๋ ์ฌ๋์ด๋ ๋ ธ๋ จํ ๊ฐ๋ฐ์์ด๋ ๊ด๊ณ์์ด ์๋ก์ด ๊ฐ๋ ๊ณผ ์ธ์ด/ํ๋ ์์ํฌ๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ ์ด ์ ๊ณ์์ ํธ๋ ๋๋ฅผ ๋ฐ๋ผ์ก๋ ๋ฐ ํ์์ ๋๋ค.
์๋ฅผ ๋ค์ด Facebook์ด ๋ถ๊ณผ XNUMX๋ ์ ์ ์คํ์์ค๋ก ๊ณต๊ฐํ์ผ๋ฉฐ ์ด๋ฏธ ์ ์ธ๊ณ JavaScript ๊ฐ๋ฐ์์๊ฒ ์ต๊ณ ์ ์ ํ์ด ๋ React๋ฅผ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
๋ฌผ๋ก Vue์ Angular๋ ํฉ๋ฒ์ ์ธ ํฌ์ธต์ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Svelte์ Next.js ๋๋ Nuxt.js์ ๊ฐ์ ๊ธฐํ ๋ฒ์ฉ ํ๋ ์์ํฌ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Gatsby, Gridsome, Quasar... ๊ทธ๋ฆฌ๊ณ ํจ์ฌ ๋.
์๋ จ๋ JavaScript ๊ฐ๋ฐ์๋ก์ ์์ ์ ์ฆ๋ช ํ๋ ค๋ฉด ์ค๋๋ JS๋ก ์์ ํ๋ ๊ฒ ์ธ์๋ ๋ค์ํ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๊ฒฝํ์ด ์ต์ํ ์ด๋ ์ ๋ ์์ด์ผ ํฉ๋๋ค.
2020๋
์ ํ๋ฐํธ์๋ ๋ง์คํฐ๊ฐ ๋ ์ ์๋๋ก ๋๊ธฐ ์ํด ์ ๋ XNUMX๊ฐ์ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค. ๊ฐ ํ๋ก์ ํธ๋ ์ฌ๋ฌ๋ถ์ด ๊ตฌ์ถํ๊ณ ํฌํธํด๋ฆฌ์ค์ ์ถ๊ฐํ ์ ์๋ ๊ธฐ์ ์คํ์ผ๋ก์ ์๋ก ๋ค๋ฅธ JavaScript ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์ ์ ๋ก๋๋ค. ์ค์ ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋๋ ๊ฒ๋ณด๋ค ๋ ๋์์ด ๋๋ ๊ฒ์ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ญ์์ค. ๊ทธ๋ฌ๋ ์์ผ๋ก ๋์๊ฐ๊ณ , ๋ง์์ ์ฌ์ฉํ์ฌ ๊ทธ๊ฒ์ ์คํ์ํค์ญ์์ค.
์ด ๊ธฐ์ฌ๋ EDISON Software์ ์ง์์ผ๋ก ๋ฒ์ญ๋์์ต๋๋ค.๋ฉํฐ ๋ธ๋๋ ๋งค์ฅ์ ์ํ ๊ฐ์ ํผํ ๋ฃธ ๋ง๋ค๊ธฐ ๊ณผํ ์คํธ ์ํํธ์จ์ด .
React๋ฅผ ์ฌ์ฉํ ์ํ ๊ฒ์ ์ฑ(ํํฌ ํฌํจ)
๊ฐ์ฅ ๋จผ์ ์์ํ ์ ์๋ ์ผ์ React๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ๊ฒ์ ์ฑ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์๋๋ ์ต์ข ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ์ต์ ๋ณด์ฌ์ฃผ๋ ์ด๋ฏธ์ง์ ๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ์ฑ์ ๊ตฌ์ถํ๋ฉด ์๋์ ์ผ๋ก ์๋ก์ด Hooks API๋ฅผ ์ฌ์ฉํ์ฌ React ๊ธฐ์ ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์์ ํ๋ก์ ํธ์์๋ React ๊ตฌ์ฑ ์์, ๋ง์ ํํฌ, ์ธ๋ถ API ๋ฐ ์ผ๋ถ CSS ์คํ์ผ์ ์ฌ์ฉํฉ๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ํํฌ๋ก ๋ฐ์
- ๋ฐ์ ํ ์ฑ ๋ง๋ค๊ธฐ
- JSX
- CSS
ํด๋์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ด ํ๋ก์ ํธ๋ ๊ธฐ๋ฅ์ React์ ๋ํ ์๋ฒฝํ ์ง์
์ ์ ์ ๊ณตํ๋ฉฐ 2020๋
์ ํ์คํ ๋์์ด ๋ ๊ฒ์
๋๋ค. ๋น์ ์ ์ฐพ์ ์ ์์ต๋๋ค
Vue์ ์ฑํ ์ฑ
๋ ๋ค๋ฅธ ํ๋ฅญํ ํ๋ก์ ํธ๋ ์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ VueJS๋ฅผ ์ฌ์ฉํ์ฌ ์ฑํ ์ฑ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ํํ ๋ฆฌ์ผ์์๋ ๊ตฌ์ฑ ์์ ์์ฑ, ์ํ ์ฒ๋ฆฌ, ๊ฒฝ๋ก ์์ฑ, ํ์ฌ ์๋น์ค ์ฐ๊ฒฐ, ์ธ์ฆ ์ฒ๋ฆฌ ๋ฑ Vue ์ฑ์ ์ฒ์๋ถํฐ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ๋ทฐ
- ๋ทฐ์์ค
- Vue ๋ผ์ฐํฐ
- ๋ทฐ CLI
- ๋ฏธ๋ ์ฌ๋
- CSS
์ด๋ Vue๋ฅผ ์์ํ๊ฑฐ๋ ๊ธฐ์กด ๊ธฐ์ ์ ํฅ์ํ์ฌ 2020๋
๊ฐ๋ฐ์ ์ฐฉ์ํ ์ ์๋ ์ ๋ง ํ๋ฅญํ ํ๋ก์ ํธ์
๋๋ค. ๋น์ ์ ์ฐพ์ ์ ์์ต๋๋ค
Angular 8์ ์ฌ์ฉํ ์๋ฆ๋ค์ด ๋ ์จ ์ฑ
์ด ์๋ Angular 8์ ์ฌ์ฉํ์ฌ ์๋ฆ๋ค์ด ๋ ์จ ์ฑ์ ๋ง๋๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ํ๋ก์ ํธ๋ ์ค๊ณ๋ถํฐ ๊ฐ๋ฐ, ๋ฐฐํฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ฅด๊ธฐ๊น์ง ์ฒ์๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๋ ๋ฐ ํ์ํ ๊ท์คํ ๊ธฐ์ ์ ๊ฐ๋ฅด์ณ์ค๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ๊ฐ๋ 8
- ์คํฌ ๊ธฐ์ง
- ์๋ฒ ์ธก ๋ ๋๋ง
- ๊ทธ๋ฆฌ๋์ Flexbox๊ฐ ํฌํจ๋ CSS
- ๋ชจ๋ฐ์ผ ์นํ์ ์ด๊ณ ์ ์์ฑ
- ๋คํฌ ๋ชจ๋
- ํฌ๋ผ์๋ฐ ์ธํฐํ์ด์ค
์ด ํฌ๊ด์ ์ธ ํ๋ก์ ํธ์์ ์ ๊ฐ ์ ๋ง ์ข์ํ๋ ์ ์ ๊ณ ๋ฆฝ๋ ์ํ์์ ๊ณต๋ถํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋์ ์ค๊ณ๋ถํฐ ์ต์ข ๋ฐฐํฌ๊น์ง ์ ์ฒด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์๋๋ค.
Svelte๋ฅผ ์ฌ์ฉํ To-Do ์ ํ๋ฆฌ์ผ์ด์
Svelte๋ ์ต์ํ React, Vue ๋ฐ Angular์ ์ ์ฌํ ๊ตฌ์ฑ ์์ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ์๋ก์ด ์์ด์ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ 2020๋ ๊ฐ์ฅ ํซํ ์ ์ ํ ์ค ํ๋์ ๋๋ค.
To-Do ์ฑ์ ๋ฐ๋์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์ฃผ์ ๋ ์๋์ง๋ง Svelte ๊ธฐ์ ์ ์ฐ๋งํ๋ ๋ฐ ์ค์ ๋ก ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ผ ๊ฒ์ ๋๋ค:
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ํํ ๋ฆฌ์ผ์์๋ ์ฒ์๋ถํฐ ๋๊น์ง Svelte 3๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ตฌ์ฑ์์, ์คํ์ผ, ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ๋ ์ฌํ 3
- ๊ตฌ์ฑ ์์
- CSS๋ฅผ ์ฌ์ฉํ ์คํ์ผ๋ง
- ES 6 ๊ตฌ๋ฌธ
์ข์ Svelte ์คํํฐ ํ๋ก์ ํธ๊ฐ ๋ง์ง ์์์ ์ฐพ์์ต๋๋ค.
Next.js๋ฅผ ์ฌ์ฉํ ์ ์์๊ฑฐ๋ ์ฑ
Next.js๋ ์ฆ์ ์๋ฒ ์ธก ๋ ๋๋ง์ ์ง์ํ๋ React ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ์ ๋๋ค.
์ด ํ๋ก์ ํธ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ ์๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ํ๋ก์ ํธ์์๋ Next.js๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ, ์ฆ ์ ํ์ด์ง์ ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋ค๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ , Next ์ ํ๋ฆฌ์ผ์ด์
์ ์คํ์ผ์ ์ง์ ํ๊ณ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ๋ค์ .js
- ๊ตฌ์ฑ ์์ ๋ฐ ํ์ด์ง
- ๋ฐ์ดํฐ ์ํ๋ง
- ์คํ์ผ๋ง
- ํ๋ก์ ํธ ๋ฐฐํฌ
- SSR ๋ฐ SPA
์๋ก์ด ๊ฒ์ ๋ฐฐ์ฐ๊ธฐ ์ํด ์ ์์๊ฑฐ๋ ์ฑ๊ณผ ๊ฐ์ ์ค์ ์ฌ๋ก๋ฅผ ๊ฐ๋ ๊ฒ์ ํญ์ ์ข์ ์ผ์
๋๋ค. ๋น์ ์ ํ ์ ์์ต๋๋ค
Nuxt.js๋ฅผ ์ฌ์ฉํ ๋ณธ๊ฒฉ์ ์ธ ๋ค๊ตญ์ด ๋ธ๋ก๊ทธ
Nuxt.js๋ Vue์ฉ์ด๊ณ Next.js๋ React์ฉ์
๋๋ค. ์๋ฒ ์ธก ๋ ๋๋ง๊ณผ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ์ ๊ฒฐํฉํ๊ธฐ ์ํ ํ๋ฅญํ ํ๋ ์์ํฌ์
๋๋ค.
๋ง๋ค ์ ์๋ ์ต์ข
์ ํ๋ฆฌ์ผ์ด์
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ์ํ ํ๋ก์ ํธ์์๋ ์ด๊ธฐ ์ค์ ๋ถํฐ ์ต์ข ๋ฐฐํฌ๊น์ง Nuxt.js๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ์น์ฌ์ดํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
ํ์ด์ง, ๊ตฌ์ฑ ์์, SCSS๋ฅผ ์ฌ์ฉํ ์คํ์ผ๋ง ๋ฑ Nuxt๊ฐ ์ ๊ณตํ๋ ๋ฉ์ง ๊ธฐ๋ฅ์ ๋ง์ด ํ์ฉํฉ๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- Nuxt.js
- ๊ตฌ์ฑ ์์ ๋ฐ ํ์ด์ง
- ์คํ ๋ฆฌ๋ธ๋ก ๋ชจ๋
- ๋จน์ฅ์ด
- ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ Vuex
- ์คํ์ผ๋ง์ ์ํ SCSS
- Nuxt ๋ฏธ๋ค์จ์ด
๊ฐ์ธ ๋น์ ํจ๊ปํ๋ ๋ธ๋ก๊ทธ
Gatsby๋ React์ GraphQL์ ์ฌ์ฉํ๋ ๋ฐ์ด๋ ์ ์ ์ฌ์ดํธ ์์ฑ๊ธฐ์ ๋๋ค. ํ๋ก์ ํธ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ํํ ๋ฆฌ์ผ์์๋ Gatsby๋ฅผ ์ฌ์ฉํ์ฌ React ๋ฐ GraphQL์ ์ฌ์ฉํ์ฌ ์์ ๋ง์ ๊ธฐ์ฌ๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ๊ฐ์ธ ๋น
- ๋ฐ์
- GraphQL
- ํ๋ฌ๊ทธ์ธ ๋ฐ ํ ๋ง
- MDX/๋งํฌ๋ค์ด
- ๋ถํธ ์คํธ๋ฉ CSS
- ํ ํ๋ฆฟ
๋ธ๋ก๊ทธ๋ฅผ ์์ํ๊ณ ์ถ์๋ ์ ์ด ์๋ค๋ฉด,
WordPress๊ฐ ๋์ ์ ํ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ ์๋์ง๋ง Gatsby๋ฅผ ์ฌ์ฉํ๋ฉด React๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์ฑ๋ฅ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ด๋ ๋๋ผ์ด ์กฐํฉ์ ๋๋ค.
Gridsome๊ณผ ํจ๊ปํ๋ ๋ธ๋ก๊ทธ
Vue์ฉ Gridsome... ์ข์ต๋๋ค. Next/Nuxt์์๋ ์ด๋ฏธ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ต๋๋ค.
๊ทธ๋ฌ๋ Gridsome๊ณผ Gatsby์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ๋ ๋ค GraphQL์ ๋ฐ์ดํฐ ๊ณ์ธต์ผ๋ก ์ฌ์ฉํ์ง๋ง Gridsome์ VueJS๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ๋ํ ํ๋ฅญํ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋๋ ๋ฐ ๋์์ด ๋๋ ๋๋ผ์ด ์ ์ ์ฌ์ดํธ ์์ฑ๊ธฐ์
๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
์ด ํ๋ก์ ํธ์์๋ Gridsome, GraphQL ๋ฐ Markdown์ ์์ํ๊ธฐ ์ํด ๊ฐ๋จํ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋๋ค. ๋ํ Netlify๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ๋ ๋ค๋ฃน๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ๊ทธ๋ฆฌ์ฌ
- ๋ทฐ
- GraphQL
- ์ธํ
- ๋คํฐ ํ์ด
์ด๊ฒ์ ํ์คํ ๊ฐ์ฅ ํฌ๊ด์ ์ธ ํํ ๋ฆฌ์ผ์ ์๋์ง๋ง Gridsome์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ
Quasar๋ฅผ ์ฌ์ฉํ๋ SoundCloud์ ์ ์ฌํ ์ค๋์ค ํ๋ ์ด์ด
Quasar๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ ๋ค๋ฅธ Vue ํ๋ ์์ํฌ์ ๋๋ค. ์ด ํ๋ก์ ํธ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋์ค ํ๋ ์ด์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ญ๋๋ค.
๋ฌด์์ ๋ฐฐ์ธ ๊ฒ์ธ๊ฐ
๋ค๋ฅธ ํ๋ก์ ํธ๋ ์ฃผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ค์ ์ ๋์ง๋ง, ์ด ํ๋ก์ ํธ์์๋ Vue ๋ฐ Quasar ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
Android Studio/Xcode๊ฐ ๊ตฌ์ฑ๋ ์ํ์์ Cordova๊ฐ ์ด๋ฏธ ์คํ ์ค์ด์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ค๋ช
์์๋ ๋ชจ๋ ์ค์ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ Quasar ์น์ฌ์ดํธ ๋งํฌ๊ฐ ์์ต๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ธฐ๋ฅ
- ํ์ด์ฌ
- ๋ทฐ
- ์ฝ๋ฅด๋๋ฐ
- ์จ์ด๋ธ์ํผ
- UI ๊ตฌ์ฑ์์
์ถ์ฒ : habr.com