REST

a way of providing interoperability between computer systems on the internet. ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ๊ฐ„์˜ ์ƒํ˜ธ์šด์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ค‘ ํ•˜๋‚˜

WEB (1991)

์–ด๋–ป๊ฒŒ ์ธํ„ฐ๋„ท์—์„œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ๊ฒƒ์ธ๊ฐ€? -> ์ •๋ณด๋“ค์„ ํ•˜์ดํผํ…์ŠคํŠธ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. ํ˜•์‹ : HTML ์‹๋ณ„์ž : URI ์ „์†ก ๋ฐฉ๋ฒ• : HTTP

HTTP/1.0 (1994-1996)

Roy T.Fielding : ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์›น์„ ๋ง๊ฐ€๋œจ๋ฆฌ์ง€ ์•Š๊ณ  HTTP ํ”„๋กœํ† ์ฝœ์„ ์ง„๋ณด์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ? -> HTTP Object Model -> (1998) Representational State Transfer๋กœ ๋ฐœํ‘œ -> (2000) โ€œArchitectural Styles and the Design of Network-based Software Architecturesโ€๋กœ ๋ฐœํ‘œ

API

  • XML-RPC(1998) ์›๊ฒฉ์œผ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ

  • Salesforce API(SOAP)(2000.2)

  • flickr API(2004.8)
    • SOAP, REST
  • SOAP vs REST : REST๊ฐ€ ๋‹จ์ˆœํ•˜๊ณ  ์‰ฝ๋‹ค

  • CMIS(2008) CMS๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ REST ๋ฐ”์ธ๋”ฉ ์ง€์› Roy T.Fielding โ€œNo REST in CMISโ€

  • REST API Guidelines(2016) uri๋Š” https://{serviceRoot}/{collection}/{id} ํ˜•์‹์ด์–ด์•ผ ํ•œ๋‹ค. GET, PUT, DELETE, POST, HEAD, PATCH, OPTIONS๋ฅผ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค. ๋ฒ„์ €๋‹์€ Major.minor๋กœ ํ•˜๊ณ  uri์— ๋ฒ„์ „ ์ •๋ณด๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค. -> Roy T.Fielding โ€œREST API๊ฐ€ ์•„๋‹ˆ๋ผ HTTP API๋ผ๊ณ  ํ•ด์•ผ ํ•œ๋‹ค.โ€ -> โ€œREST APIs must be hypertext-drivenโ€ -> REST API๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ๋ฒ„์ €๋‹ ์ „๋žต์€ ๋ฒ„์ €๋‹์„ ์•ˆ ํ•˜๋Š” ๊ฒƒ

์‚ฌ๋žŒ๋“ค์ด ์ƒ๊ฐํ•˜๋Š” REST API์™€ Roy T.Fielding์ด ์ƒ๊ฐํ•˜๋Š” REST API๊ฐ€ ๋‹ค๋ฅด๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ญ˜๊นŒ?โ€ฆ

REST API

-> REST ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์„ ๋”ฐ๋ฅด๋Š” API

REST

-> ๋ถ„์‚ฐ ํ•˜์ดํผ๋ฏธ๋””์–ด ์‹œ์Šคํ…œ(ex.์›น)์„ ์œ„ํ•œ ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ

์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ

-> ์ œ์•ฝ์กฐ๊ฑด์˜ ์ง‘ํ•ฉ, ์ฆ‰, ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์„ ๋ชจ๋‘ ๋”ฐ๋ผ์•ผ REST๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒƒ์ž„

REST๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์Šคํƒ€์ผ

  • client-server
  • stateless
  • cache
  • layered system
  • uniform interface : ์ž˜ ๋งŒ์กฑ ๋ชปํ•จ
    • uniform Interface์˜ ์ œ์•ฝ์กฐ๊ฑด
      1. ๋ฆฌ์†Œ์Šค๊ฐ€ uri๋กœ ์‹๋ณ„๋˜๋ฉด ๋œ๋‹ค.
      2. ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ http ๋ฉ”์„ธ์ง€์— ํ‘œํ˜„์„ ๋‹ด์•„์„œ ์ „์†กํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
      3. self-descriptive messages(๋ฉ”์„ธ์ง€๋Š” ์Šค์Šค๋กœ๋ฅผ ์„ค๋ช…ํ•ด์•ผ ํ•œ๋‹ค.)
        • ๋ฉ”์„ธ์ง€์˜ ๋‚ด์šฉ์œผ๋กœ ์˜จ์ „ํžˆ ํ•ด์„์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
      4. hyper media as the engine of application state(HATEOAS)
        • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋Š” ํ•˜์ดํผ๋งํฌ๋ฅผ ์ด์šฉํ•ด ์ „์ด๋˜์–ด์•ผ ํ•œ๋‹ค.
          - 3,4๋ฒˆ์€ ๋Œ€๋ถ€๋ถ„ ์•ˆ ์ง€์ผœ์ง
  • code-on-demand(optional) : ์„œ๋ฒ„์—์„œ ์ฝ”๋“œ๋ฅผ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ณด๋‚ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)

