TIL [20240617] - HTTP, REST

์ด์œค์„ฑยท2024๋…„ 6์›” 17์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
39/51

๐Ÿ“– ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

HTTP, REST

๐ŸŒ HTTP

HTTP(Hypertext Transfer Protocol)๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์–ด ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. HTTP๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ 
์„œ๋ฒ„์— ์š”์ฒญ(request)์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต(response)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”„ HTTP์˜ ํ†ต์‹  ๊ณผ์ •

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ URL์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  3. ์„œ๋ฒ„๋Š” ์‘๋‹ต์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ์‘๋‹ต์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๐ŸŒ HTTP ์ฃผ์š” ํŠน์ง•

๋ฌด์ƒํƒœ(Stateless)

  • HTTP๋Š” ๊ฐ ์š”์ฒญ-์‘๋‹ต ์Œ์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ด์ „ ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€์•Š์Œ
  • ์„œ๋ฒ„๋Š” ๊ฐ ์š”์ฒญ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ์š”์ฒญ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์Œ
  • ์ด๋Š” ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ํ™•์žฅ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฟ ํ‚ค๋‚˜ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Œ

๋ฉ”์„œ๋“œ(Method)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•˜๋Š” ๋ชฉ์  ๋ฐ ๊ทธ ์ข…๋ฅ˜๋ฅผ ์•Œ๋ฆฌ๋Š” ์ˆ˜๋‹จ์„ ๋งํ•œ๋‹ค.

  • GET:
    • ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญ
    • URL(URI) ํ˜•์‹์œผ๋กœ ์„œ๋ฒ„ ์ธก์— ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•จ
  • HEAD:
    • GET์š”์ฒญ๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์‘๋‹ต ๋ณธ๋ฌธ์„ ๋ฐ›์ง€ ์•Š๊ณ  ํ—ค๋” ์ •๋ณด๋งŒ ์š”์ฒญ
  • POST:
    • ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์ถœํ•˜์—ฌ ์ฒ˜๋ฆฌ๋ฅผ ์š”์ฒญ
    • ์ฃผ๋กœ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ
  • PUT:
    • ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธ
    • ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Œ
  • DELETE:
    • ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œ
    • ์›น ์„œ๋ฒ„์ธก์— ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉ
    • ์‹ค์ œ๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„ ์ž์›์„ ์‚ญ์ œํ•˜๋„๋ก ํ•˜์ง„ ์•Š์•„์„œ ๋น„ํ™œ์„ฑํ™”๋กœ ๊ตฌ์„ฑ
  • CONNECT:
    • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ์ค‘๊ฐ„ ๊ฒฝ์œ ๋ฅผ ์œ„ํ•จ
    • ๋ณดํ†ต Proxy๋ฅผ ํ†ตํ•ด SSL ํ†ต์‹ ์„ ํ•˜๊ณ ์žํ•  ๋•Œ ์‚ฌ์šฉ
  • OPTIONS:
    • ์„œ๋ฒ„ ์ธก ์ œ๊ณต ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ์งˆ์˜๋ฅผ ํ•˜๊ธฐ ์œ„ํ•จ
    • ์›น ์„œ๋ฒ„ ์ธก์—์„œ ์ง€ํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค
  • TRACE:
    • Request ๋ฆฌ์†Œ์Šค๊ฐ€ ์ˆ˜์‹ ๋˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ณด๊ธฐ ์œ„ํ•จ
    • ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด loop-back ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ ์‚ฌ์šฉ
  • PATCH:
    • ๋ฆฌ์†Œ์Šค(๋ฐ์ดํ„ฐ)์˜ ์ผ๋ถ€๋ถ„๋งŒ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•จ
    • PUT๊ณผ ์œ ์‚ฌํ•˜๋‚˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ฆฌ์†Œ์Šค์˜ ์ผ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•  ๋•Œ ์“ฐ์ž„

ํ—ค๋”(Header)

  • HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์—๋Š” ํ—ค๋”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์š”์ฒญ ๋˜๋Š” ์‘๋‹ต์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•จ
  • ํ—ค๋”๋Š” ํ‚ค-๊ฐ’ ์Œ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„๋จ
  • ์š”์ฒญ ํ—ค๋”์˜ ์˜ˆ์‹œ:User-Agent(ํด๋ผ์ด์–ธํŠธ ์ •๋ณด), Accept(ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ MIMEํƒ€์ž…), Cookie(ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋œ ์ฟ ํ‚ค ์ •๋ณด) ๋“ฑ
  • ์‘๋‹ต ํ—ค๋”์˜ ์˜ˆ์‹œ: Content-Type(์‘๋‹ต ๋ฐ์ดํ„ฐ์˜ MIME ํƒ€์ž…), Set-Cookie(ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ์„ค์ •), Cache-Control(์บ์‹œ ์ œ์–ด ์˜ต์…˜) ๋“ฑ

