Skip to content

Commit 086d1db

Browse files
πŸ“ docs: readme μž‘μ„±
1 parent 3f61906 commit 086d1db

File tree

1 file changed

+88
-23
lines changed

1 file changed

+88
-23
lines changed

β€ŽREADME.md

Lines changed: 88 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,101 @@
1-
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
1+
# 5μ£Όμ°¨ λ―Έμ…˜: Next-Netflix
22

3-
## Getting Started
3+
# κ²°κ³Όλ¬Ό
44

5-
First, run the development server:
5+
- [베포 링크](https://next-netflix-20th-gamma.vercel.app/)
66

7-
```bash
8-
npm run dev
9-
# or
10-
yarn dev
11-
# or
12-
pnpm dev
13-
# or
14-
bun dev
15-
```
7+
# Key Questions
168

17-
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
9+
## React 18 λ²„μ „μ˜ 변경점에 λŒ€ν•΄ μ„€λͺ…ν•΄μ£Όμ„Έμš”.(+ 19 버전에 λŒ€ν•œ μΆ”κ°€ μ„€λͺ…도 μ’‹μŠ΅λ‹ˆλ‹€)
1810

19-
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
11+
React 18버전은 μ„œλ²„ μ»΄ν¬λ„ŒνŠΈμ™€ ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈμ˜ ꡬ뢄, lazy loadingκ³Ό Suspense κΈ°λŠ₯, μžλ™ λ°°μΉ­ κΈ°λŠ₯ 등을 λ„μž…ν–ˆλ‹€.
2012

21-
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
13+
### μžλ™ λ°°μΉ­
2214

23-
## Learn More
15+
- μžλ™ 배칭은 μ—¬λŸ¬ 개의 μƒνƒœ μ—…λ°μ΄νŠΈλ₯Ό λ¬Άμ–΄ ν•œ 번의 λ Œλ”λ§μœΌλ‘œ μ²˜λ¦¬ν•˜μ—¬ μ„±λŠ₯을 λ†’μ΄λŠ” 것이닀.
16+
- 18 이전 λ²„μ „μ—μ„œλ„ 이벀트 ν•Έλ“€λŸ¬μ—μ„œλŠ” μžλ™ 배칭이 μ§€μ›λ˜μ—ˆλ‹€.
17+
- 예λ₯Ό λ“€μ–΄, 이벀트 ν•Έλ“€λŸ¬ λ‚΄μ—μ„œ `setState` ν•¨μˆ˜λ‘œ μ—¬λŸ¬ μƒνƒœκ°€ λ³€κ²½λ˜μ–΄λ„ λ Œλ”λ§μ€ ν•œ 번만 일어났닀.
18+
- ν•˜μ§€λ§Œ `setTimeout` λ“±μ˜ 비동기 ν•¨μˆ˜μ—μ„œλŠ” μžλ™ 배칭이 μ μš©λ˜μ§€ μ•Šμ•„ `setTimeout` λ‚΄μ˜ `setState` ν•¨μˆ˜λŠ” 각각 λ Œλ”λ§μ„ μš”κ΅¬ν–ˆλ‹€.
19+
- ν•˜μ§€λ§Œ 18λΆ€ν„°λŠ” 비동기 ν•¨μˆ˜ λ‚΄μ—μ„œλ„ μžλ™ 배칭이 μ§€μ›λ˜λ„λ‘ ν–ˆλ‹€.
2420

25-
To learn more about Next.js, take a look at the following resources:
21+
### μ„œλ²„ 및 ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈ
2622

27-
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28-
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
23+
- μ„œλ²„ μ»΄ν¬λ„ŒνŠΈ
24+
- μ„œλ²„μ—μ„œ 데이터λ₯Ό λ Œλ”λ§ν•΄ HTML둜 μ „λ‹¬ν•œλ‹€.
25+
- μ„œλ²„μ—μ„œλ§Œ μ²˜λ¦¬λ˜λŠ” μ»΄ν¬λ„ŒνŠΈλ‘œ, μƒνƒœλ‚˜ μœ μ €μ˜ μΈν„°λž™μ…˜μ΄ ν•„μš” μ—†λŠ” UI에 주둜 μ‚¬μš©λœλ‹€.
26+
- ex) 정적 λ°μ΄ν„°λ Œλ”λ§, SEOλ₯Ό μœ„ν•œ 데이터 λ‘œλ“œ
27+
- ν΄λΌμ΄μ–ΈνŠΈλ‘œ λΆˆν•„μš”ν•œ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό 보내지 μ•ŠμœΌλ―€λ‘œ λ‘œλ”© 속도가 λΉ λ₯΄κ³  μ„±λŠ₯이 ν–₯μƒλœλ‹€.
28+
- ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈ
29+
- λΈŒλΌμš°μ €μ—μ„œ μ‹€ν–‰λ˜λ©°, μƒνƒœ κ΄€λ¦¬λ‚˜ 이벀트 핸듀링이 ν•„μš”ν•œ κ²½μš°μ— μ‚¬μš©λœλ‹€.
30+
- ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈ λ‚΄μ—μ„œ μ„œλ²„ μ»΄ν¬λ„ŒνŠΈλ₯Ό 가져와 ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆλ‹€.
31+
- 주둜 μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ΄ μš”κ΅¬λ˜λŠ” UI μš”μ†Œμ— μ‚¬μš©λœλ‹€.
2932

