NextJS14๋ฒ์ ์ ํ์ตํ๋ฉด์ ๋ฐฐ์ด ๋ด์ฉ์ ์ง์ ์ ์ผ๋ก ์ฌ์ฉํด๋ณด๊ณ ์ถ์๋ง์์ ๋ฌด์์ ๋ธ๋ก๊ทธ๋ฅผ ์ ์ํ๊ฒ ๋์๋ค. ๊ธฐ์กด์ velog, ํฐ์คํ ๋ฆฌ์ ๊ฐ์ ํ๋ซํผ์ ๋ด๋ง์๋๋ก ์ปค์คํ ํ๊ธฐ ์ฝ์ง ์๊ณ , ๋ํ ํ์์ notion์ ๋ด๊ฐ ๋ฐฐ์ ๋ ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์์ด์ ์ด๋ฅผ ์๋ํํด์ฃผ๋ ๊ธฐ๋ฅ์ ๋ฃ๊ธฐ ์ํด ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ๋ค.
-
react-notion-x
๋ฅผ ์ด์ฉํ DB๋ก ๋ฐฑ์๋์ฝ๋๊ฐ ํ์์๋๋ก ํ๊ณ , notion์ ์ ๋ฆฌํ๋ ๋ด์ฉ๋ค ์ ๋ถ ์๋์ผ๋ก ๋ธ๋ก๊ทธ ์น์ฌ์ดํธ์ ์ฐ๋ -
tailwind css
+daysi UI
๋ฅผ ์ด์ฉํ ์คํ์ผ๋ง ๋ฐ ๋คํฌ/๋ผ์ดํธ ๋ชจ๋ ๊ตฌ์ฑ -
giscus
๋ฅผ ์ด์ฉํ ๋๊ธ๊ธฐ๋ฅ ๊ตฌํ -
nodemailer
+Vercel cron
์ ์ด์ฉํCommit Reminder
์๋ํ ๊ธฐ๋ฅ
- Node 21.7.1
- NextJS 14.1.3
- react-notion-x 6.16.0
- Typescript
- giscus
- Tailwind CSS + Daisy UI
- notion DB๋ฑ๋ก ๋ฐ ๊ฐ DB ID ํ์
- nodemailer๋ฅผ ํตํ ์๋ํ๋ฅผ ์ํ gmail 2์ฐจ์ธ์ฆ + ์ฑ ๋น๋ฐ๋ฒํธ ํ์
- ์น์ฌ์ดํธ ํธ์คํ ํ Vercel ๊ณ์ ํ์
- Repository ํด๋ก
git clone https://github.com/tnqkr3494/ecodev-blog.git
- NPM packages ์ค์น
npm install
-
์๋ Configuration ์ธํ ์๋ฃํ๊ณ Vercel์ ๋ฐฐํฌ
-
์น์ฌ์ดํธ ๊ฒ์์ด ๋ ธ์ถ์ ์ํ google search console, naver search advisor ๋ฑ๋ก
- envํ์ผ ๋ฑ๋ก
# notion DB์ฐ๋์ผ๋ก ๊ฐ์ ธ์จ ID
FRONT_DB_ID=""
BACK_DB_ID=""
CS_DB_ID=""
ALGORITHM_DB_ID=""
ETC_DB_ID=""
# nodemailer์์ ๋ฐ์ ์๋ก ์ฌ์ฉ๋ ์ ์ ๋ฉ์ผ
EMAIL_USER=""
# ์ ์ ์ ๋ฉ์ผ์ ์ฌ์ฉํ๋ ๊ณ์ ์ฑ ๋น๋ฐ๋ฒํธ(2์ฐจ์ธ์ฆ ํ์)
EMAIL_PASSWORD=""
# commit๋ฐ์ํ github username
GITHUB_USERNAME=""
# ๋ฉ์ผ์ ์ฒจ๋ถ๋ ์ด๋ฏธ์ง url
SUCCESS_IMG_URL=""
FAIL_IMG_URL=""
- Vercel cron ์ปค์คํ
{
"crons": [
{
"path": "/api/check-contributions",
"schedule": "0 11 * * *"
}
]
}
schedule๊ฐ ์์ ์ ํตํด ์ํ๋ ์๊ฐ์ ๋ฉ์ผ ์๋ฆผ์ด ์ฌ ์ ์๋๋ก ์์ ๊ฐ๋ฅํฉ๋๋ค.
๋ฐฐํฌ ์๋ฃ๋ ๋ชจ์ต
https://ecodev-blog.vercel.app/
์๋ ๋ฉ์ผ ์๋ฆผ
- ๐ง [email protected]