๊ทธ๋ ‡๋‹ค๋ฉด ์™œ Uniform Interface๊ฐ€ ํ•„์š”ํ•œ๊ฐ€?

๋…๋ฆฝ์  ์ง„ํ™”๋ฅผ ์œ„ํ•ด์„œโ€ฆ

  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์ง„ํ™”ํ•œ๋‹ค.
  • ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ์ด ๋ณ€๊ฒฝ๋˜์–ด๋„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • REST๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ ๊ณ„๊ธฐ : ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์›น์„ ๋ง๊ฐ€๋œจ๋ฆฌ์ง€ ์•Š๊ณ  HTTP ํ”„๋กœํ† ์ฝœ์„ ์ง„๋ณด์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ?

์›น์€ ์ž˜ ๋งŒ์กฑํ•˜๋‚˜?

  • REST๋ฅผ ์•„์ฃผ ์ž˜ ๋งŒ์กฑํ•˜๊ณ  ์žˆ์Œ
  • ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณ€๊ฒฝํ–ˆ๋‹ค๊ณ  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—…๋ฐ์ดํŠธํ•  ํ•„์š”X
  • ๋ฐ˜๋Œ€๋„ ์„ฑ๋ฆฝ
  • HTTP ๋ช…์„ธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ HTML ๋ช…์„ธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋„ ์›น์€ ์ž˜ ๋™์ž‘
  • ์–ด์จŒ๋“  ์ตœ์†Œํ•œ์˜ ๋™์ž‘์€ ํ•œ๋‹ค!!!!
    -> ์›น์€ ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ๊ฑธ๊นŒ? HTML, HTTP, ์›น ๋ธŒ๋ผ์šฐ์ €, ์›น ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๋“ค์˜ ๋…ธ๋ ฅโ€ฆ ํ•˜์œ„ํ˜ธํ™˜์„ฑ์„ ๊นจ๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋งˆ์–ด๋งˆํ•œ ์‹œ๊ฐ„์ด ๋“ค์–ด๊ฐ
    ์ž˜๋ชป ๋งŒ๋“ค์–ด์ง„ ๊ตฌํ˜„์ฒด๋“ค๊ณผ์˜ ์ƒํ˜ธ์šด์šฉ์„ฑ์กฐ์ฐจ๋„ ์ง€์ผœ์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ์กด์žฌํ•œ๋‹ค.
    • Referer ์˜คํƒ€์ง€๋งŒ ์•ˆ ๊ณ ์นจ
    • charset ์ž˜๋ชป ์ง€์€ ์ด๋ฆ„์ด์ง€๋งŒ ์•ˆ ๊ณ ์นจ
    • HTTP ์ƒํƒœ ์ฝ”๋“œ 416 ํฌ๊ธฐํ•จ
    • HTTP/0.9 ์•„์ง๋„ ์ง€์›ํ•จ(ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค)

REST๊ฐ€ ์›น์˜ ๋…๋ฆฝ์  ์ง„ํ™”์— ๋„์›€์„ ์ฃผ์—ˆ๋‚˜?

  • HTTP ์ง€์†์ ์œผ๋กœ ์˜ํ–ฅ์„ ์คŒ
  • Host ํ—ค๋” ์ถ”๊ฐ€
  • ๊ธธ์ด ์ œํ•œ์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์ด ๋ช…์‹œ(414 URI Too Long๋“ฑ)
  • URL์—์„œ ๋ฆฌ์†Œ์Šค์˜ ์ •์˜๊ฐ€ ์ถ”์ƒ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋จ: โ€œ์‹๋ณ„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌด์–ธ๊ฐ€โ€ ์˜ˆ์ „์—๋Š” โ€œ๋ฌธ์„œ์˜ ์œ„์น˜โ€๋กœ ์ •์˜ํ–ˆ์Œ
  • ๊ธฐํƒ€ HTTP์™€ URI์— ๋งŽ์€ ์˜ํ–ฅ์„ ์คŒ
  • HTTP/1.1 ๋ช…์„ธ ์ตœ์‹ ํŒ์—์„œ REST์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ๋“ค์–ด๊ฐ
  • Roy T.Fielding๊ฐ€ REST ๋ฟ ์•„๋‹ˆ๋ผ HTTP, URI ๋ช…์„ธ์˜ ์ €์ž์ด๊ธฐ ๋•Œ๋ฌธ