์ƒํƒœ ์ฝ”๋“œ(Status Code)

HTTP ์‘๋‹ต์—๋Š” ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ƒํƒœ ์ฝ”๋“œ๋Š” ์„ธ ์ž๋ฆฌ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ๋Š” ์‘๋‹ต์˜ ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • 1xx(์ •๋ณด): ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์—ˆ์œผ๋ฉฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ณ„์† ์ง„ํ–‰ ์ค‘์ž„์„ ๋‚˜ํƒ€๋ƒ„
  • 2xx(์„ฑ๊ณต): ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ„ (์˜ˆ: 200 OK)
  • 3xx(๋ฆฌ๋‹ค์ด๋ ‰์…˜): ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๋™์ž‘์ด ํ•„์š”ํ•จ
  • 4xx(ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜): ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ„
  • 5xx(์„œ๋ฒ„ ์˜ค๋ฅ˜): ์„œ๋ฒ„์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ„

200๋ฒˆ๋Œ€ : ํ†ต์‹  ์„ฑ๊ณต

์ƒํƒœ์ฝ”๋“œ์ด๋ฆ„์˜๋ฏธ
200OK์š”์ฒญ ์„ฑ๊ณต(GET)
201Create์ƒ์„ฑ ์„ฑ๊ณต(POST)
202Accepted์š”์ฒญ ์ ‘์ˆ˜ O, ๋ฆฌ์†Œ์Šค ์ฒ˜๋ฆฌ X
204No Contents์š”์ฒญ ์„ฑ๊ณต O, ๋‚ด์šฉ ์—†์Œ

300๋ฒˆ๋Œ€ : ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ

์ƒํƒœ์ฝ”๋“œ์ด๋ฆ„์˜๋ฏธ
300Multiple Choice์š”์ฒญ URI์— ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌ
301Move Permanently์š”์ฒญ URI๊ฐ€ ์ƒˆ ์œ„์น˜๋กœ ์˜ฎ๊ฒจ๊ฐ
304Not Modified์š”์ฒญ URI์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ X

400๋ฒˆ๋Œ€ : ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜

์ƒํƒœ์ฝ”๋“œ์ด๋ฆ„์˜๋ฏธ
400Bad RequestAPI์—์„œ ์ •์˜๋˜์ง€ ์•Š์€ ์š”์ฒญ ๋“ค์–ด์˜ด
401Unauthorized์ธ์ฆ ์˜ค๋ฅ˜
403Forbidden๊ถŒํ•œ ๋ฐ–์˜ ์ ‘๊ทผ ์‹œ๋„
404Not Found์š”์ฒญ URI์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ์กด์žฌ X
405Method Not AllowedAPI์—์„œ ์ •์˜๋˜์ง€ ์•Š์€ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
406Not Acceptable์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€
408Request Timeout์š”์ฒญ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ
409Conflict๋ชจ์ˆœ
429Too Many Request์š”์ฒญ ํšŸ์ˆ˜ ์ƒํ•œ ์ดˆ๊ณผ

500๋ฒˆ๋Œ€ : ์„œ๋ฒ„ ์˜ค๋ฅ˜

์ƒํƒœ์ฝ”๋“œ์ด๋ฆ„์˜๋ฏธ
500Internal Server Error์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜
502Bad Gateway๊ฒŒ์ดํŠธ์›จ์ด ์˜ค๋ฅ˜
503Service Unavailable์„œ๋น„์Šค ์ด์šฉ ๋ถˆ๊ฐ€
504Gateway Timeout๊ฒŒ์ดํŠธ์›จ์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ

๋ณด์•ˆ

  • HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‰๋ฌธ ํ†ต์‹ ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ณด์•ˆ์— ์ทจ์•ฝํ•จ
  • HTTPS(HTTP Secure)๋Š” SSL/TLS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•จ์œผ๋กœ์จ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•จ
  • HTTPS๋Š” ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ์ธ์ฆ์„ ์ œ๊ณตํ•˜์—ฌ ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM)์„ ๋ฐฉ์ง€ํ•จ
  • HTTPS๋Š” ์›น ์‚ฌ์ดํŠธ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ์‹ ์›์„ ๊ฒ€์ฆํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•จ

๐Ÿงฉ REST

REST(REpresentational State Transfer)๋Š” ๋ถ„์‚ฐ ํ•˜์ดํผ ๋ฏธ๋””์–ด ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์†Œํ”„ํŠธ ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค.
REST๋Š” ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ณ๋กœ, ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์˜ ํ†ต์‹  ๋ฐฉ์‹์„
์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

