๐Ÿ˜ง[๊ถ๊ธˆํ•ด์š”] ์ธํ”„๋Ÿฐ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐ›์•„์™€์„œ ํ˜ธ์ถœํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š”๊ฑธ๊นŒ?

๋žธ๋‚˜ยท2023๋…„ 7์›” 6์ผ
0

๊ถ๊ธˆํ•ด์š”

๋ชฉ๋ก ๋ณด๊ธฐ
1/1

๐Ÿ‘ฉโ€๐Ÿซ ์›น์‚ฌ์ดํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฐ์šด API์˜ ์—ญํ•  (๊ฐ„๋‹จ ver.)

์›น์‚ฌ์ดํŠธ ๋งŒ๋“œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋‘์ฐจ๋ก€ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ๋‹จ์—์„œ 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์š”์ฒญ์ด ์–ด๋–ป๊ฒŒ ์˜ค๊ฐ€๋Š”์ง€ ๊ด€์ฐฐํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋‹ค.

๐Ÿค” ์—ฌ๊ธฐ์„œ ๋“  ์˜๋ฌธ์ ..

์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ผ๋ฐ˜ ๊ฒŒ์‹œ๋ฌผ(๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์—…๋กœ๋“œํ•ด์ฃผ์‹  ๊ธ€์„ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ดค์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!)์— ๋“ค์–ด๊ฐ”์„๋•Œ, ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์˜ ๋‚ด์šฉ๊ณผ ์‚ฌ์ง„์„ ๋ฟŒ๋ ค์ฃผ๋Š” api๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.


๊ทธ๋Ÿฐ๋ฐ ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋ฅผ ์—ด์–ด์„œ NETWORK > Fetch > Get ์š”์ฒญ์„ ํ•ด์˜ค๋Š” Request URL์„ ์‚ดํŽด๋ดค์„๋•Œ, Data๋ฅผ ๋ฐ›์•„์˜ค๋Š” Get ์š”์ฒญ์€ ๋ณด์ง€ ๋ชปํ–ˆ๋‹ค.

์œ ์ผํ•˜๊ฒŒ ์žˆ๋Š” Get ์š”์ฒญ์€ ์•„๋ž˜ url์ด์—ˆ๊ณ 
https://client-sdk.hackle.io/api/v2/w/rb1wDPCB39swIGfTAhDcz0QXvmh6hayS/w

์ฐพ์•„๋ณด๋‹ˆ A/Bํ…Œ์ŠคํŠธ๋“ฑ์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ์†”๋ฃจ์…˜ ์ •์ฑ…์ด์—ˆ๋‹ค.

๐Ÿค” ํ˜น์‹œ..?

ํ˜น์‹œ๋‚˜ Post ๋ฉ”์†Œ๋“œ๋กœ ๋˜์–ด์žˆ๋Š”๊ณณ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ณณ์ผ๊นŒ..? ์‹ถ์–ด์„œ URL๋“ค์„ ๋ชจ์กฐ๋ฆฌ ์‚ดํŽด๋ดค๋Š”๋ฐ ํŒŒ์•…ํ•œ๊ฒƒ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ๊ตฌ๊ธ€ ์• ๋„๋ฆฌํ‹ฑ์Šค
  2. mixPanel์ด๋ผ๋Š” ๋งˆ์ผ€ํŒ… ์†”๋ฃจ์…˜
  3. ์ฑ„๋„ํ†ก ์†”๋ฃจ์…˜

์Œ.. ๊ฒŒ์‹œ๋ฌผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ณณ์€ ์—†๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ! ์–ด๋–ป๊ฒŒ ํ•œ๊ฑธ๊นŒ?


๐Ÿค” SSR๊ณผ CSR์˜ ์ฐจ์ด์ธ๊ฐ€?

SSR๊ณผ CSR์˜ ์ฐจ์ด์ธ๊ฐ€ ์‹ถ์—ˆ๋‹ค.

CSR(ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง)์€ ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ ๋นˆ HTML๊ณผ ๋ชจ๋“  ๋กœ์ง์ด ๋‹ด๊ฒจ ์žˆ๋Š” Javascript ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ•œ ๋’ค, Dom์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ๋ ค ๋‚ธ๋‹ค. ์ดํ›„ API ์š”์ฒญ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ฒŒ๋˜๊ณ  ๊ทธ ์œ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์ง„๋‹ค. ๋•Œ๋ฌธ์— ์†๋„๋Š” ๋นจ๋ผ๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋‚˜, SEO์— ๋ถˆ๋ฆฌํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค..

