nextron๊ณผ firebase๋ฅผ ์ฌ์ฉํ ๋ฐ์คํฌํ ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
- ํ์๊ฐ์
- ๋ก๊ทธ์ธ
- ์ ์ ๋ชฉ๋ก
- 1: 1 ์ฑํ
- ๊ทธ๋ฃน์ฑํ
- ํ์ด์ด ๋ฒ ์ด์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ฐํ๊ฒ ๊ฒฐํฉ๋์ง ์๋๋ก ํ๋๋ฐ ์ง์คํด์ ๊ตฌํํ์ต๋๋ค.
- Repository ํจํด์ ์ฌ์ฉํ์ฌ ์ธ๋ถ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ก์ง์ ์ถ์ํํ์ฌ ๋ฐ์ดํฐ ์ ๊ทผ ๋ก์ง๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๋๋ฐ ์ง์คํด์ ๊ตฌํํ์ต๋๋ค.
- ๊ธฐ์กด์ ์ปดํฌ๋ํธ์ ๊ฐํ๊ฒ ๊ฒฐํฉ๋์ด ์๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ปค์คํ ํ ์ ์ฌ์ฉํ์ฌ ๋ถ๋ฆฌํ์ต๋๋ค. ๋ชจ๋ ์ปดํฌ๋ํธ์์ ๊ฐ ๋ก์ง์ด ์ฌ์ฌ์ฉ๋ ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค.
- Firebase์ Authentication์ ์ฌ์ฉํด ๋ก๊ทธ์ธ, ํ์๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค.
- react-hook-form๊ณผ yup์ ์ฌ์ฉํด ์ ๋ ฅ๊ฐ์ ์ ํจ์ฑ ๊ฒ์ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค.
- Firebase store์ onSnapshot ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๊ด์ฐฐํ ์ ์๋๋ก ํ์ต๋๋ค.
- repository์ rxjs์ subject๋ฅผ ๋์ด ์ปดํฌ๋ํธ์์ ์ง์ ์ ์ผ๋ก onSnapshot ๋ฉ์๋์ ์ฐ๊ฒฐ๋์ง ์๋๋ก ๊ตฌํํ์ต๋๋ค.
- ์ ๋ชฉ๊ณผ ์ด๋ํ ์ ์ ๋ฅผ ์ ํํ์ฌ ๊ทธ๋ฃน ์ฑํ ๋ฐฉ์ ๋ง๋ค ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค.
- ์ปดํฌ๋ํธ๊ฐ ๊ตฌ์ฒด์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(ํ์ด์ด ๋ฒ ์ด์ค)์ ์์กดํ์ง ์๋๋ก ํ๊ธฐ ์ํด ๊ณ ๋ฏผํ๋ ๊ณผ์ ์ด ์ฆ๊ฑฐ์ ์ต๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ฐ์ดํฐ ์ ๊ทผ ๋ก์ง์ ๋ถ๋ฆฌ๊ฐ ๋ฏธํกํ ๊ฒ ์์ฝ์ต๋๋ค. repository์ ๋น์ฆ๋์ค ๋ก์ง์ด ์ค๋ฉฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.
- ์์ผ๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ๋น์ฆ๋์ค ๋ก์ง์ด repository๋ก ์ค๋ฉฐ๋ ๋ถ๋ถ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๊ฐ ์ ๋๋ก ์ ์ฉ๋์ง ์์ ๋ถ๋ถ์ ์ฐพ์ ๋ฆฌํฉํฐ๋ง์ ์งํํ ์์ ์ ๋๋ค.
- ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ๋น์ฆ๋์ค ๋ก์ง์ด ์ปดํฌ๋ํธ์ ์ ๋๋ก ๋ถ๋ฆฌ๋์ง ์๋ค๋ ๊ฒ์ ๋๊ผ์ต๋๋ค.
- ํ๋ก์ ํธ๋ฅผ ํด๋ก ํฉ๋๋ค.
git clone https://github.com/hyejineee/maumlab-assignment.git
- ํด๋ก ํ ํ๋ก์ ํธ ๋ด๋ถ๋ก ์ด๋ํฉ๋๋ค.
cd maumlab-assignment
- ์์กด ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
yarn
- ํ์ด์ด ๋ฒ ์ด์ค ์ฌ์ฉ์ ์ํด renderer ํด๋ ํ์์ .env ํ์ผ์ ์ถ๊ฐํฉ๋๋ค. .env ํ์ผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
# firebase
NEXT_PUBLIC_ENV_FIREBASE_APP_KEY=
NEXT_PUBLIC_ENV_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_ENV_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_ENV_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_ENV_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_ENV_FIREBASE_APP_ID=
- ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์คํํฉ๋๋ค.
yarn dev