๊ทธ๋Ÿผ REST๋Š” ์„ฑ๊ณตํ–ˆ๋Š”๊ฐ€?

  • REST๋Š” ์›น์˜ ๋…๋ฆฝ์  ์ง„ํ™”๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค.
  • ์›น์€ ๋…๋ฆฝ์ ์œผ๋กœ ์ง„ํ™”ํ•˜๊ณ  ์žˆ๋‹ค.

-> ์„ฑ๊ณต

๊ทธ๋ ‡๋‹ค๋ฉด REST API๋Š”?

REST API๋Š” ์ œ์•ฝ์กฐ๊ฑด์„ ๋‹ค ์ง€์ผœ์•ผ ํ•œ๋‹ค๊ณ  Roy T.Fielding๊ฐ€ ๋ช…์‹œํ•จ

ํ˜„์‹ค์ ์œผ๋กœ ์‰ฝ์ง€ ์•Š์€๋ฐ ์›๊ฒฉ API๊ฐ€ ๊ผญ REST API์—ฌ์•ผ ํ•˜๋Š”๊ฑด๊ฐ€?

๊ทธ๊ฑด ์•„๋‹ˆ๋ผ๊ณ  ํ•จ!!

  • ์‹œ์Šคํ…œ ์ „์ฒด๋ฅผ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฑฐ๋‚˜, ์ง„ํ™”์— ๊ด€์‹ฌ์ด ์—†๋‹ค๋ฉด, REST์— ๋Œ€ํ•ด ๋”ฐ์ง€๋Š๋ผ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ๋งˆ๋ผ

๊ทธ๋Ÿผ ์ด์ œ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?

  1. REST API๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  REST API๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  2. REST API ๊ตฌํ˜„์„ ํฌ๊ธฐํ•˜๊ณ  HTTP API๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 3. REST API๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ REST API๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.(ํ˜„์žฌ ์ƒํƒœ)

1๋ฒˆ ๊ฒฝ์šฐ๋ฅผ ๋„์ „ํ•ด๋ณด์ž

์ผ๋‹จ ์™œ API๋Š” REST๊ฐ€ ์ž˜ ์•ˆ๋˜๋‚˜ ์ผ๋ฐ˜์ ์ธ ์›น๊ณผ ๋น„๊ต ํ•ด๋ณธ๋‹ค.

โ€œ๋ถˆ์™„์ „โ€ ํ•˜๋‹จ ์˜๋ฏธ๋Š” ๋ฌธ๋ฒ• ํ•ด์„์€ ๊ฐ€๋Šฅํ•˜๋‚˜, ์˜๋ฏธ๋ฅผ ํ•ด์„ํ•˜๋ ค๋ฉด ๋ณ„๋„๋กœ ๋ฌธ์„œ(API ๋ฌธ์„œ ๋“ฑ)๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์˜๋ฏธ

Self-descriptive

  1. ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Content-Type์„ ๋ณด๊ณ  media type์ด text/html์ž„์„ ํ™•์ธ
  2. HTTP ๋ช…์„ธ์— media type์€ IANA์— ๋“ฑ๋ก๋˜์–ด์žˆ๋‹ค๊ณ  ํ•˜๋ฏ€๋กœ, IANA์—์„œ text/html์˜ ์„ค๋ช…์„ ์ฐพ๋Š”๋‹ค.
  3. IANA์— ๋”ฐ๋ฅด๋ฉด text/html์˜ ๋ช…์„ธ๋Š” http://www.w3.org/TR/html์ด๋ฏ€๋กœ ๋งํฌ๋ฅผ ์ฐพ์•„๊ฐ€ ๋ช…์„ธ๋ฅผ ํ•ด์„ํ•œ๋‹ค.
  4. ๋ช…์„ธ์— ๋ชจ๋“  ํƒœ๊ทธ์˜ ํ•ด์„๋ฐฉ๋ฒ•์ด ๋‚˜์™€์žˆ์œผ๋ฏ€๋กœ ํ•ด์„ ๊ฐ€๋Šฅ

HATEOAS

a ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด ํ‘œํ˜„๋œ ๋งํฌ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ์ƒํƒœ๋กœ ์ „์ด๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งŒ์กฑ