SSR(์„œ๋ฒ„์‚ฌ์ด๋“œ๋ Œ๋”๋ง)์€ ์„œ๋ฒ„์—์„œ ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์„œ ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋งํ•˜์—ฌ ์™„์„ฑ๋œ HTML ํŒŒ์ผ์„ ๋กœ๋“œํ•ด์ค€๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ๋‹ด๊ฒจ์ ธ์„œ ์˜ค๊ธฐ ๋•Œ๋ฌธ์— SEO์— ์œ ๋ฆฌํ•˜๋‹ค. ๋‹ค๋งŒ ํŽ˜์ด์ง€๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

" ์•„, ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ๋‹ด๊ฒจ์˜ค๋Š” SSR์ด๋ผ๋ฉด ํด๋ผ์ด์–ธํŠธ ๋‹จ์—์„œ ๋ฟŒ๋ ค์ค„ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” API๊ฐ€ ํ•„์š” ์—†์„์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค..?" ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

=> ๋‚ด๊ฐ€ ์ž˜๋ชป ์ดํ•ดํ•œ ๋ฐ”์ผ์ˆ˜๋„ ์žˆ์„๊ฒƒ ๊ฐ™์•„์„œ, ์กฐ๊ธˆ ๋” ์ฐพ์•„๋ณด๊ณ  ๊ธ€์„ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.


๐Ÿ‘€ ์ธํ”„๋Ÿฐ์˜ ํˆด์€ React / Node.js

์ธํ”„๋žฉ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ : 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๋ฅผ ํ˜ธ์ถœํ• ๊ฒƒ์ธ์ง€, ํ˜น์€ ๋ Œ๋”๋ง์ด ๋‹ค ๋œ ์ •์  ํŽ˜์ด์ง€๋ฅผ ํ˜ธ์ถœํ•  ๊ฒƒ์ธ์ง€๊ฐ€ ๋‹ค๋ฅธ๊ฒƒ์ธ๊ฐ€?


๐Ÿ‘๏ธ ์ด์–ด์„œ ๋“œ๋Š” ๊ถ๊ธˆํ•œ์ ๋“ค

  1. ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ , ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์„ ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋งŒ์œผ๋กœ ํŒŒ์•…์ด ๊ฐ€๋Šฅํ•œ๊ฐ€?
  2. API๋ฅผ ๊ฐ€์žฅ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ
    • ๋‚ด๋ถ€ ๊ด€๊ณ„์ž๋“ค๋งŒ DB์™€ API์— ์ ‘๊ทผํ•˜๊ณ  ์™ธ๋ถ€์ธ๋“ค์€ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ์ˆจ๊ธฐ๊ฑฐ๋‚˜ ์ œํ•œํ•˜๋Š” ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ?
  3. ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์€ ์‚ฌ์ดํŠธ(์˜ค๋Š˜์˜์ง‘, ๋ฌด์‹ ์‚ฌ)๋“ค์€ SSR์ด ํšจ๊ณผ์ ์ผ๊นŒ CSR์ด ํšจ๊ณผ์ ์ผ๊นŒ?


์ด๋Ÿฐ ์ €๋Ÿฐ ๊ถ๊ธˆํ•œ ๊ฒƒ๋“ค์ด ๋งŽ์€๋ฐ ๋ช…์พŒํ•˜๊ฒŒ ๋ฌผ์–ด๋ณผ ๋งŒํ•œ ๊ณณ์ด ์—†๋‹ค.. GPT๋„ ๋‚  ๋„์™€์ฃผ์ง€ ๋ชปํ•ด...

ํ˜น์‹œ.. ์ง€๋‚˜๊ฐ€๋‹ค๊ฐ€ ์ด ๊ธ€์„ ๋ฐœ๊ฒฌํ•˜์—ฌ!
์œ„ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์•Œ๊ณ ๊ณ„์‹  ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹œ๊ฑฐ๋‚˜,
์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ฃผ์‹ค ์ˆ˜ ์žˆ๋Š” ๋ถ„์ด ๊ณ„์‹œ๋‹ค๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

profile
๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€