๐ค Study Now
[์ฒดํ๊ณ์ ]
๐ ๊ณ์ ID : studyNow@studynow.com
๐ ๊ณ์ PW : test1T
๐ญ ์๋น์ค ์๊ฐ
๐ญ ๊ฐ์-ํน์ง ๋ฐ ์ฑ๊ณผ
๐ญ ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ํ์ด์ง
๐ญ ํธ๋ฌ๋ธ์ํ
๐ค Study Now
๐ ์๋น์ค ์๊ฐ
studyNow ๋ ๊ณต๋ถ ๋ฑ ์๊ธฐ ๊ณ๋ฐ์ ์ํด ์ค๊ณ๋ ๋ค๊ธฐ๋ฅ ํ๋ซํผ์
๋๋ค. ์๊ธฐ๊ณ๋ฐ์ ์ํ ํด์ฆ, ํจ๊ณผ์ ์ธ ํ์
์ ์ํ ์คํฐ๋๊ทธ๋ฃน ๋ชจ์ง ๋ฐ ์ฑ์ฉ์ ๋ณด ์ ๊ณต, ๊ตฌ์ฑ์ ๊ฐ ์ํํ ์ํต์ ์ํ ์ค์๊ฐ ์ฑํ
๊ธฐ๋ฅ์ ๊ฐ์ถ ์ข
ํฉ ํ๋ซํผ์
๋๋ค.
-
ํด์ฆ ํ๋ ์ด๋ฅผ ํตํ ๊ฐ์ธ ์ค๋ ฅ ํฅ์
- ๊ฐ์ธ์ ๊ธฐ์ ๊ณผ ์ง์์ ํฅ์์ํค๊ธฐ ์ํด ๋ค์ํ ํด์ฆ ์ฃผ์ ์ ๋์ ํ๊ณ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์งํ ์ํฉ์ ํ์ธํ ์ ์์ต๋๋ค.
-
์คํฐ๋ ๊ทธ๋ฃน์ ํตํ ๊ณตํต ํ์ต ๋ชฉํ ๋ฌ์ฑ ๋ฐ ํ์
๋ฅ๋ ฅ ํฅ์
- ์คํฐ๋ ๊ทธ๋ฃน์ ๊ฒ์ํ๊ณ ๊ฐ์
ํ์ฌ ๋ค์ํ ํ์ต ์ฃผ์ ๋ฅผ ํ์ํ๊ณ ์คํฐ๋์์ ํ๋ ฅํ์ฌ ๊ณตํต ํ์ต ๋ชฉํ๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
-
Chatting ์๋น์ค๋ฅผ ํตํด ์คํฐ๋์๊ณผ ์์ ๋กญ๊ฒ ๋ํ
- ์คํฐ๋์๊ณผ์ ์ํํ ์ํต์ ์ํ ์ค์๊ฐ ์ฑํ
์ด ๊ฐ๋ฅํฉ๋๋ค.
-
์ต์ ์ฑ์ฉ ๊ณต๊ณ ์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ๊ตฌ์ง ๊ณผ์ ์ ๊ฐ์ํ
- ์์ธ์ ์ฑ์ฉ์ ๋ณด ์ฐ๊ณ๋ฅผ ํตํ ์ฑ์ฉ ์ ๋ณด์ ๋ํ ์ต์ ์ ๋ณด ๋ฐ ๊ตฌ์ง ๊ณผ์ ์ ๊ฐ์ํ ์ํฌ ์ ์์ต๋๋ค.
TOP ๐ผ
๐ ๊ฐ์
๐ ํ๋ก์ ํธ
- ํ๋ก์ ํธ๋ช
: Study Now
- ํ๋ก์ ํธ ๊ธฐ๊ฐ :
- ๊ธฐํ : 2023.10
- ๊ฐ๋ฐ๊ธฐ๊ฐ : 2023.11
- ๋ฆฌํฉํ ๋ง : 2023.12 ~ ๊ณ์
๐ฃ ํน์ง ๋ฐ ์ฑ๊ณผ
์ด ํ๋ก์ ํธ๋ Next.js์ TypeScript ๋ฐ MongoDB๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ ์ฌ์ฉ์ ๊ฒฝํ ํฅ์๊ณผ ์ฑ๋ฅ ์ต์ ํ์ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. ์ฃผ์ ํน์ง๊ณผ ์ฑ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. Next.js & TypeScript
- ๊ฐ ํ์ด์ง CRUD ๊ตฌํ
- ๋ชจ๋ํ ๋ฐ ์ฌ์ฌ์ฉ์ฑ ํฅ์
- mongoDB๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ ๊ด๋ฆฌ
- API Route๋ฅผ ํตํ serverless function
- SSR์ ํตํ ์ด๊ธฐ ํ์ด์ง ๋ก๋ฉ ์๊ฐ ๋จ์ถ 3ms -> 1.5ms, 50% ๋จ์ถ
- SEO ๊ฒ์์์ง ์ต์ ํ ํฅ์
- revalidate = 60; ์ด์ฉํ์ฌ ์๋ฒ ๋ถ๋ด ์ต์ํ
2. ์ฌ์ฉ์ ๊ฒฝํ ํฅ์
- ๋ค์ํ ๊ธฐ๊ธฐ์ ํ๋ฉด ํฌ๊ธฐ์ ๋์ํ๋ ๋ฐ์ํ ์น์ ํตํ ์ฌ์ฉ์ ์นํ์
- ์ ๋ต์ SEO ๊ฐ์ ๋ฐ ์ต์ ํ๋ฅผ ํตํด 92์ ์์ -> 100์ ์ผ๋ก ์ฝ 9%๊ฐ์ , Lighthouse SEO ํ๊ฐ ์ ์ 100 ๋ฌ์ฑ
- ๋ถํ์ํ ์ฟผ๋ฆฌ๋ฅผ ์ค์ด๊ณ ๋ก๋ฉ ์๋๋ฅผ ๊ฐ์ ํ์ฌ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์
- ์ด๋ฏธ์ง ์ต์ ํ(Image component)
- skeleton UI ๋ฐ Loading ํตํด ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ ๋ฐ bounce rate ์ต์ํ
- debounce๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ์ด์ง ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์
- OAuth ๊ตฌํ์ ํตํ ๊ฐ์ํ๋ ๋ก๊ทธ์ธ์ผ๋ก ์ธํ ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ (+ JWT ๋ก๊ทธ์ธ ๊ฐ๋ฐ)
3. ๊ฐ์ธ ํ๋ก์ ํธ์ด์ง๋ง ์ธ์ ๋ develope ๊ฐ๋ฅํ๋๋ก
- GitHub Flow ๋ฐฉ์์ ์ฑํํ์ฌ ํจ๊ณผ์ ์ธ ์ฝ๋ ํตํฉ๊ณผ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ
- Pull Request ๋ฐ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ์ฝ๋์ ํ์ง์ ๋์ด๊ณ , ์ถฉ๋์ ๋ฐฉ์งํ๋ฉฐ ์์ ์ ์ธ ๊ฐ๋ฐ์ ์งํ
- ํ์ฅ์ฑ ์ผ๋ํ application architecture
- ๋ชจ๋ ๊ณผ์ ๋ฌธ์ํ ๋ฐ ISSUE ๊ด๋ฆฌ
- StudyNow Logo design - figma
โ ๊ฐ๋ฐ ํ๊ฒฝ
๐ ๊ตฌ์กฐ
TOP ๐ผ
๐ ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ํ์ด์ง
๐ก ๋ฉ์ธ ํ์ด์ง
๋ฉ์ธํ์ด์ง(๋ฐ์ํ์น) |
๋ฉ์ธํ์ด์ง |
|
|
- ๋ฐ์ํ ์น์ผ๋ก ์ฌ์ฉ์ ํธ๋ฆฌ์ฑ ํฅ์
- scroll event ๋ฐ ํด๋น ํ๋ซํผ ์๊ฐ design
- ํ์๊ฐ์
๋ฐ ๋ก๊ทธ์ธ์ ๊ฒฝ์ฐ main page ์๋จ์๋ง ํ์
Nav (layout.tsx)
- pc ๋ฒ์ ์ ๊ฒฝ์ฐ ์๋จ / mobile, tablet ๋ฒ์ ์ ๊ฒฝ์ฐ ํ๋จ ์์นํ์ฌ ์ฌ์ฉ์ ํธ๋ฆฌ์ฑ ์ฆ๋
Carousel
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ๊ฐ๋ฐ ๋ฐ ๊ฐ์
- background์ linear-gradient๋ฅผ ํตํ pc ๋ฒ์ ์ ์ฒด ํต์ผ๊ฐ ๋ถ์ฌ
๐ก ์คํฐ๋ ๊ฒ์ํ ํ์ด์ง
์คํฐ๋ ๊ฒ์ํ ํ์ด์ง(๋ฐ์ํ) |
|
๐ก ์คํฐ๋ ๋ชจ์ง ๊ฒ์๊ธ ๋ชฉ๋ก ํ์ด์ง
๋ชจ์ง์ํ tab |
์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์ |
๊ธ์ฐ๊ธฐ ํ์ด์ง modal |
|
|
|
- ์ต์ ์ ์ ๋ ฌ(๊ธ ์์ฑ ์ DB ํจ๊ป ์ ์ฅํ ๋ ์ง)
- ๊ธ ์์ฑ ๋ ์ง(์ต์ /์ผ/์ฃผ/์ฐ์์ผ ์์ผ๋ก ์๊ฐ๋ณ ํ์ - time)
- ์คํฐ๋ ๊ธ ๊ฒ์ ๊ธฐ๋ฅ(useDebounce ์ฌ์ฉ์ผ๋ก ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ )
- ๋ชจ์ง์ค/๋ชจ์ง์๋ฃ ํ์(tab ๊ธฐ๋ฅ ๊ฐ๋ฐ๋ก ์ํ๋ ์กฐ๊ฑด ํ์ธ ํธ๋ฆฌ)
- ๊ฒ์๊ธ ๋ชฉ๋ก badge์ ํด๋น ๋ชจ์ง๊ธ ์ํ ํ์(๋ชจ์ง์ฌ๋ถ, ์ฅ์ ๋ฑ)
- ๊ฐ badge(์ฅ์, ์ข
๋ฅ ๋ฑ)๋ณ selectํ์ฌ ๊ฒ์ ๊ฐ๋ฅ
- ์บ์ฑ(revalidate = 60;) ์ด์ฉํ์ฌ ์๋ฒ ๋ก๋ ์ต์ํ
- chattingWith ์ค์๊ฐ ์ฑํ
์๋น์ค advertisement ์ถ๊ฐ
- skeleton UI๋ฅผ ํตํ DB data ๋ก๋ฉ์ ์ฌ์ฉ์ ๊ฒฝํ ํฅ์ ๋ฐ bounce rate ์ต์ํ
๐ก๐ผ ์คํฐ๋ ๋ชจ์ง ๊ฒ์๊ธ ์์ฑ ํ์ด์ง & ์๋ฒ ๊ฐ๋ฐ
ํธ๋ฆฌํ ์ํํ์ |
์ ํจ์ฑ๊ฒ์ฌ ๋ฐ modal |
์ ํจ์ฑ ํต๊ณผํ (modal ํต์ผ๊ฐ) |
|
|
|
- ์์ฑ, ์์ ๊ณตํต ์ปดํฌ๋ํธ writingEditor๋ฅผ ํตํ ์ฝ๋ ๊ฐ์
- ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํตํ ํ์ ์์ฑ ๋ชฉ๋ฃ ํ์ - ๋ฑ๋ก ๋ฒํผ ํ modal ํตํด ํ์
- ์ ํจ์ฑ ํต๊ณผ ํ, ์๋ฒ ๋ฐ DB data ํต์
- client์์ ์ ํจ์ฑ ๊ฒ์ฌ ํ, ์๋ฒ API์์๋ ์์ธ์ฒ๋ฆฌ - ์ด์ค ๋ฐฉ์ง
- ์คํฐ๋ ๋ชจ์ง ์ํ ํ์(๋ชจ์ง์ํ, ์จ์คํ, ์ฅ์, ์ข
๋ฅ, ์ฐ๋ฝ์ฒ ๋ฑ)
๐ก๐ผ ์คํฐ๋ ๋ชจ์ง ๊ฒ์๊ธ ์์ & ์๋ฒ ๊ฐ๋ฐ
dyanamice route |
๊ฒ์๊ธ ์์ |
๊ฒ์๊ธ ์ญ์ |
|
|
|
- ์์ฑ, ์์ ๊ณตํต ์ปดํฌ๋ํธ writingEditor๋ฅผ ํตํ ์ฝ๋ ๊ฐ์
- dyanamice route๋ฅผ ํตํ ๊ฐ ๊ฒ์๋ฌผ ๋ณ ์์ ํ์ด์ง ์ฐ๊ฒฐ
- DB data ๋ฐ์ ๊ฒ์ผ๋ก ๊ธฐ๋ณธ ํ
- ์์ฑ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํจ์ฑ ๊ฒ์ฌ ํ, DB data ํต์
- ์คํฐ๋ ๋ชจ์ง ์ํ ํ์(๋ชจ์ง์ํ, ์จ์คํ, ์ฅ์, ์ข
๋ฅ, ์ฐ๋ฝ์ฒ ๋ฑ)
- ๊ฒ์๊ธ ์์ฑ์ ๋ฐ ์์ ์์ฒญ์ ๋น๊ตํ์ฌ ์๋ฒ ํต์ (client,server ์ด์ค์ฒ๋ฆฌ)
๐ก ์คํฐ๋ ๋ชจ์ง ๊ฒ์๊ธ ์์ธ ํ์ด์ง
- dyanamice route๋ฅผ ํตํ ๊ฐ ๊ฒ์๋ฌผ ๋ณ ์์ธ ํ์ด์ง ์ฐ๊ฒฐ
- ์์ , ์ญ์ modal ์ปดํฌ๋ํธํ ๋ฐ toggleํ
- ์คํฐ๋ ๋ชจ์ง ์ํ ํ์(๋ชจ์ง์ํ, ์จ์คํ, ์ฅ์, ์ข
๋ฅ, ์ฐ๋ฝ์ฒ ๋ฑ)
๐ผ ์คํฐ๋ ๋ชจ์ง ์ญ์ ์๋ฒ ๊ฐ๋ฐ
- ๊ฒ์๊ธ ์์ฑ์ ๋ฐ ์ญ์ ์์ฒญ์ ๋น๊ตํ์ฌ ์๋ฒ ํต์ (client,server ์ด์ค์ฒ๋ฆฌ)
๐ก ํด์ฆ ํ์ด์ง
ํด์ฆ ํ์ด์ง (๋ฐ์ํ) |
|
ํด์ฆ ์ฌ์ฉ์ ์ค์ |
ํด์ฆ ํ๋ ์ด(+์๊ฐ๊ฒฝ๊ณผ) |
ํด์ฆ ๊ฒฐ๊ณผ ํ์ด์ง |
|
|
|
๐ก ํด์ฆ ์
ํ
ํ์ด์ง
- ๋ฌธ์ ์ ํ, ๋ฌธ์ ๊ฐฏ์ ๋ฐ ๋ฌธ์ ์๊ฐ ์ฌ์ฉ์๊ฐ ์ง์ ์ค์ ๊ฐ๋ฅํ์ฌ ์ด์ฉ ํธ๋ฆฌ์ฑ ๊ทน๋
๐ก ํด์ฆ ํ๋ ์ด ํ์ด์ง
- ์ฌ์ฉ์๊ฐ ์ค์ ํ ์
ํ
์ ๋ณด๋ฅผ ํตํ DB data ํธ์ถ
- ๊ฐ ๋ฌธ์ ๋ต๋ณ local storage ๊ธฐ๋กํํ์ฌ ํด์ฆ ์งํ๋์ค ์ด๊ธฐํ ๋๋๋ผ๋ ๋ฐ์ดํฐ ๋ ๋ฆผ ๋ฐฉ์ง
- ์๊ฐ์ ํ ๋ฐ ๋ฌธ์ ๊ฐฏ์ ํ์
- ๊ฐ ๋ฌธ์ ๋ณ ์๊ฐ ์ ํ ์ด๊ณผ ์, ๋ต๋ณ์ฐฝ ์
๋ ฅ ๋ถ๊ฐ ์ฒ๋ฆฌ
๐ก ํด์ฆ ๊ฒฐ๊ณผ ํ์ด์ง
- ๊ฐ ๋ฌธ์ ๋ณ ์ฌ์ฉ์ ๋ต๋ณ ๋ฐ ์ ๋ต์ง ๊ฐ ํ์ธ ๊ฐ๋ฅ
- local storage ํ์ฉํ์ฌ ์ฌ์ฉ์ ๋ต๋ณ ํธ์ถ
๐ก ์ฑ์ฉ ํ์ด์ง
์ฑ์ฉํ์ด์ง(๋ฐ์ํ์น) |
๊ฒ์(์ง์ญ) |
|
|
- ์์ธ API ๋ฐ์ดํฐ ํ์ฉ
- sticky๋ฅผ ํตํ ๊ฒ์์ฐฝ ์๋จ ๊ณ ์ ํ์ฌ ์ฌ์ฉ์ ํธ๋ฆฌ์ฑ ๊ฐ์
๐ก ๋ง์ด ํ์ด์ง
๋ง์ดํ์ด์ง(๋ฐ์ํ์น) |
๊ฒ์(์ง์ญ) |
|
|
- ์ฌ์ฉ์ ๋ณ session ์ ๋ณด๋ฅผ ํตํ ๋ง์ดํ์ด์ง ํ์
- ์กฐ๊ฑด๋ถ ๋๋๋ง์ ํตํ ๋ก๊ทธ์ธ ์ด์ ์, ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
ํ์
- grid๋ฅผ ํตํ ๋ฐ์ํ ์น ๊ฐ์
๐ก ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
ํ์ด์ง
๋ก๊ทธ์ธ(OAuth/JWT) |
ํ์๊ฐ์
(+์ ํจ์ฑ) |
|
|
- OAuth ์์
๋ก๊ทธ์ธ (๊นํ, ์นด์นด์ค) - Session
- ์ผ๋ฐ ๋ก๊ทธ์ธ ๋ฐ ์ผ๋ฐ ํ์๊ฐ์
- JWT (JSON Web Token)
๐ก Contact ํ์ด์ง
contact ํ์ด์ง |
modal |
|
|
- ๊ณต์ง, ๋ฌธ์, ๋ด์ค, ์ด๋ฒคํธ ํ์ด์ง
๐ Common ๊ธฐ๋ฅ
Modal
- props๋ก btn content, message, mark ํ์ ๋ฑ์
- ํ์ธ ๋ฐ ์ค๋ฅ๋ฉ์์ง ์ ์ก๊น์ง ํ๋ฒ์ ๊ฐ๋ฅํ๋๋ก ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ๋ฆฌํฉํ ๋ง ์ง์ํ์ฌ ๊ฐ๋ฐ ์๋ฃ
Toggle - custom hook
- ์์ฃผ ์ฌ์ฉํ๋ toggle์ ๊ฒฝ์ฐ custom hook์ผ๋ก ๊ฐ๋ฐ
useIntersectionObserver - custom hook
- ์คํฌ๋กค ์ด๋ฒคํธ ๋ฐ ๋ฌดํ์คํฌ๋กค ์ ์ฉ(main, event, ์ฑ์ฉํ์ด์ง)
- threshold๋ฅผ ํตํด ํด๋น ์ง์ ์๋ ์์น ์กฐ์
TOP ๐ผ
๐ ํธ๋ฌ๋ธ ์ํ
๐ (๊ณต๊ณต๋ฐ์ดํฐ) ์ธ๋ถ API - Mixed Content
โถ ์์ฝ
์ฑ์ฉ ํ์ด์ง์ ๊ณต๊ณต๋ฐ์ดํฐ ์ฑ์ฉ์ฐ๊ณ ์ ๋ณด API ์ด์ฉ ์, ๋ฐฐํฌ ์ฌ์ดํธ์์ Mixed Content ๋ฌธ์ ๋ฐ์
โถ ์ด๋ค ๋ฌธ์ ?
- ์ธ๋ถ API (์์ธ์ ๊ณต๊ณต๋ฐ์ดํฐ ์ฑ์ฉ์ฐ๊ณ ์ ๋ณด) Vercel ๋ฐฐํฌ ์ฌ์ดํธ์์ Mixed Content ๋ฌธ์ ๋ฐ์
- HTTPS๋ก ๋ก๋ ๋๋ ํ๊ฒฝ์์ API ์์ฒญ๋ฐ๋ ๊ณณ์ด HTTP ํ๋กํ ์ฝ๋ก ๋์ด์์ด ๋ณด์๋ฌธ์ ์ ์ด๋ฅผ ๋ง์์ฃผ๋ฉฐ ๋ฐ์ํ๋ ๋ฌธ์
โถ ํด๊ฒฐ ๋ฐฉ์
- (์์) - nextConfig ๋ฅผ ํตํด source์ fetch ์์ฒญ ๊ฒฝ๋ก๋ฅผ ์กฐ์ ํ์ฌ ์ธ๋ถ API ํธ์ถ ์์ https์์ http๋ก ๋ณ๊ฒฝ
proxy server
API route - serverless function issue๋ก
๐ serverless function
โถ ์์ฝ
- vercel ๋ฌด๋ฃ ๋ฐฐํฌ์ ๊ฒฝ์ฐ serverless function 12๊ฐ๊น์ง
โถ ์ด๋ค ๋ฌธ์ ?
- vercel์ ๋ฌด๋ฃ ๋ฐฐํฌ์ ๊ฒฝ์ฐ serverless function์ด 12๊ฐ๊น์ง๋ง ๊ฐ๋ฅํ๊ธฐ์, ํ๋ก์ ํธ ์ด๊ธฐ ๊ธฐํํ์๋ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋ด์ง ๋ชปํ๋ ์ด์ ๋ฐ์
โถ ํด๊ฒฐ ๋ฐฉ์
[Offload serverless functions]
- ๊ธฐํ ์์ ์ ํตํด ์ผ๋ถ ์๋ฒ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ซํผ ์ด์ฉ
- chatting ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ฐฐํฌ ์ฌ์ดํธ์ ์ฐ๊ฒฐํ๋ ๊ด๊ณ ํ์์ผ๋ก ๋ณ๊ฒฝ
- (mobile ver) study list ์๋จ / (pc ver) study list ์ผ์ชฝ์ ์์นํ๊ฒ ํ์ฌ ์์ฐ์ค๋ฝ๊ฒ ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ๋ณ๊ฒฝ
- chatting server์ ๊ฒฝ์ฐ koyeb ๋ฐฐํฌ ์ด์ฉ
๐ GIT ISSUE ์ ๋ฆฌ [issue ๋ฐ๋ก๊ฐ๊ธฐ]()
๐ props array
โถ ์์ฝ
ํด์ฆ ํ๋ ์ด ํ์ด์ง์ props๊ฐ array์ ์ ๋๋ก ๋ค์ด์ค์ง ์๋ ๋ฌธ์ ๋ฐ์
โถ ์ด๋ค ๋ฌธ์ ?
- props๋ก ๋ฐ์์จ ์ซ์๋งํผ array ์์ฑ์ด ์ ๋๋ ๋ฌธ์
- quizUserSetting ์ชฝ์์ quizPlay๋ก ๋ณด๋ด๋ props ๊ฐ ์ค์ questionNum์ผ๋ก ๋ฐ๋ number ํ์
์ ๋ฌธ์ ๊ฐฏ์์์ ๋ฌธ์
- quiz user setting์์ quiz play page๋ก ๋ณด๋ด๋ props type ์กฐ์ ์๋ array์ ์ ๋๋ก ๋ค์ด์ค์ง ์๋ ๋ฌธ์
โถ ํด๊ฒฐ ๋ฐฉ์
- (๋์น ๋ถ๋ถ)
- Array์ props ๊ฐ์ด ๋ค์ด์ฌ ๋๋ ๋จ์ผ ์์๋ก ๋ค์ด์ค๊ฒ ๋จ
- questionNum props๋ฅผ number type์ผ๋ก ๋ฐ์๊ธฐ์ ๋น์ฐํ ์ซ์๋ก ๋ค์ด์ฌ ์ค ์์๋ ๊ฒ์ ๋ํ ์ค์
- Array(questionNum)์ด ๊ฒฐ๊ตญ 1๊ฐ์ ๋ฐฐ์ด์์๋ง ๋ฐฐ์ถ
- ์ผ๋จ props ์์ฒด๋ number type์ด ๋ง์ง๋ง, Array์ ๋ฐ์ ๋๋ ๋จ์ผ์์๋ก ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ [โ5โ]๋ก ๋ฐ๊ฒ ๋จ
- props Number ๊ฐ์ธ์ Array ์์ฑํ๋ ์ ๋๋ก ๋์ ์๋ฃ
๐ GIT ISSUE ์ ๋ฆฌ [issue ๋ฐ๋ก๊ฐ๊ธฐ]()
๐ sticky
โถ ์์ฝ
์ฑ์ฉ์ ๋ณด ํ์ด์ง ๊ฒ์์ฐฝ ์คํฌ๋กค๋ฐ ๋ด๋ฆด ์, sticky ์ ์ฉ ๋ถ๊ฐ ๋ฌธ์
โถ ์ด๋ค ๋ฌธ์ ?
- ๊ฒ์์ฐฝ์ ์ ์ฉํ sticky๊ฐ ์ ๋๋ก ๋์ํ์ง ์๋ ๋ฌธ์
- sticky ์ ์ฉํ ๋ถ๋ชจ์ height, ํน์ body ๋ฐ์ ๋ฐ๋ก ๊ฑธ๊ณ ์ฌ์ฉํด๋ ์ ๋๋ก ๋์ ์ํ๋ ๋ฌธ์
โถ ํด๊ฒฐ ๋ฐฉ์
- ํด๋ต์ ๋ถ๋ชจ์์๋ค ์ค์ overflow: hidden, auto, scroll ์์ฑ์ด ์ ์ฉ๋์ด ์์ผ๋ฉด ์๋๋ค๋ ๊ฒ
- ๋ถ๋ชจ ์์์ค์ ์ ์ฉํ ๊ฒ์ด ์๋๋ฐ ๊ณ์ํด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด ์ด์ํ์ฌ ํน์ํ๊ณ global.scss๋ฅผ ํ์ธํด๋ณด๋ ๊ธฐ๋ณธ์ด๊ธฐ ์
ํ
๊ฐ์ด๋ผ๊ณ overflow-x:hidden; ์ ๋ฃ์ด๋๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ฌ ์์ ์๋ฃ ํ ์ ์ ์๋ ํ์ธ
๐ GIT ISSUE ์ ๋ฆฌ [issue ๋ฐ๋ก๊ฐ๊ธฐ]()
๐ local storage build - SSR
โถ ์์ฝ
ํด์ฆ ํ์ด์ง์์ local storage ์ค๋ฅ ๋ฐ์
โถ ์ด๋ค ๋ฌธ์ ?
- build ์์
์ค ํด์ฆ ํ์ด์ง์ local storage๋ก ์ธํ ์ค๋ฅ ๋ฐ์
- SSR ํ๊ฒฝ์์๋ local storage ์ด์ฉ ๋ถ๊ฐ
- ๋น์ฐํ ๊ฒ์ด local storage๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๊ธฐ์, ์๋ฒ ํ๊ฒฝ์์ ์ง์ํ์ง ์์
โถ ํด๊ฒฐ ๋ฐฉ์
- ํด๋น ํ์ด์ง CSR๋ก ๋ณ๊ฒฝ
๐ GIT ISSUE ์ ๋ฆฌ [issue ๋ฐ๋ก๊ฐ๊ธฐ]()
๐ ๋ฐฐํฌ์ฌ์ดํธ img block
โถ ์์ฝ
- ๋ฉ์ธํ๋ฉด์ ์นด๋ 4๊ฐ ์ค 1,4๋ฒ์งธ ๋ฐฐ๊ฒฝํ๋ฉด ๋จ์ง ์๋ ๋ฌธ์ (๋ฐฐํฌ์ฌ์ดํธ์์๋ง)
โถ ์ด๋ค ๋ฌธ์ ?
- ์ผ๋ถ ์ด๋ฏธ์ง๋ ๊ฐ๋ฅ
- ๋ฐฐํฌ์ฌ์ดํธ์์ ๊ฐ๋ฐ์๋๊ตฌ ํตํด ํ์ธํ์๋ ์ ์์ ์ผ๋ก ํ์ผ๋งํฌ ๋์ํ๊ณ ์๋ ๊ฒ์ ํ์ธ
- ๋์ค์ง ์๋ 1,4๋ฒ์งธ๋ฅผ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ก ๋์ฒดํ๋ ์ ์์ ์ผ๋ก ๋์ํ๋ ๊ฒ์ ํ์ธ
- ํ ์น์
์ ๊ฒฝ์ฐ์๋ ๋์ผํ ๋ฌธ์ ๋ฐ์ํ๋ ๊ฒ์ ํ์
- ๋จ์ํ 1,4๋ฒ์งธ ๋๋๋ง ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ ํ์
- ์ ๋ ๊ฒฝ๋ก(์คํจ) & git upload ์ฃผ์ ๋ฐฉ๋ฒ์ ์๋ํ๋ คํ์ง๋ง, ๊ทผ๋ณธ์ ๋ฌธ์ ํ์
์ํด ๋ถ์
ํ์ฅ์ ๋ช
jpg ํน์ JPG ์ธ ๊ฒ์ ํ์ธ
โถ ํด๊ฒฐ ๋ฐฉ์
- [์คํ, ๋์๋ฌธ์, ํ์ฅ์๋ช
๊น์ง ์ ๋๋ก ํ์ธํ์]
- ํด๋น ์ด๋ฏธ์ง ํ์ผ๋ค ํ์ฅ์๋ช
๊น์ง ๋์ผํ๊ฒ ๊ต์ฒด
- ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ค์ ๊ฒฝ์ฐ ๊ฐ๋ฐ๋ชจ๋์์๋ ๋ฌธ์ ์์์ผ๋, ๋ฐฐํฌ์ฌ์ดํธ์์๋ ์ค์
ํ์ผ๋ช
์คํ ์์์ ํ์ธํ์์ง๋ง, ๋ฌธ์ ๋ฐ์ํ์ฌ ์์ํ์. ๊ฒฐ๊ตญ ํ์ฅ์ ๋์๋ฌธ์ ๋ฌธ์ ์์. ํฌํ ..๋ฉฐ์น ..์..
๐ vercel ๊ตญ๋ด DNS ver.app ์ฐจ๋จ ์ด์
โถ ์์ฝ
๊ตญ๋ด DNS ๋๋ฉ์ธ ์ฐจ๋จ์ผ๋ก ์ธํ vercel ์ ์ ์ด์
ํ์ฌ ๋ณธ์ธ ์ํฉ์์๋ ๋ชจ๋ฐ์ผ๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ณ , tablet ๋ฐ ์น์์ ์ ๊ทผ์ด ๋ถ๊ฐ.
โถ ์ด๋ค ๋ฌธ์ ?
์ต๊ทผ ๊ตญ๋ด์์ Vercel ์ ์ ์ ์๋ ์ด์๊ฐ ์์๋ ์ํฉ์์ ๊ตญ๋ด DNS ์์ .vercel.app ๋๋ฉ์ธ์ ๋ํ ์ฐจ๋จ์ด ์ด๋ฃจ์ด์ง ๊ฒ์ผ๋ก ๋ณด์
์ด์ ์ ๋ฌธ์ ๊ฐ ์์๋ ๊ตญ๋ด ISP CloudFlare R2 ์ฐจ๋จ ๋์ฒ๋ผ ํด๋น DNS๋ ๋์ผํ ์ด์๊ฐ ์๋๊ฐ ์ถ์
์ธ์ ํด๊ฒฐ๋ ์ง๋ ๋ฏธ์ง์์ด์ง๋ง, ํ๋ก์ ํธ ๋ด ๋๋ฉ์ธ ์ฐ๊ฒฐ ์ ์ ๊ทผ ๊ฐ๋ฅ(.vercel.app๋ง ์๋๋ฉด ๋๋ ๊ฒ ๊ฐ์)
โถ ํด๊ฒฐ ๋ฐฉ์
- ์ปค์คํ
๋๋ฉ์ธ ์ฌ์ฉ ๋ฐ ๋ณ๊ฒฝ
- ๋ค๋ฅธ ๋ฐฐํฌ ์ฌ์ดํธ ์ด์ฉ - 3์ผ ๋ด๋ก ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ, ํ ๋ฐฐํฌ ์ฌ์ดํธ ์ด์ฉ
TOP ๐ผ