REST๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ž์›(Resource)๋กœ ์ทจ๊ธ‰ํ•˜๋ฉฐ, ๊ฐ ์ž์›์€ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž(URI)๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” HTTP ๋ฉ”์„œ๋“œ(GET, POST, PUT, DELETE ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์›์— ๋Œ€ํ•œ CRUD(Create, Read, Update, Delete) ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฉ REST์˜ ์ฃผ์š” ํŠน์ง•

  1. ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ: REST๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ
  2. ๋ฌด์ƒํƒœ(Stateless): REST๋Š” ํด๋ผ์ด์–ธํŠธ์˜ Context๋ฅผ ์„œ๋ฒ„์— ์ €์žฅํ•˜์ง€์•Š์Œ. ๊ฐ ์š”์ฒญ์€ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•ด์•ผ ํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๊ธฐ์–ตํ•  ํ•„์š”๊ฐ€ ์—†์Œ
  3. ์บ์‹œ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ: REST๋Š” ํด๋ผ์ด์–ธํŠธ๋‚˜ ์ค‘๊ฐ„ ์„œ๋ฒ„์—์„œ ์บ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ. ๋„คํŠธ์›Œํฌ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์‘๋‹ต ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
  4. ๊ณ„์ธตํ™”(Layered System): REST๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์‚ฌ์ด์— ๊ฒŒ์ดํŠธ์›จ์ด, ํ”„๋ก์‹œ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ๋“ฑ์˜ ์ค‘๊ฐ„ ์„œ๋ฒ„๋ฅผ ๋‘˜ ์ˆ˜ ์žˆ์Œ. ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ๋†’์ผ ์ˆ˜์žˆ์Œ
  5. ์ธํ„ฐํŽ˜์ด์Šค ์ผ๊ด€์„ฑ: REST๋Š” ์ž์›, HTTP ๋ฉ”์„œ๋“œ, ์ž์ฒด ์„ค๋ช…์  ๋ฉ”์‹œ์ง€ ๋“ฑ์„ ํ†ตํ•ด ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต
  6. Code on demand: ์„œ๋ฒ„์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ „์†กํ•ด์„œ ํด๋ผ์ด์–ธํŠธ ๊ธฐ๋Šฅ์„ ์ผ์‹œ์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ

๐Ÿงฉ REST์˜ ์žฅ๋‹จ์ 

์žฅ์ 

  • HTTP ํ”„๋กœํ† ์ฝœ ํ™œ์šฉ: ์บ์‹ฑ, ๋ณด์•ˆ, ์••์ถ• ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์ถ”๊ฐ€์ ์ธ ์žฅ์ ์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์Œ
  • ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ: HTTP ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์„ ๋”ฐ๋ฅด๋ฏ€๋กœ, ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ๊ณผ ์–ธ์–ด์—์„œ REST API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ๋ฉ”์‹œ์ง€์˜ ๋ช…ํ™•์„ฑ: REST๋Š” HTTP ๋ฉ”์„œ๋“œ, URI, ๋ฏธ๋””์–ด ํƒ€์ž… ๋“ฑ์„ ํ†ตํ•ด API์˜ ์˜๋„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌ
  • ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์—ญํ•  ๋ถ„๋ฆฌ: ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์‚ฌ์šฉ์ž ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌ

๋‹จ์ 

  • ํ‘œ์ค€์˜ ๋ถ€์žฌ: REST๋Š” ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์ด๋ฏ€๋กœ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„ ํ‘œ์ค€์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ
  • ์ƒํƒœ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€: REST๋Š” ๋ฌด์ƒํƒœ ํ†ต์‹ ์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๋ฏ€๋กœ, ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ตฌํ˜„์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ
  • ์˜ค๋ฒ„ํ—ค๋“œ: REST๋Š” ๊ฐ ์š”์ฒญ๋งˆ๋‹ค ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฉ”์‹œ์ง€ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ํ”„๋กœํ† ์ฝœ์˜ ์••์ถ•์ด๋‚˜ ํŽ˜์ด์ง• ๋“ฑ์˜ ๊ธฐ๋ฒ•์œผ๋กœ ์™„ํ™” ๊ฐ€๋Šฅ
  • ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์˜ ์ œ์•ฝ: REST๋Š” ์š”์ฒญ-์‘๋‹ต ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ

๐Ÿ“š ์˜ค๋Š˜์˜ ํšŒ๊ณ 

์•ž์œผ๋กœ ๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„๋„ ํ•ด์•ผํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ์‹œ๊ฐ„์„ ๊ตฌํ˜„ ๋จผ์ €ํ•˜๋ฉด ์ต์ˆ™ํ•ด์ง€๊ฒ ์ง€๋ผ๋Š” ์•ˆ์ผํ•œ ๋งˆ์Œ์œผ๋กœ ์ œ๋Œ€๋กœ ๋ณด์ง€์•Š์•˜๋˜ ๊ฒƒ๋“ค์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ง€๋‚˜์ณค๋˜ ๊ฒƒ๋“ค์„ ๋งŽ์ด ๋˜๋Œ์•„๋ณด๋ฉฐ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

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