๋ณธ ํ๋ก์ ํธ๋ ๋ฐฑ์๋๋ nodeJS์ express ํ๋ ์์ํฌ์ mongoDB๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ์์ฒญ์ ๋ํ API๋ฅผ ๋ง๋ค์ด์ฃผ์๊ณ , ํ๋ก ํธ์๋๋ create-react-app ๋ชจ๋์ ์ฌ์ฉํด ๊ตฌํํ๋ค.
๋ฐฑ์๋๋ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์ config๊ฐ ๋์์์ผ๋ฉฐ, ์ฃผ์ ์์ค๋ server ๋๋ ํฐ๋ฆฌ์ ์์นํ๋ค. ํ๋ก ํธ์๋๋ ์ ๋ฐ์ ์ธ ํ๋ก์ ํธ ํ์ผ์ด ์ ๋ถ client ๋๋ ํฐ๋ฆฌ์ ์์นํ๋ค.
์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณ์ ์ ์์ฑ(๋ฑ๋ก), ๋ก๊ทธ์ธ, ์ธ์ฆ, ๊ทธ๋ฆฌ๊ณ ๋ก๊ทธ์์ํ๋ ๋ฐ์ ์ด์ ์ด ๋ง์ถฐ์ ธ์๋ค. ์ด๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ก๋ express๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ ODM์ ๋ฐ๋ฅด๋ noSQL mongoDB๋ฅผ ๊ณจ๋๋ค.์ด๋ Javascript & nodeJS๋ฅผ ์ด์ฉํด์ ์ค๊ณํ๊ธฐ์ ๋งค์ฐ ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ฌ์ฉ์๊ฐ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ , Postman ๋ฑ)์ ํ์ฉํด ์์ฒญ์ ๋ณด๋ผ ๋ ์ด๋ฅผ ๋ฐ์ ํ์ฑ(ํด์)ํ๊ธฐ ์ํด
json()
์ด๋urlencoded()
๋ฏธ๋ค์จ์ด๋ฅผ ๋ฑ๋กํด์ค๋ค. - ์ถํ์ ๋ก๊ทธ์ธ ์์ cookie ๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ฏ๋ก
cookieParser()
๋ฏธ๋ค์จ์ด๋ฅผ ๋ชจ๋๋ก๋ถํฐ ๋ฐ์ ๋ฑ๋กํด์ค๋ค. - mongoose ๋ชจ๋์ ํตํด mongoDB์ ์ ๊ทผํ๊ณ ์ ํ ๋์๋ ์คํค๋ง์ ๋ชจ๋ธ์ ์ด์ฉํ๋ค. ์คํค๋ง๋ก ์๋ฃ์ ํ์
, ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ค์ ํด์ค ์ ์์ผ๋ฉฐ ๋ชจ๋ธ์ ์์ฑํ๋ค. ํ์ model์ mongoDB database์ ์ปฌ๋ ์
์ ๋ํํ๋๋ฐ, ์ด๋ฅผ ํตํด ์กฐํ, ์์ , ์ญ์ ๋ฅผ ํ ์ ์๋ค. ๋ค๋ง
save()
๋ฅผ ํตํด ์ฝ์ ์ ํ ๋์๋ ๋ชจ๋ธ ์ธ์คํด์ค๋ฅผ ํตํด ํ๋ฉด ๋๋ค. - ๋ก๊ทธ์ธ์ ํ ๋์๋ ์ปฌ๋ ์
์์
findOne()
์ ํตํด ์ฐพ๊ณ ๋น๋ฐ๋ฒํธ๋ฅผ ๋น๊ตํ๊ณ , ๋ง์ผ๋ฉด jwt ํ ํฐ์sign()
์ ํตํด ์์ฑํด์ฃผ๋ฉด ๋๋ค. - ์ธ์ฆ์ ํ๊ธฐ์ํด์๋ middleware ๋๋ ํฐ๋ฆฌ์ auth ๋ฏธ๋ค์จ์ด๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ผ์ฐํ ์์ ํ์ฉํ๋ฉด ๋๋ค. ์ด ๊ณผ์ ์์ callback ํจ์๋ฅผ ์ฑ๊ณต๊ณผ ์คํจ์ ์ผ์ด์ค๋ก ๋๋์ด ์ ์ฉํด์ค๋ค.
- ์ธ์ฆ์ ์ํด ๋ง๋ ๋ฏธ๋ค์จ์ด๋ฅผ ๋ก๊ทธ์์ get ์์ฒญ์์ ํ ํฐ์ ์ง์์ฃผ๋ ๋ก์ง์ ๋ฏธ๋ค์จ์ด ์ด์ ์ ๋ฐฐ์นํ๋ค.