๐Ÿ”ฌComputer Science/๋„คํŠธ์›Œํฌ

[TIL] ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก

hellohailie 2023. 1. 10. 00:33

 

โœ”๏ธ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

1. ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก (GET)

=> ์ฃผ๋กœ ์ •๋ ฌ ํ•„ํ„ฐ (๊ฒ€์ƒ‰์–ด)

 

2. ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ  ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก (POST, PUT, PATCH)

=> ํšŒ์›๊ฐ€์ž…, ์ƒํ’ˆ ์ฃผ๋ฌธ, ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ๋ฆฌ์†Œ์Šค ๋ณ€๊ฒฝ ๋“ฑ๋“ฑ


โœ”๏ธ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก ์ƒํ™ฉ

1. ์ •์  ๋ฐ์ดํ„ฐ ์กฐํšŒ (GET)

์ด๋ฏธ์ง€, ์ •์  ํ…์ŠคํŠธ ๋ฌธ์„œ

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์กฐํšŒ ๊ฐ€๋Šฅ

 

2. ๋™์  ๋ฐ์ดํ„ฐ ์กฐํšŒ (GET)

์ฃผ๋กœ ๊ฒ€์ƒ‰, ๊ฒŒ์‹œํŒ ๋ชฉ๋ก์—์„œ ์ •๋ ฌ ํ•„ํ„ฐ(๊ฒ€์ƒ‰์–ด)

GET์€ ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

 

3. HTML Form์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก (GET, POST)

ํšŒ์›๊ฐ€์ž…, ์ƒํ’ˆ ์ฃผ๋ฌธ, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ

GET, POST๋งŒ ์ง€์›ํ•˜๋ฏ€๋กœ ์ปจํŠธ๋กค URI๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ex) POST์˜ /new, /edit, /delete๊ฐ€ ์ปจํŠธ๋กค URI์ด๋‹ค. 

  • Content-Type : application/x-www-form-urlencoded ์‚ฌ์šฉ

=> form์˜ ๋‚ด์šฉ์„ ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด์„œ ์ „์†กํ•œ๋‹ค. (key = value, ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹)

=> ์ „์†ก ๋ฐ์ดํ„ฐ๋ฅผ url encoding ์ฒ˜๋ฆฌํ•œ๋‹ค. 

 

  • Content-Type : multipart/form-data

=> ํŒŒ์ผ ์—…๋กœ๋“œ ๊ฐ™์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์ „์†ก์‹œ ์‚ฌ์šฉํ•œ๋‹ค. 

=> ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ๊ณผ ํผ์˜ ๋‚ด์šฉ์„ ํ•จ๊ป˜ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

4. HTTP API๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก

ํšŒ์›๊ฐ€์ž…, ์ƒํ’ˆ ์ฃผ๋ฌธ, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ

  • ์„œ๋ฒ„ to ์„œ๋ฒ„ (๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ํ†ต์‹ )
  • ์•ฑ ํด๋ผ์ด์–ธํŠธ
  • ์›น ํด๋ผ์ด์–ธํŠธ

HTML์—์„œ Form ์ „์†ก ๋Œ€์‹  javascript๋ฅผ ํ†ตํ•œ ํ†ต์‹ ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. 

React๋‚˜ Vue ๊ฐ™์€ ์›น ํด๋ผ์ด์–ธํŠธ์™€ API ํ†ต์‹ 

 

  • Content-Type : application/json ์„ ์‚ฌ์šฉํ•œ๋‹ค. (ํ‘œ์ค€)

 

๐Ÿ˜ƒ ์ž˜๋ชป๋œ ๊ฐœ๋… ์ „๋‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €์˜ ์„ฑ์žฅ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค๐Ÿค“