https://github.com/clzzi/nextstudy
๐งจ Next JS์ ๋ํด์ ๊ณต๋ถํ ์์ค์ฝ๋ ๋ฐ ๋ด์ฉ์ ์ฌ๋ฆฌ๋ ๊ณณ
https://github.com/clzzi/nextstudy
nextjs recoil ts
Last synced: about 2 months ago
JSON representation
๐งจ Next JS์ ๋ํด์ ๊ณต๋ถํ ์์ค์ฝ๋ ๋ฐ ๋ด์ฉ์ ์ฌ๋ฆฌ๋ ๊ณณ
- Host: GitHub
- URL: https://github.com/clzzi/nextstudy
- Owner: Clzzi
- Created: 2021-08-02T11:06:56.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-08-06T00:40:16.000Z (almost 5 years ago)
- Last Synced: 2025-08-03T01:24:54.754Z (10 months ago)
- Topics: nextjs, recoil, ts
- Language: JavaScript
- Homepage: https://next-study-nine.vercel.app
- Size: 422 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### ๐งจ Next JS์ ๋ํด์ ๊ณต๋ถํ ์์ค์ฝ๋ ๋ฐ ๋ด์ฉ์ ์ฌ๋ฆฌ๋ ๊ณณ
### NEXT JS์ ์ฅ์ ๋ฐ ๊ธฐ๋ฅ
- **Hot Reloading** | ๊ฐ๋ฐ ์ค ์ ์ฅ๋๋ ์ฝ๋๋ ์๋์ผ๋ก ๋ฐ์๋จ
- **Automatic Routing** | pagesํด๋ ์์ ์๋ ํด๋ ๋ฐ ํ์ผ์ ํด๋น ์ด๋ฆ์ผ๋ก ๋ผ์ฐํ
๋๋ค.
Ex) pages/postFolder/post1.tsx -> localhost:3000/postFolder/post1
- **Tags** | Next์์ ์ ๊ณตํด์ฃผ๋ Image๋ Link ํ๊ทธ๋ฑ์ ํตํด UX๋ฅผ ์ข๊ฒํ ์ ์๋ค.
- **Pre-Rendering** | Next์ ํต์ฌ ๊ธฐ๋ฅ, SSG ๋ฐ SSR๋ฅผ ํ์ผ ๋จ์๋ก ์ฌ์ฉํ ์ ์์.
- **SEO** | SSR ๋ฐ SSG๋ฅผ ์ง์ํจ์ผ๋ก์จ SEO๋ฅผ ์ต์ ํ ํ ์ ์์.
- **CNA** | CRA์ฒ๋ผ Create-next-app์ผ๋ก ๋น ๋ฅธ babel๋ฐ webpack์ค์ ์ ํ ์ ์์.
- **Styling** | ๋ด์ฅ SASS/CSS ์ง์, CSS-in-JS lib ๋ชจ๋ ์ง์
- **๋ฐฐํฌ** | ๋ฐฐํฌํ๊ธฐ๊ฐ ์ฌ์
- **CORS** | Data๋ฅผ ๊ฐ์ ธ์ค๋์ชฝ์์์ CORS๋ฌธ์ ๋ SSR์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์
- **TypeScript** | TypeScript๋ฅผ ์ ์ง์ํด์ค, ์ ์ฉํ๊ธฐ ์ฌ์
- **Code Spliting** | ์ผ๋ฐ์ ์ธ React ํ์ด์ง ์์๋ ์ด๊ธฐ ๋ ๋๋ง ๋ ๋ชจ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ด๋ ค๋ฐ๊ฒ ๋จ, ๊ทธ๋์ ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง๊ณ ์ฉ๋์ด ์ปค์ง๋ฉด ์ด๊ธฐ ๋ก๋ฉ์๋๊ฐ ์ง์ฐ๋ ์ ๋ฐ์์์.
Next์์๋ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํด์ ํ์์ ๋ฐ๋ผ ํ์ผ์ ๋ถ๋ฌ์ฌ ์ ์๊ฒ ์ฌ๋ฌ ๊ฐ์ ํ์ผ์ ๋ถ๋ฆฌํ๋ Code Spliting์ ์๋์ผ๋ก ํด์ค.
### NEXT JS์ ๋จ์
- **Learning Curve** | ์๋์ ์ผ๋ก ๊ฐ์ ๋ฐ ์๋ฃ๋ค์ด ๋ง์ React, ์ํ๊ด๋ฆฌ ๊ธฐ์ ๋ค์ ๊ณต๋ถํ๊ณ ์จ ๋๋ก์จ๋ ์์ด๋ก๋ docs ๋ฐ ์ ์ ์๋ฃ๋ค์ ๊ณต๋ถํ๊ณ ์ตํ๊ธฐ์ ์ข ํ๋ค์๋ค.
- **Custom** | ์ด๊ฑด ์ฅ์ ์ด์ ๋จ์ ์, next.config.js, custom server๋ฑ ์ปค์คํ
ํ ๋ถ๋ถ์ด ์๊น
- ๋ค๋ฅธ๊ฑด ๋ฑํ ์๋๋ฏ.
### ํน์ง
- **getStaticProps** | ```Fetch data at build time, pre-render for Static Generation```๋ผ๊ณ Docs์ ๋์์๋๋ฐ ์๋ฒ์์ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ๋น๋์ ๊ฐ์ด ๊ณ ์ ๋๊ณ ๋น๋ํ์๋ ์๋ฒ์ ๊ฐ์ด ๋ณ๊ฒฝ๋์ด๋ ๋ฐ์๋์ง ์์,์ด๊ฒ์ ์ฌ๋ฌ ์ต์
๋ค๋ก ํด๊ฒฐํ ์ ์์
(staticํ data๋ค์ ์ํ data fetching์ ์ฌ์ฉ๊ถ์ฅ), ์ต์
๋ค ๋ฐ ์์ธํ ๋ด์ฉ์ [์ฌ๊ธฐ](https://nextjs.org/docs/basic-features/data-fetching#getstaticprops-static-generation) ์์ ์์๋ณผ ์ ์์
- **getServerSideProps** | ```Fetch data on each request. pre-render for Server-side Rendering```๋ผ๊ณ Docs์ ๋์์๋๋ฐ **getStaticProps**์๋ ๋ค๋ฅด๊ฒ ๋น๋์ ์๊ด์์ด, ๋งค ์์ฒญ๋ง๋ค ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก๋ถํฐ ๊ฐ์ ธ์ด.
(ssr์ ์ํ data fetching์ ์ฌ์ฉ๊ถ์ฅ) ์์ธํ ๋ด์ฉ์ [์ฌ๊ธฐ](https://nextjs.org/docs/basic-features/data-fetching#getserversideprops-server-side-rendering)์์ ํ์ธํ ์ ์์
- ์ฆ **getStaticProps** ์ **getServerSideProps**์ ์ฐจ์ด๋ ๋น๋์ดํ์ data๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ์ง์ ์ฌ๋ถ์.
(์ด๊ฒ๋ง์ ๋ **getStaticProps**์ ํน์ ์ต์
์ผ๋ก ํด๊ฒฐ๊ฐ๋ฅํ๊ธดํจ)
- **getStaticPaths** | ```Specify Dynamic Routes to Pre-Render pages based on Data```๋ผ๊ณ Docs์ ๋์์์, ๋น๋์์ ํน์ ๋์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ์ฌ ์ฌ์ ๋ ๋ํ ์ ์๋ ๊ธฐ๋ฅ์, ๋น๋์ ํน์ ํ์ด์ง๋ง ๋จผ์ ๋ค์ด๋ฐ์๋๋ ๋๋
### ๋ฐฐํฌ ๋ฐ ํ ์ดํ๋ก์ ํธ๋ก ๋ง๋ ์น
1ํ๊ธฐ ๊ธฐ๋ง๊ณ ์ฌ์ ์ ๊น ```Recoil``` & ```MobX``` & ```JS``` ์คํ์ผ๋ก ๋ง๋ ์ฝ๋ก๋ ํต๊ณ ์น ์ฌ์ดํธ๊ฐ ์๊ฐ๋์ ์ด๋ฒ ๊ธฐํ์ ๋ค์ ๋ง๋ค์ด๋ณด์๊ณ ์๊ฐํด์ ```NEXT``` & ```TS``` & ```Recoil``` ์คํ์ผ๋ก ๋ค์ ๋ง๋ค์ด ๋ณด์๋ค. Figma๋ก ๋์์ธ๋ ์กฐ๊ธ์ฉ ํด์ ๋ง๋ ๊ฑฐ๋ผ์ ์๊ฐ๋ณด๋ค ๋ ์น๊ณ ๋ ํ๋ฆฌํฐ๊ฐ ์ ๋์จ๊ฒ๊ฐ๋ค! NEXT๋ง์ ์ฅ์ ์ ์ ๋ง๋ณผ ์์๋ ํ๋ก์ ํธ์๋๊ฒ๊ฐ๊ณ
๋ฐฐํฌ๋ vercel ์ฌ์ดํธ๋ก ํ์๋๋ฐ github ๋ ํฌ์งํ ๋ฆฌ์ ์ฐ๋ํ์ฌ ๋ฐฐํฌํ๋ ์๋์ผ๋ก ํด์ฃผ์๋ค. ๋ฐฐํฌ๊ณผ์ ์์ Linkํ๊ทธ๋ฅผ importํด์ค๋๋ฐ ๊ฒฝ๋ก๋ฅผ ```next/Link```๋ก ๋๋ฌธ์๋ฅผ ๋ฃ์๋๋ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ์ด๊ฑธ๋ณด๋์ฌ๋๋ค์ ๊ผญ ์๋ฌธ์๋ฅผ ๋ฃ์ด์ ์ด์ด์๊ฒ ์คํจํ์ง ๋ง์..


### ๋๋์
React๋ฐ ์ํ๊ด๋ฆฌ๋ฅผ ์ด๋์ ๋ ๋ค๋ฃฐ ์ ์๊ฒ ๋๊ณ ๋์ NEXT๋ฅผ ๊ณต๋ถํ๊ธฐ ์์ํ๋๋ฐ ์์ด๋ก๋ Docs๋ ์๋์ ์ผ๋ก ์ ์ ์๋ฃ๋ค๋ก ๊ณต๋ถํ๋๊ฒ ์ฝ์ง ์์๋ค. ์์ด ๊ณต๋ถ๋ฅผ ๋ ํด์ผ๊ฒ ๋ค๊ณ ๋๊ผ๊ณ ์์ง ๊ณต์๋ฌธ์๋ฅผ ์ ๋ณด์ง๋ชปํ๋ค๊ณ ์๊ฐํ๋ค.
๋งจ ์ฒ์ ๊ณต๋ถํ๊ธฐ ์์ํ์ ๋๋ ํ์ผ๊ตฌ์กฐ๋ ์ํ๊ด๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ํต์ ์ ๋ํ ํ๋ฆ์ ์ดํดํ๊ธฐ ์ด๋ ค์์ ํ๋ค์์ผ๋,
๋ค๋ฅธ์ฌ๋๋ค์ ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ์ ์น๊ตฌ๋ค์ ์กฐ์ธ์ผ๋ก ์์ํด์ง๊ฒ ๊ฐ๋ค.
๋ SSR์ํ๊ธฐ์ํด์ ๋ง์ด ๊ณต๋ถํด์ผํ๋์ค ์์์ผ๋ React์ ์ํ๊ด๋ฆฌ๋ฅผ ์ด๋์ ๋ ๋ค๋ฃฐ ์ ์์ผ๋ฉด NEXT์ ๋๋ถ์ธ์ง ๊ตฌํํ๋๊ฒ์ด ๊ฝค ์ฌ์ ๋ค.
์์ผ๋ก ๋ธ๋ก๊ทธ๋ฑ SSR์ด ํ์ํ ์ฌ์ดํธ๊ฐ ์์ผ๋ฉด NEXT๋ฅผ ์ด์ฉํด์ ๋ง๋ค์ด ๋ณผ๊ฒ๊ฐ๋ค.