๐งกย RamBlog๋ ๋ชจ๋ ๊ฐ๋ฐ์๋ค์ ์ํ ๊ฐํธ ๋ธ๋ก๊ทธ ํ๋ก์ ํธ์
๋๋ค.
โญ๏ธ ๋งค์ผ ๊ณต๋ถ ์ผ์ง๋ฅผ ๋ธ๋ก๊ทธ์ ๋ด์ ๋ธ๋ก๊ทธ๋ฅผ ์ผ๊ธฐ์ฅ ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
โจย ์ค๋ ๊ธฐ์ตํ๊ณ ์ถ์ ๊ณต๋ถ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ํฌ์คํ
ํ๊ณ ๊ณต์ ํ ์ ์์ต๋๋ค.
๐ย ๋ธ๋ก๊ทธ์ ํฌํ ํด๋ฆฌ์ค ๊ธฐ๋ฅ์ ๋ด์, ๋ค๋ฅธ ์ฌ์ฉ์๋ค์ด ํด๋น ์ฌ์ฉ์์ ๊ธฐ์ , ํ๋ก์ ํธ๋ฅผ ๊ตฌ๊ฒฝํ ์ ์์ต๋๋ค.
๊ฒ์ผ๋ฅธ ์๋ฒฝ์ฃผ์์
์ธ ์ ๋ ๋ธ๋ก๊ทธ์๋ ์๋ฒฝํ ๋ด์ฉ์ ๋ด์ ๊ธ์ ์ฌ๋ ค์ผ ํ๋ค๋ ์๊ฐ์ ๋ธ๋ก๊ทธ์ ๊ธ์ ์ฌ๋ฆฌ๋ ๊ฒ์ ํญ์ ์ฃผ์ ํ์์ต๋๋ค.- ํ์ง๋ง, ์ด๋๊ฐ์๋
๋ด๊ฐ ๊ณต๋ถํ ๊ฒ์ ์๋
ํ๊ณ ์ถ์๊ณ , ๋์ค๋ ํ๋ฃจ ์ผ๋ง๋ ์ด์ฌํ ์ด์๋์ง ๊ธฐ๋ก
ํ๊ณ ์ถ์์ต๋๋ค. - ๋ ๋ง์ ๋ถ๋ค์ด ์ง์ ๊ฐ๋ฐํ ๋ธ๋ก๊ทธ์๋
์์ ์ ํฌํ ํด๋ฆฌ์ค
๋ฅผ ํจ๊ป ์ฌ๋ฆฌ๋๋ฐ, velog๋ tistory ๊ฐ์ ๋ธ๋ก๊ทธ์๋ ํด๋น ํญ์ด ์๋ค๋ ์ ์ด ์์ฌ์ ์ต๋๋ค. - ๊ทธ๋ ๊ฒ ํด์ ์ ๋ง์ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค์ด๋ณด์! ํด์ ์์ํ๋ค๊ฐ,
์ ์ ์๊ฐ์ด ๋น์ทํ ๋ค๋ฅธ ๊ฐ๋ฐ์
๋ค ๋ํ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ค๊ฒ ๋ ํ๋ก์ ํธ๊ฐRamBlog
์ ๋๋ค.๐คฉ
- Deployment: :
Vercel
- FrontEnd :
Next.js 13
,Typescript
,TailwindCSS
,SWR
- BackEnd :
Sanity
- Authentication :
Next-auth
NextJS 13์ ์ด์ฉํ ํ์คํ ํ๋ก์ ํธ ์ ๋๋ค.
๊ฐ์กฐํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ โจ์ ๋ถ์์ต๋๋ค
๊พธ์คํ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ์ด ๊ฐ์ ๋๊ณ ์๋ ํ๋ก์ ํธ ์
๋๋ค.
-
๐ ์ธ์ฆ / ์ฌ์ฉ์
-
๐ ํฌ์คํ
-
๐ ๋ก๊ทธ
-
๐ ํฌํ ํด๋ฆฌ์ค
-
๐ UI
- ๊ตฌ๊ธ OAUTH
Next-auth
์ ๊ตฌ๊ธ Provider๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ๊ธ OAUTH ๊ฐํธ ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ๊ธฐ๋ฅ ์ ๊ณต
- ์ด๋ฉ์ผ Credentials
- ๊ตฌ๊ธ ์ธ ์ด๋ฉ์ผ ๋ก๊ทธ์ธ ์
email, password ์ผ์น ์ฌ๋ถ
Sanity DB์์ ํ์ธ, ๋ถ์ผ์น์ ์ค๋ฅ ๋ฉ์ธ์ง ์ ๋ฌ - ์ผ์นํ ๊ฒฝ์ฐ
Next-auth
์ Credential ๊ธฐ๋ฅ์ ์ด์ฉํด Session๋ฐ JWT ํ ํฐ ์์ฑ
- ๊ตฌ๊ธ ์ธ ์ด๋ฉ์ผ ๋ก๊ทธ์ธ ์
๋ก๊ทธ์ธ - ๊ตฌ๊ธ OAUTH | ๋ก๊ทธ์ธ - Credentials |
---|---|
- ํ์๊ฐ์
- ์ด๋ฉ์ผ Credentials
- ๊ตฌ๊ธ์ธ ์ด๋ฉ์ผ๋ก ํ์๊ฐ์ ์ name, email, password, username ์ ๋ ฅ
validate
๊ฒ์ฆ ํ username, email์ ์๋ฒ๋ก ์ ๋ฌํด์ค๋ณต ํ์ธ
ํ ์๋ฌ ๋ฉ์ธ์ง ์ ๋ฌ- ๋ชจ๋ ๊ฒ์ฆ ์๋ฃ์ password๋ฅผ bycrpt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด
๋จ๋ฐฉํฅ ์ํธํ
ํ Sanity DB์ ์ ์ฅ
๋ก๊ทธ์์ | ํ์๊ฐ์ - Credentials |
---|---|
- ํ๋กํ
- ๊ตฌ๊ธ ๋ก๊ทธ์ธ์ผ ๊ฒฝ์ฐ ๊ตฌ๊ธ Session์ ์ ์ฅ๋ ๊ธฐ๋ณธ ์ ๋ณด ์ฌ์ฉ, ๊ตฌ๊ธ์ธ ๋ก๊ทธ์ธ์ ๊ฐ์ ์ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ํ๋กํ ์ด๊ธฐ ์ค์
- ๊ธฐ๋ณธ ์ ๋ณด๋ ๋ก๊ทธ์ธ ํ ์์ ๊ฐ๋ฅ
- ํ๋ก์ฐ
- ํ ์ ์ ํ๋ก์ฐ์ ๋ด ํ๋ก์ฐ ๋ฆฌ์คํธ์ ํด๋น user์ reference๋ฅผ ์ถ๊ฐ, ๋์์ ํด๋น user์ ํ๋ก์ ๋ฆฌ์คํธ์ ํ๋ก์ํ user์ reference๋ฅผ ์ถ๊ฐํ์ฌ ๋์์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋๋ก ๊ตฌํ
ํ๋กํ ์ค์ | ํ๋ก์ฐ ๊ธฐ๋ฅ |
---|---|
- Toast UI Editor๋ฅผ ํตํ
WYSIWYG
๊ธฐ๋ฅ ์ ๊ณต- ์ด๋ฏธ์ง ์ ํ์ ์ด๋ฏธ์ง Sanity์ ์ ๋ก๋ ํ url๋ฐ์์ ํ์
- Content๋ด์ฉ์ค ์ฒซ๋ฒ์งธ ์ด๋ฏธ์ง ๋ถ๋ถ์ url์ parsingํ์ฌ ๋ํ ์ด๋ฏธ์ง๋ก ์๋ ์ ์ ํ ์ ์ฅ
ํฌ์คํ | ํฌ์คํธ ์์ ๋ฐ ์ญ์ |
---|---|
react-markdown
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ์ปจํ ์ธ ๋ฅผ ๋ฏธ๋ฆฌ ๋ ๋๋งํ์ฌSSR
์ง์- TOC (๋ชฉ์ฐจ)
Intersection Observer
๋ฅผ ์ด์ฉํ ์๋ ํ์ด๋ผ์ดํธ, ์คํฌ๋กค ๊ธฐ๋ฅ ๋ชฉ์ฐจ ๊ตฌํ
- ์ข์์ ๊ธฐ๋ฅ
- useSWR์ mutate ํจ์๋ฅผ ์ด์ฉํด
Optimistic update
๋ฅผ ํ์ฌ UI ์ฑ๋ฅ ์ต์ ํ
- useSWR์ mutate ํจ์๋ฅผ ์ด์ฉํด
ํฌ์คํธ ์์ธ ๋ณด๊ธฐ |
---|
3. ํ์ - ๋๊ธ, ๋๋๊ธ ์์ฑ ๋ฐ ์ญ์ โจ / ๊ฒ์คํธ - ๋๊ธ, ๋๋๊ธ ์์ฑ ๋ฐ ์ญ์ โจ
๋ถ๋ชจ - ์์
์คํค๋ง ๊ตฌ์ฑ์ ํตํ ๋๋๊ธ ์ง์- ๊ฒ์คํธ ๋๊ธ
- ์ธ์ ์ ๋ฌด๋ก ํ์ ๋ฐ ๊ฒ์คํธ ํ๋ณ
- ๊ฒ์คํธ์ผ ๊ฒฝ์ฐ username, password ์
๋ ฅํ ๋๊ธ ์ถ๊ฐ, password๋ bycrpt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด
์ํธํ
ํ ์ ์ฅ - ์ญ์ ์
password ์ผ์น ํ์ธ
ํ ์ค๋ฅ ๋ฉ์ธ์ง ์ ๋ฌ ํน์ ์ญ์
ํ์ - ๋๊ธ, ๋๋๊ธ ๋ฐ ์ญ์ | ๊ฒ์คํธ - ๋๊ธ, ๋๋๊ธ ๋ฐ ์ญ์ |
---|---|
-
ํ๊ทธ ๊ธฐ๋ฅ
- ์ฌ์ฉ์ ํ๊ทธ๋ณ ํฌ์คํธ ํํฐ๋ง ๊ธฐ๋ฅ, ํ๊ทธ ํด๋ฆญ์ ๋ชจ๋ ์ฌ์ฉ์ ํฌ์คํธ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ ์ ๊ณต
- ํฌ์คํธ ์์ฑ์ tag ๋ฐ์ดํฐ ์์ฑ,
tag reference
๋ฅผ ํฌ์คํธ์ ์ถ๊ฐํ์ฌ ํ๊ทธ์ ์ฐ๊ฒฐ๋๋๋ก ์ฒ๋ฆฌํ์ฌ ๊ตฌํ
-
๊ฒ์ ๊ธฐ๋ฅ
- ์ ์ฒด ํฌ์คํธ ๊ฒ์, ํน์ ์ฌ์ฉ์ ํฌ์คํธ์์ ๊ฒ์ ๊ฐ๋ฅ
Debounce
๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ๋ถํ์ํ ์์ฒญ ์ต์ํ
ํ๊ทธ ๊ธฐ๋ฅ | ๊ฒ์ ๊ธฐ๋ฅ |
---|---|
- ํฌ์คํธ ๋ถ๋งํฌ ํ ๊ฐ์ธ ๋ถ๋งํฌ ๋ชจ์ ํ์ด์ง์์ ํ์ธ ๊ฐ๋ฅ
๋ถ๋งํฌ ๊ธฐ๋ฅ |
---|
- ์ผ๊ธฐ ์์ฑ
- ๋ ์ง, ์ ๋ชฉ, ์ฌ์ง, ์งง์ ๊ธ, ๊ฐ์ ์ด๋ชจ์ง ์ ํ์ ํตํด ํ๋ฃจ ์ผ๊ธฐ ์์ฑ ๊ฐ๋ฅ
- ์์ธ ๋ณด๊ธฐ
- ๊ฐ์ ์ด๋ชจ์ง ์ ํ์ ํตํด ์ผ์นํ๋ ์ผ๊ธฐ๋ง ํํฐ๋งํด ๋ณด๊ธฐ ๊ฐ๋ฅ
- ์์ธ ๋ณด๊ธฐ ๋ชจ๋ฌ ์ ํ์ ์ด์ , ๋ค์ ์ผ๊ธฐ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๋ฐ์์ ํ์ดํ๋ฅผ ํด๋ฆญํ์ฌ ๋์ด๊ฐ๋ ๊ธฐ๋ฅ ์ ๊ณต
์ผ๊ธฐ ์์ฑ | ์์ธ ์ผ๊ธฐ ๋ณด๊ธฐ ๋ฐ ํํฐ๋ง |
---|---|
- ์๊ฐ, ๊ธฐ์ ์คํ, ํ์
, ๊ฒฝ๋ ฅ, ํ๋ก์ ํธ๋ฅผ ํฌํ ํด๋ฆฌ์ค์ ์์ฑ๊ฐ๋ฅ
- ํ์ , ๊ฒฝ๋ ฅ, ํ๋ก์ ํธ๋ +์ถ๊ฐ ๋ฒํผ์ ํตํด ๋ค์์ Form ์ด์ด ์์ฑ ๊ฐ๋ฅ
- ํ๋ก์ ํธ๋ ํด๋ฆญํ์ฌ ๋ชจ๋ฌ ํ์์ผ๋ก ์์ธ ๋ณด๊ธฐ ๊ฐ๋ฅ
ํฌํ ํด๋ฆฌ์ค ์์ฑ | ํฌํ ํด๋ฆฌ์ค ๊ตฌ๊ฒฝ |
---|---|
- ๋คํฌ๋ชจ๋
tailwindCSS
์next-themes
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ๋คํฌ๋ชจ๋ ๊ฐํธ ๊ตฌํ
- ๋ฐ์ํ (๊ฐ์ ์ค)
tailwindCSS
๋ฅผ ํตํด phone, tablet, desktop, laptop์ฌ์ด์ฆ ๊ตฌ๋ณ
ํ์ฌ ๋ฐ์ํ ๊ตฌํ
๋คํฌ๋ชจ๋ | ๋ฐ์ํ |
---|---|