30-
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
33+
### Lazy Loadingκ³Ό Suspense
3134

32-
## Deploy on Vercel
35+
- Lazy Loading
36+
- μ»΄ν¬λ„ŒνŠΈλ₯Ό ν•„μš”ν•  λ•ŒκΉŒμ§€ λ‘œλ“œν•˜μ§€ μ•Šκ³ , μ‚¬μš©μžκ°€ ν•΄λ‹Ή μ»΄ν¬λ„ŒνŠΈλ₯Ό ν•„μš”λ‘œ ν•  λ•Œ λ‘œλ“œν•¨μœΌλ‘œμ¨ 초기 λ‘œλ”© μ‹œκ°„μ„ 쀄일 수 μžˆλ‹€.
37+
- `React.lazy()`λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„€μ •ν•  수 μžˆλ‹€.
38+
- Suspense
39+
- λΉ„λ™κΈ°μ μœΌλ‘œ λ‘œλ“œλ˜λŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό 감싸 λ‘œλ”© 쀑인 μƒνƒœλ₯Ό μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν•œ μ»΄ν¬λ„ŒνŠΈμ΄λ‹€.
40+
- `Suspense`λ₯Ό μ‚¬μš©ν•˜μ—¬ 뢈러올 수 있고, `fallback` μ†μ„±μœΌλ‘œ 데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” λ™μ•ˆ 보여쀄 λ‘œλ”© UIλ₯Ό 전달할 수 μžˆλ‹€.
3341

34-
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
42+
## nextJS 13 μ΄ν›„μ˜ app routing λ°©μ‹μ˜ νŠΉμ§•κ³Ό κΈ°λŠ₯에 λŒ€ν•΄ μ„€λͺ…ν•΄μ£Όμ„Έμš”.
3543

