[:img[]{src="https://blog.atj.sh/post-attachments/v/01960547-d4d7-7722-a2e0-0055604a51b2"}](https://www.mini-dice.com)
2022๋
3์, **Mini Dice**๋ผ๋ ๊ฒ์์ ๋ง๋ค์ด ์ธํฐ๋ท์ ์๋น์ค๋ฅผ ์์ํ๋ค. [mini-dice.com](https://www.mini-dice.com)์์ ์ง๊ธ ๋ฐ๋ก ํ๋ ์ด ๊ฐ๋ฅํ๋ค.
# ์์ค ์ฝ๋

GitHub์์ ํ์ธ ๊ฐ๋ฅ.
[https://github.com/atjsh/mini-dice-v1](https://github.com/atjsh/mini-dice-v1)
# mini-dice-v1 ํ
ํฌ ์คํ
- HTTP ๊ธฐ๋ฐ ์น ์๋น์ค
- ์ ์ ์ธ์ฆ: ์์
๊ณ์ ๊ธฐ๋ฐ OAuth, ๋๋ HCaptcha ๊ฒ์ฌ ํต๊ณผ์์ ๋ํ ์ต๋ช
๊ณ์ ์์ฑ
- NestJS, Fastify๋ก ๊ตฌ์ถ๋ API ์๋ฒ. SWC ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น ๋ฅธ ๋น๋ ์ํฐํฉํธ ์์ฑ.
- React, Tailwind CSS, Recoil๋ก ๊ตฌ์ถ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
- PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ
- AWS Lambda๋ฅผ ์ปดํจํ
์ธํ๋ผ์คํธ๋ญ์ณ๋ก ์ฌ์ฉ. ์๋น์ค ์ ์ฒด API๊ฐ ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ์์ ๋์.
- esbuild๋ฅผ ์๋ฒ ์ฝ๋ ๋ฒ๋ค๋ฌ๋ก ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ์ ์ต์ ํ๋ ์ํฐํฉํธ ์์ฑ
- Github Actions๋ฅผ ํตํ CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
- ๋ชจ๋
ธ๋ฆฌํฌ ๊ตฌ์กฐ๋ก ๊ด๋ฆฌ๋๋ ์ฝ๋๋ฒ ์ด์ค
# ์ ์ง๋น์ฉ ์ต์ ํ
์๋น์ค ์ด์์ ์ํ ์ธํ๋ผ์คํธ๋ญ์ณ๋ค์ ๋ชจ๋ ํ๋ฆฌ ํฐ์ด๊ฐ ์ง์๋๋ ํด๋ผ์ฐ๋ ์ปดํจํ
์ผ๋ก ํด๊ฒฐํ์๋ค.
- ํ๋ฆฌ ํฐ์ด ์ฌ์ฉ ํํฉ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค: [Supabase](https://supabase.com/)์ SaaSํ PostgreSQL๋ฅผ ์ฌ์ฉ.
- ์ปดํจํ
์ธํ๋ผ์คํธ๋ญ์ณ: AWS Lambda ์ฌ์ฉ.
- ์๋ฒ ๋ก๊ทธ ๋ณด๊ด ๋ฐ ๋ชจ๋ํฐ๋ง: Amazon CloudWatch ์ฌ์ฉ.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํธ ๋ฑ Secret ๊ด๋ฆฌ: AWS Systems Manager Parameter Store ์ฌ์ฉ.
- CI ๋ฐ CD: Github Actions ์ฌ์ฉ.
- ์น ํ๋ก ํธ์๋ ํธ์คํ
: Cloudflare Pages ์ฌ์ฉ.
- ๋ฐฉ๋ฌธ์ ํต๊ณ ์ฐ์ถ: Google Analytics ์ฌ์ฉ.
- ํ๋ฆฌ ํฐ์ด ๋ฏธ์ง์์ผ๋ก ์ธํ ์ง์ถ ํํฉ
- `mini-dice.com` ๋๋ฉ์ธ ์ฃผ์ ์ ์ง๋น์ฉ: ์ฐ๊ฐ 14 USD
- Amazon Route 53์ DNS ๊ด๋ฆฌ๋น์ฉ: ์ฐ๊ฐ 6 USD (์ 0.50 USD)
๋นํด๋
๋ ์์ ์ง์ถ: ์ฐ 20 USD
# ๋๋ฌ๋ณด๊ธฐ
[๋์์ธ ๋ ์ดํด๋ณด๊ธฐ](https://blog.atj.sh/post/43)
<!-- [mini-dice-v1 ๊ธฐ์ ํ๊ณ ์ฝ์ด๋ณด๊ธฐ](https://blog.atj.sh/post/44) -->