์น์ฌ์ดํธ ๋ง๋๋ ํ๋ก์ ํธ๋ฅผ ๋์ฐจ๋ก ์งํํ๋ฉด์, ํ๋ก ํธ์๋์ ๋ฐฑ์๋ ๋จ์์ API๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฐ๋ ์ ๋ํด์๋ ์กฐ๊ธ ์ต์ํด์ก๋ค.
๋ด๊ฐ ์๊ฐํ ํด๋ผ์ด์ธํธ ํ๋ฉด ๋ ๋๋ง ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
[CSR - ํด๋ผ์ด์ธํธ์ฌ์ด๋ ๋ ๋๋ง ๊ธฐ์ค / React & Node.js]
// Get ์์ฒญ
1. ํ๋ก ํธ์๋์์ ํ๋ฉด ๋ผ๋๋ฅผ ๊ตฌํํ๋ค.
2. ์๋ฒ์์๋ ํ๋ฉด์ ๋ฟ๋ ค์ค ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํด์ฃผ๋ API๋ฅผ ๋ง๋ ๋ค.
3. ํ๋ก ํธ์๋์์๋ ํด๋น API๋ฅผ ํธ์ถํ๊ณ , API๋ฅผ ํตํด DB๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ , ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ์์น์ ๋ด์ ๋ฟ๋ ค์ค๋ค.
// Get ์์ฒญ์ธ์ Post, Patch, Delete,
1. ํ๋ก ํธ์๋์์ ํธ๋ฆฌ๊ฑฐ๊ฐ ๋ ์ ์๋ ๋ฒํผ์ด๋ ํ์๋ฅผ ๋ง๋ ๋ค.
2. ํด๋น ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋๋์๋ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ API url์ ํตํด body๋ header์ ๋ด์ ์ ์กํ๋ค.
3. ์์ฒญํ API๋ DB์ ์ ๊ทผํ์ฌ ์์ฑ, ์์ , ์ญ์ ๋ฑ์ ์งํํ๋ค.
์์ฃผ ๊ฐ๋จํ๊ฒ ์ ์ฐจ๋ฅผ ์ ๋ฆฌํด๋ณด๋ฉด ์์ ๊ฐ๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ๋ฐ ๋ด๊ฐ ํ๋ก์ ํธ๋ก ๋ง๋ ์น์ฌ์ดํธ์์๋, ๋จ์ ๊ฒ์๋ฌผ Post ์์ฒญ์ด๋ Get ์์ฒญ์ธ๋ฐ๋ ๋ฒ๋ฒ
์์ด ๋๊ฒ ์ฌํ๋ค.
์๋ง ์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ์ ๋๋ก ํ์ง ์์๋๊ฒ
๊ณผ, ํจ์จ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์ฐ์ง ์์๋ ๊ฒ
์ ๋ฌธ์ ๊ฐ์๋ฐ ์ฐจ์ฐจ ํ์ธํด๋ณด๋ ค๊ณ ํ๋ค.
์ด์ ๋ฐ๋ผ ๋ํ ํ๋ซํผ๋ค์ api์์ฒญ์ ์ด๋ป๊ฒ ํ๊ณ ์๋์ง
๊ฐ ๊ถ๊ธํด์ก๊ณ , ์ด๋ป๊ฒ ๊ทธ๋ ๊ฒ ๋ง์ ๋ฐ์ดํฐ๋ค์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ์๋๋ ๋น ๋ฅธ์ง
๊ฐ ๊ถ๊ธํด์ก๋ค.
์ฌ๋ฌ ์ฌ์ดํธ๋ค์ ๋์๋ค๋๋ฉด์ ์ด๋ฐ ์ ๋ฐ ๋ฒํผ์ ๋๋ฌ๋ณด๋ฉฐ API์์ฒญ์ด ์ด๋ป๊ฒ ์ค๊ฐ๋์ง ๊ด์ฐฐํด๋ณด๋ ค๊ณ ํ๋ค.
์ปค๋ฎค๋ํฐ์์ ์ผ๋ฐ ๊ฒ์๋ฌผ(๋๊ตฐ๊ฐ๊ฐ ์ ๋ก๋ํด์ฃผ์ ๊ธ์ ์์๋ก ๋ค์ด๋ดค์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!)์ ๋ค์ด๊ฐ์๋, ํด๋น ๊ฒ์๋ฌผ์ ๋ด์ฉ๊ณผ ์ฌ์ง์ ๋ฟ๋ ค์ฃผ๋ api๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ๋ฐ ๊ฐ๋ฐ์๋๊ตฌ๋ฅผ ์ด์ด์ NETWORK > Fetch > Get
์์ฒญ์ ํด์ค๋ Request URL
์ ์ดํด๋ดค์๋, Data๋ฅผ ๋ฐ์์ค๋ Get ์์ฒญ์ ๋ณด์ง ๋ชปํ๋ค.
์ ์ผํ๊ฒ ์๋ Get ์์ฒญ์ ์๋ url์ด์๊ณ
https://client-sdk.hackle.io/api/v2/w/rb1wDPCB39swIGfTAhDcz0QXvmh6hayS/w
์ฐพ์๋ณด๋ A/Bํ
์คํธ
๋ฑ์ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ์๋ฃจ์
์ ์ฑ
์ด์๋ค.
ํน์๋ Post ๋ฉ์๋๋ก ๋์ด์๋๊ณณ๋ค์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ๊ณณ์ผ๊น..? ์ถ์ด์ URL๋ค์ ๋ชจ์กฐ๋ฆฌ ์ดํด๋ดค๋๋ฐ ํ์ ํ๊ฒ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
์.. ๊ฒ์๋ฌผ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ๊ณณ์ ์๋ ๊ฒ ๊ฐ์๋ฐ! ์ด๋ป๊ฒ ํ๊ฑธ๊น?
SSR๊ณผ CSR์ ์ฐจ์ด์ธ๊ฐ ์ถ์๋ค.
CSR(ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง)์ ์ด๊ธฐ ๋ก๋ ์ ๋น HTML
๊ณผ ๋ชจ๋ ๋ก์ง์ด ๋ด๊ฒจ ์๋ Javascript
๋ค์ด๋ก๋๋ฅผ ํ ๋ค, Dom์ ๋์ ์ผ๋ก ์์ฑํ์ฌ ๊ทธ๋ ค ๋ธ๋ค. ์ดํ API ์์ฒญ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ฒ๋๊ณ ๊ทธ ์์ ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์ง๋ค. ๋๋ฌธ์ ์๋๋ ๋นจ๋ผ๋ณด์ผ ์ ์์ผ๋, SEO์ ๋ถ๋ฆฌํ๋ค๋ ๋จ์ ์ด ์๋ค..
SSR(์๋ฒ์ฌ์ด๋๋ ๋๋ง)์ ์๋ฒ์์ ์ ์ ํ์ด์ง๋ฅผ ๋ง๋ค์ ์๋ฒ์์ ๋ ๋๋งํ์ฌ ์์ฑ๋ HTML ํ์ผ์ ๋ก๋ํด์ค๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๊ฐ ๋ค ๋ด๊ฒจ์ ธ์ ์ค๊ธฐ ๋๋ฌธ์ SEO์ ์ ๋ฆฌํ๋ค. ๋ค๋ง ํ์ด์ง๊ฐ ์ฌ๋ฌ๊ฐ๊ฐ ์์ฑ๋ ์ ๋ฐ์ ์๋ค.
" ์, ๋ฐ์ดํฐ๊ฐ ๋ค ๋ด๊ฒจ์ค๋ SSR์ด๋ผ๋ฉด ํด๋ผ์ด์ธํธ ๋จ์์ ๋ฟ๋ ค์ค ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ API๊ฐ ํ์ ์์์๋ ์๊ฒ ๋ค..?" ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
=> ๋ด๊ฐ ์๋ชป ์ดํดํ ๋ฐ์ผ์๋ ์์๊ฒ ๊ฐ์์, ์กฐ๊ธ ๋ ์ฐพ์๋ณด๊ณ ๊ธ์ ์์ ํ๋ ค๊ณ ํ๋ค.
์ธํ๋ฉ ๊ฐ๋ฐ ๋ธ๋ก๊ทธ : https://tech.inflab.com/
์ธํ๋ฐ ์ฑ์ฉ ํ์ด์ง : https://www.inflearn.com/pages?type=withus
์ธํ๋ฐ์ ์น์ฌ์ดํธ์ Node.js์ React๋ฅผ ํ์ฉํ๋ค.
Next.js๊ฐ์ ๊ฒฝ์ฐ๋ SSR์ด๋ผ๊ณ ๋ค์๋๋ฐ ๊ทธ๊ฒ์ด ์๋ ๋
ธ๋์ ๋ฆฌ์กํธ ์กฐํฉ์ด๋ผ๋ฉด..
Node.js & React === CSR
์ด ์๋๊ฒ์ธ๊ฐ?
API๋ฅผ ๊ณต๊ฐํ์ง ์์ผ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ฐ์์ค๋ ๊ฒ์ธ๊ฐ?..
์๊ฒ๋๋ฉด ๊ธ์ ๋ค์ ์จ์ผ๊ฒ ๋ค.
https://www.inflearn.com/community/questions
์ปค๋ฎค๋ํฐ์ ์ต์ ๊ฒ์๊ธ์ ์กฐํํ๋ ํด๋น ํ์ด์ง์์๋ ์ปดํฌ๋ํธ์ ๋ฐ๋ผ API ์ฌ์ฉ ์ ๋ฌด๊ฐ ๋ค๋ฅธ ๊ฒ ๊ฐ๋ค.
์ฌ์ง์ ๋ณด๋ฉด ์์ชฝ ์ฌ์ด๋์ ์๋ ๋ญํน
๊ณผ ์ฃผ๊ฐ ์ธ๊ธฐ๊ธ
์ API๋ก ํธ์ถ
ํ๊ณ ์๊ณ , ๊ฐ์ด๋ฐ์ ์๋ ์ต์ ๊ฒ์๋ฌผ
์ API ํธ์ถ์ ํ์ธํ์ง ๋ชปํ๋ค
.
์ด๋ ๊ฒ ๋๊ฐ ํ์ธ!
์ปดํฌ๋ํธ๋ณ๋ก API๋ฅผ ํธ์ถํ ๊ฒ์ธ์ง, ํน์ ๋ ๋๋ง์ด ๋ค ๋ ์ ์ ํ์ด์ง๋ฅผ ํธ์ถํ ๊ฒ์ธ์ง๊ฐ ๋ค๋ฅธ๊ฒ์ธ๊ฐ?
์ด๋ฐ ์ ๋ฐ ๊ถ๊ธํ ๊ฒ๋ค์ด ๋ง์๋ฐ ๋ช
์พํ๊ฒ ๋ฌผ์ด๋ณผ ๋งํ ๊ณณ์ด ์๋ค.. GPT๋ ๋ ๋์์ฃผ์ง ๋ชปํด...
ํน์.. ์ง๋๊ฐ๋ค๊ฐ ์ด ๊ธ์ ๋ฐ๊ฒฌํ์ฌ!
์ ๋ด์ฉ์ ๋ํด ์๊ณ ๊ณ์ ๋ถ๋ถ์ ๋ํด ์ค๋ช
ํด์ฃผ์๊ฑฐ๋,
์ฐพ์๋ณผ ์ ์๋ ํค์๋๋ฅผ ์ฃผ์ค ์ ์๋ ๋ถ์ด ๊ณ์๋ค๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!