36-
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
44+
### app router
45+
46+
- 13 μ΄μ „μ—λŠ” `pages` 디렉토리 μ•ˆμ˜ νŒŒμΌλ“€μ„ 라우트둜 λ³€ν™˜ν–ˆλ‹€. νŽ˜μ΄μ§€λ³„λ‘œ ν•˜λ‚˜μ˜ 파일이 ν•„μš”ν•˜λ‹€.
47+
- 13λΆ€ν„°λŠ” `app` 디렉토리λ₯Ό μ‚¬μš©ν•˜λ©°, `layout.js`, `page.ts` νŒŒμΌμ„ ν†΅ν•΄μ„œ λΌμš°νŒ…ν•  수 μžˆλ‹€.
48+
- `layout.js` νŒŒμΌμ€ μ€‘μ²©λœ λ ˆμ΄μ•„μ›ƒμ„ κ΄€λ¦¬ν•œλ‹€. 각 νŽ˜μ΄μ§€λ§ˆλ‹€ κ³΅ν†΅λœ UIλ₯Ό μ œκ³΅ν•  수 μžˆλ‹€.
49+
- `page.ts`λŠ” μ‹€μ œ νŽ˜μ΄μ§€ μ½˜ν…μΈ λ₯Ό μ •μ˜ν•œλ‹€.
50+
51+
### 패러렐(Parallel) 라우트
52+
53+
- ν•˜λ‚˜μ˜ νŽ˜μ΄μ§€ λ‚΄μ—μ„œ λ™μ‹œμ— μ—¬λŸ¬ 라우트λ₯Ό λ Œλ”λ§ν•  수 μžˆλ‹€.
54+
- λŒ€μ‹œλ³΄λ“œλ‚˜ μ†Œμ…œ λ―Έλ””μ–΄ ν”Όλ“œ λ“±μ—μ„œ μ‚¬μš©ν•˜κΈ° μ’‹λ‹€.
55+
- 병렬 λΌμš°νŒ…μ€ λͺ…λͺ…λœ 슬둯(@folder)을 μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„λœλ‹€. 각 μŠ¬λ‘―μ€ λ…λ¦½μ μœΌλ‘œ λ Œλ”λ§λ˜λ©°, URL ꡬ쑰에 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ”λ‹€.
56+
- 병렬 λΌμš°νŒ…μ„ μ‚¬μš©ν•˜λ©΄ 인증 μƒνƒœλ‚˜ 기타 쑰건에 따라 λ Œλ”λ§ν•  μ½˜ν…μΈ λ₯Ό 선택할 수 있.
57+
- ex) 둜그인 μƒνƒœμ— 따라 λŒ€μ‹œλ³΄λ“œμ™€ 둜그인 νŽ˜μ΄μ§€λ₯Ό μ„ νƒμ μœΌλ‘œ λ Œλ”λ§ν•˜κΈ°
58+
- 병렬 λΌμš°νŠΈμ—μ„œ URLκ³Ό μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” μŠ¬λ‘―μ€ default.js 파일둜 λŒ€μ²΄λœλ‹€. λ§Œμ•½ default.jsκ°€ μ—†μœΌλ©΄ 404 νŽ˜μ΄μ§€κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.
59+
60+
### μΈν„°μ…‰νŒ…(Intercepting) 라우트
61+
62+
- νŽ˜μ΄μ§€ 이동 쀑에 νŠΉμ • λ™μž‘μ„ μ²˜λ¦¬ν•  수 μžˆλ‹€.
63+
- ex) λ‘œλ”© μƒνƒœ, μ—λŸ¬ 처리, μΆ”κ°€ 데이터 λ°›μ•„μ˜€κΈ° λ“±
64+
- (..): ν•œ 단계 μœ„μ˜ λ””λ ‰ν† λ¦¬μ—μ„œ 라우트λ₯Ό κ°€λ‘œμ±„κΈ°
65+
- (...): app 디렉토리 κΈ°μ€€μœΌλ‘œ 라우트λ₯Ό κ°€λ‘œμ±„κΈ°
66+
- Hard Navigation
67+
- 전체 νŽ˜μ΄μ§€ μƒˆλ‘œ κ³ μΉ¨: νŽ˜μ΄μ§€ 이동 μ‹œ ν˜„μž¬ νŽ˜μ΄μ§€λ₯Ό μ™„μ „νžˆ λ²—μ–΄λ‚˜μ„œ μƒˆλ‘œμš΄ νŽ˜μ΄μ§€λ₯Ό μ„œλ²„μ—μ„œ λ‹€μ‹œ κ°€μ Έμ˜¨λ‹€.
68+
- νŽ˜μ΄μ§€ μƒνƒœ μ΄ˆκΈ°ν™”: μƒˆλ‘œκ³ μΉ¨μ΄λ‚˜ νŽ˜μ΄μ§€ 이동 μ‹œ λͺ¨λ“  μƒνƒœκ°€ μ΄ˆκΈ°ν™”λœλ‹€.
69+
- λ„€νŠΈμ›Œν¬ μš”μ²­: μ„œλ²„μ—μ„œ μƒˆλ‘œμš΄ μ½˜ν…μΈ λ₯Ό μš”μ²­ν•˜λŠ” 방식이기 λ•Œλ¬Έμ— νŽ˜μ΄μ§€ 이동 μ‹œ λ„€νŠΈμ›Œν¬ μš”μ²­μ΄ λ°œμƒν•œλ‹€.
70+
- Soft Navigation
71+
- νŽ˜μ΄μ§€ μƒˆλ‘œ κ³ μΉ¨ μ—†μŒ: νŽ˜μ΄μ§€ 이동 μ‹œ 전체 νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œ κ³ μΉ¨ν•˜μ§€ μ•Šκ³ , ν•„μš”ν•œ λ°μ΄ν„°λ‚˜ μ½˜ν…μΈ λ§Œμ„ ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œμ—μ„œ λ™μ μœΌλ‘œ μ—…λ°μ΄νŠΈν•œλ‹€.
72+
- μƒνƒœ μœ μ§€: νŽ˜μ΄μ§€ 이동 후에도 νŽ˜μ΄μ§€μ˜ μƒνƒœκ°€ μœ μ§€λœλ‹€.
73+
- λΉ λ₯Έ μ „ν™˜: νŽ˜μ΄μ§€κ°€ μ™„μ „νžˆ μƒˆλ‘œ λ‘œλ“œλ˜μ§€ μ•ŠλŠ”λ‹€.
74+
75+
## vercel, netlify 같은 ν˜ΈμŠ€νŒ… ν”Œλž«νΌμ˜ νŠΉμ§•κ³Ό λ‚΄λΆ€ κ΅¬ν˜„ 원리에 λŒ€ν•΄ μ„€λͺ…ν•΄μ£Όμ„Έμš”(+ aws의 μŠ€ν† λ¦¬μ§€μ™€ μΈμŠ€ν„΄μŠ€ λ“± μƒνƒœκ³„μ— λŒ€ν•΄μ„œλ„ μ•Œλ €μ£Όμ„Έμš”)
76+
77+
- Vercel
78+
- Vercel은 Next.js의 κ°œλ°œμ‚¬λ‘œ, ν΄λΌμš°λ“œ 기반의 ν”Œλž«νΌμœΌλ‘œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉ λ₯΄κ²Œ λ°°ν¬ν•˜κ³  μ΅œμ ν™”ν•΄μ€€λ‹€.
79+
- CI/CD μžλ™ν™”: Vercel은 GitHub 등에 연동해 컀밋이 λ°œμƒν•  λ•Œλ§ˆλ‹€ μžλ™μœΌλ‘œ λΉŒλ“œν•˜κ³  λ°°ν¬ν•œλ‹€.
80+
- μ„œλ²„λ¦¬μŠ€ κΈ°λŠ₯: Vercel은 μ„œλ²„λ¦¬μŠ€ μ•„ν‚€ν…μ²˜λ₯Ό μ§€μ›ν•˜μ—¬, ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ— 따라 μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜κ°€ νŠΈλ¦¬κ±°λœλ‹€. AWS Lambda와 μœ μ‚¬ν•œ λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λ©°, μš”μ²­ μ‹œμ—λ§Œ μ‹€ν–‰λ˜κ³ , 싀행이 λλ‚˜λ©΄ μ„œλ²„ μžμ›μ€ μžλ™μœΌλ‘œ ν•΄μ œλœλ‹€.
81+
- 캐싱과 μ—£μ§€ λ„€νŠΈμ›Œν¬: μ „ 세계에 λΆ„μ‚°λœ CDN(Content Delivery Network)을 톡해 정적 μ½˜ν…μΈ λ₯Ό μΊμ‹±ν•˜κ³ , ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ œκ³΅ν•œλ‹€.
82+
- Netlify
83+
84+
- NetlifyλŠ” Jamstack(JavaScript, API, Markup) μ•„ν‚€ν…μ²˜μ— μ΅œμ ν™”λœ ν˜ΈμŠ€νŒ… ν”Œλž«νΌμœΌλ‘œ, 주둜 정적 μ‚¬μ΄νŠΈμ™€ μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜μ˜ 배포λ₯Ό ν•  수 μžˆλ‹€.
85+
- CI/CD νŒŒμ΄ν”„λΌμΈ: NetlifyλŠ” Git μ €μž₯μ†Œμ™€ μ—°κ²°ν•΄ λ³€κ²½ 사항이 λ°œμƒν•˜λ©΄ μžλ™μœΌλ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œν•˜κ³  λ°°ν¬ν•œλ‹€.
86+
- μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜ 지원: Netlify FunctionsλŠ” AWS Lambda와 μœ μ‚¬ν•œ μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜ κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€.
87+
- λ‚΄λΆ€ CDN 및 μ—£μ§€ λ„€νŠΈμ›Œν¬: NetlifyλŠ” κΈ€λ‘œλ²Œ CDN을 톡해 정적 에셋을 λΉ λ₯΄κ²Œ μ œκ³΅ν•˜λ©°, νŠΉμ • νŽ˜μ΄μ§€λ‚˜ API ν˜ΈμΆœμ„ μœ„ν•œ μ—£μ§€ λ„€νŠΈμ›Œν¬ μ΅œμ ν™”λ‘œ μ„±λŠ₯을 높일 수 μžˆλ‹€.
88+
89+
- AWS(Amazon Web Services)
90+
- AWSλŠ” ν΄λΌμš°λ“œ 기반의 λ‹€μ–‘ν•œ 인프라 및 μ„œλΉ„μŠ€ μ œκ³΅μ—…μ²΄λ‘œ, κ°œλ°œμžμ™€ 기업듀이 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜, λ°μ΄ν„°λ² μ΄μŠ€, μ„œλ²„λ¦¬μŠ€ μ‹œμŠ€ν…œμ„ μ†μ‰½κ²Œ κ΄€λ¦¬ν•˜κ³  ν™•μž₯ν•  수 μžˆλ„λ‘ ν•œλ‹€.
91+
- AWS S3: AWS의 S3(Simple Storage Service)λŠ” μŠ€ν† λ¦¬μ§€ μ„œλΉ„μŠ€λ‘œ, 정적 μ›Ήμ‚¬μ΄νŠΈ ν˜ΈμŠ€νŒ…, 데이터 아카이빙, λ°±μ—… 등에 자주 μ‚¬μš©λœλ‹€.
92+
- EC2 μΈμŠ€ν„΄μŠ€: Amazon EC2(Elastic Compute Cloud)λŠ” 가상 μ„œλ²„λ₯Ό μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€μ΄λ‹€. EC2 μΈμŠ€ν„΄μŠ€μ— 운영 μ²΄μ œμ™€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ„€μΉ˜ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν˜ΈμŠ€νŒ…ν•  수 μžˆλ‹€. ν™•μž₯ 및 μΆ•μ†Œλ„ κ°€λŠ₯ν•˜λ‹€.
93+
- AWS Lambda: AWS LambdaλŠ” μ„œλ²„λ¦¬μŠ€ μ»΄ν“¨νŒ… μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜μ—¬, νŠΉμ • μ΄λ²€νŠΈμ— λŒ€ν•΄ μžλ™μœΌλ‘œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜λ₯Ό μž‘μ„±ν•  수 μžˆλ‹€. 효율적인 μ„œλ²„λ¦¬μŠ€ μ•„ν‚€ν…μ²˜λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€.
94+
- λ°μ΄ν„°λ² μ΄μŠ€ 및 API μ„œλΉ„μŠ€: AWSλŠ” RDS(Relational Database Service)와 DynamoDB(NoSQL)와 같은 λ‹€μ–‘ν•œ λ°μ΄ν„°λ² μ΄μŠ€ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•œλ‹€.
95+
96+
# μ°Έκ³ 
97+
98+
- https://nextjs.org/docs/app/building-your-application/routing/parallel-routes
99+
- https://rocketengine.tistory.com/entry/NextJS-13-Routing-Parallel-Routes-%EB%B3%91%EB%A0%AC-%EB%9D%BC%EC%9A%B0%ED%8A%B8
100+
- https://rocketengine.tistory.com/entry/NextJS-13-Routing-Intercepting-Routes%EB%9D%BC%EC%9A%B0%ED%8A%B8-%EA%B0%80%EB%A1%9C%EC%B1%84%EA%B8%B0?category=1127295
101+
- https://velog.io/@hyunjoong/Next.js-13-Parallel-Intercepting-Routes-jxn0qt37

0 commit comments

Comments
Β (0)