Self-descriptive

  1. ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Content-Type์„ ๋ณด๊ณ  media type์ด application/json์ž„์„ ํ™•์ธ
  2. HTTP ๋ช…์„ธ์— media type์€ IANA์— ๋“ฑ๋ก๋˜์–ด์žˆ๋‹ค๊ณ  ํ•˜๋ฏ€๋กœ, IANA์—์„œ application/json์˜ ์„ค๋ช…์„ ์ฐพ๋Š”๋‹ค.
  3. IANA์— ๋”ฐ๋ฅด๋ฉด application/json์˜ ๋ช…์„ธ๋Š” draft-ietf-jsonbis-rfc7159bis-04์ด๋ฏ€๋กœ ๋งํฌ๋ฅผ ์ฐพ์•„๊ฐ€ ๋ช…์„ธ๋ฅผ ํ•ด์„ํ•œ๋‹ค.
  4. ๋ช…์„ธ์— json ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช…์‹œ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ํŒŒ์‹ฑ์€ ์„ฑ๊ณตํ•œ๋‹ค. **๊ทธ๋Ÿฌ๋‚˜ โ€œidโ€๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๊ณ , โ€œtitleโ€์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์•Œ ๋ฐฉ๋ฒ•์€ ์—†๋‹ค. **

HATEOAS

๋งํฌ๊ฐ€ ์—†์–ด ๋‹ค์Œ ์ƒํƒœ๋กœ ์ „์ดํ•  ์ˆ˜ ์—†๋‹ค.

HTML ์„ฑ๊ณต, json ์‹คํŒจ

๊ทธ๋Ÿฐ๋ฐ Self-descriptive์™€ HATEOAS๊ฐ€ ๋…๋ฆฝ์  ์ง„ํ™”์— ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”๊ฐ€?

  • Self-descriptive(ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜)
    • ์„œ๋ฒ„๋‚˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์˜ค๊ณ ๊ฐ€๋Š” ๋ฉ”์‹œ์ง€๋Š” ์–ธ์ œ๋‚˜ ๋ฉ”์‹œ์ง€๋งŒ์œผ๋กœ ํ•ด์„ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • HATEOAS
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ์ „์ด์˜ late binding : ์–ด๋””์„œ ์–ด๋””๋กœ ์ „์ด๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€ ๋ฏธ๋ฆฌ ๊ฒฐ์ •๋˜์ง€ ์•Š๋Š”๋‹ค. ์–ด๋–ค ์ƒํƒœ๋กœ ์ „์ด๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ๋‚˜์„œ์•ผ ๊ทธ ๋‹ค์Œ ์ „์ด๋  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ์ฆ‰, ๋งํฌ๋ฅผ ์„œ๋ฒ„๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ๋งํฌ๋ฅผ ๋ฐ”๊พธ์–ด๋„ ํด๋ผ์ด์–ธํŠธ์˜ ๋™์ž‘์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ •๋ฆฌ

  • ์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ โ€œREST APIโ€๋Š” ์‚ฌ์‹ค REST๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๊ณ  ์žˆ๋‹ค.
  • REST์˜ ์ œ์•ฝ์กฐ๊ฑด ์ค‘์—์„œ Self-descriptive์™€ HATEOAS๋ฅผ ์ž˜ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•œ๋‹ค.
  • REST๋Š” ๊ธด ์‹œ๊ฐ„์— ๊ฑธ์ณ ์ง„ํ™”ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.
  • REST๋ฅผ ๋”ฐ๋ฅผ ๊ฒƒ์ธ์ง€๋Š” API๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์ด๋“ค์ด ์Šค์Šค๋กœ ํŒ๋‹จํ•˜์—ฌ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋”ฐ๋ฅผ ๊ฒƒ์ด๋ผ๋ฉด, Self-descriptive์™€ HATEOAS๋ฅผ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•œ๋‹ค.
    • Self-descriptive๋Š” custom media type์ด๋‚˜ profile link relation ๋“ฑ์œผ๋กœ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
    • HATEOAS๋Š” HTTP ํ—ค๋”๋‚˜ ๋ณธ๋ฌธ์— ๋งํฌ๋ฅผ ๋‹ด์•„ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฌผ๋ก  ๋‹จ์ ๋“ค์ด ์กด์žฌํ•˜์ง€๋งŒโ€ฆ
  • ๋”ฐ๋ฅด์ง€ ์•Š๊ฒ ๋‹ค๋ฉด, ๋ญ๋ผ๊ณ  ๋ถ€๋ฅผ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.
    • HTTP API๋ผ๊ณ  ๋ถ€๋ฅด๊ฑฐ๋‚˜ ๊ทธ๋ƒฅ REST๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š์Œ์—๋„ REST API๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค.



References

Leave a comment