REST (1)

· โ˜• 5 min read · ๐Ÿ‘€... views

์š”์ฆ˜ API ๋ฅผ ๋ณด๋ฉด ํ”ํžˆ REST ํ•˜๊ฒŒ API ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๊ณ ๋“ค ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๋ณด๋ฉด ๋Œ€๋ถ€๋ถ„ url ์„ ๋ช…์‚ฌ๋กœ ์“ฐ๊ณ , HTTP Method ๋ฅผ ์ž˜ ๋ฐฐ๋ถ„ํ•œ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋ ‡๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๊ณณ๋„ ๋งŽ๊ณ , ์ € ๋˜ํ•œ ๋ญ ๋Œ€์ˆ˜์ธ๊ฐ€ ์‹ถ์€ ๋Š๋‚Œ์œผ๋กœ ์ €์ •๋„๋งŒ ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ์ฑ…์„ ๋ณด๋‹ค๊ฐ€ REST ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๋‚˜์™€ ์ด๋ฅผ ํ† ๋Œ€๋กœ ์•Œ๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๊ฒฌ๊ณ ํ•˜๊ฒŒ, ๋ชฐ๋ž๋˜ ๋ถ€๋ถ„์€ ํ”Œ๋Ÿฌ์Šค(+) ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

1. REST ๋ž€?

REST (REpresentational State Transfer - ํ‘œํ˜„์ ์ธ ์ƒํƒœ ์ „์†ก) ๋ž€ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค(๋ฐ์ดํ„ฐ) ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” URI ์–‘์‹์ž…๋‹ˆ๋‹ค.

REST ๋ผ๋Š” ๋‹จ์–ด ์ž์ฒด๋Š” 2000๋…„ ๋กœ์ด ํ•„๋”ฉ(Roy Fielding) ์˜ ๋…ผ๋ฌธ์—์„œ ์ฒ˜์Œ ๋‚˜์˜จ ๋‹จ์–ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ด ํ•„๋”ฉ์€ REST๋ฅผ ์ƒํ˜ธ ์ง€์—ฐ์„ ์ค„์ด๊ณ  ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜์—ฌ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ์บก์Šํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ƒํ˜ธ์ž‘์šฉ, ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ผ๋ฐ˜์„ฑ, ์ปดํฌ๋„ŒํŠธ ๋…๋ฆฝ ๋ฐฐํฌ, ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ์˜ ํ™•์žฅ์„ฑ์„ ๊ฐ•์กฐํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์‰ฌ์ด ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ, ๋ช…์‚ฌ + HTTP ๋ฉ”์†Œ๋“œ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋ น ๊ณ„์ • ์ •๋ณด๋“ค์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด, /accounts ์— HTTP GET ๋ฉ”์†Œ๋“œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด์ฃ . ๊ฒฐ๊ตญ URI ๋Š” ์›๊ฒฉ ์„œ๋ฒ„์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์™€ ์ด ๋ฆฌ์†Œ์Šค์— ์–ด๋–ค ์ผ์„ ์š”์ฒญํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ด๋Ÿฌ๋ฉด HTTP ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ(CRUD) ์ž‘์—…๊ณผ ์—ฐ๊ด€์ง€์–ด ์ƒ๊ฐํ•˜๊ธฐ ์‰ฌ์šด๋ฐ (GET - ์กฐํšŒ, POST - ์ƒ์„ฑ) ์ด๋Š” REST ์ทจ์ง€์™€ ๋งž์ง€ ์•Š์„ ๋ฟ๋”๋Ÿฌ, ๋ฆฌ์†Œ์Šค ํ‘œํ˜„ํ˜•์„ ์ดํ•ดํ•˜๋Š”๋ฐ์—๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์ด๋Ÿฐ ๋ฐœ์ƒ์€ ๋ฆฌ์ฒ˜๋“œ์Šจ ์„ฑ์ˆ™๋„ ๋ชจ๋ธ์˜ ๋ ˆ๋ฒจ 0 (์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ - Remote Procedure Call, RPC) ๊ณผ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

REST ํ˜• API ๋Š” ๋™์ž‘์ด ์•„๋‹Œ ๋ช…์‚ฌ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋ฉฐ, ๋ช…์‚ฌ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค๋Š” URI๋กœ ์‹๋ณ„ํ•˜๋ฉฐ, ๋ฆฌ์†Œ์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋””๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋”๋ผ๋„ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ น ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ์šฐ GET /users/:id ๋ฅผ ํ†ตํ•ด ํŠน์ • ์‚ฌ์šฉ์ž์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์–ป๊ฑฐ๋‚˜, ์ด ์‚ฌ์šฉ์ž๋ฅผ ํŒ”๋กœ์šฐ ํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ๋ชฉ๋ก์„ GET /users/:id/followers/:id ํ•˜์—ฌ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ํ‘œํ˜„ํ˜•์€ ๋ฆฌ์†Œ์Šค ๊ทธ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ˆ˜๋‹จ์ด๋ฏ€๋กœ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋„ ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค ํ‘œํ˜„ํ˜•์„ ๋Š์ž„์—†์ด ์„œ๋กœ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ๊ทธ ๊ณผ์ •์—์„œ ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์–ด ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค ํ‘œํ˜„ํ˜•์€ ์ฃผ๋กœ JSON, XML ์˜ ํฌ๋ฉง์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์–ด๋–ค ํ˜•์‹์ด๋‚˜ ์ž„์˜ ํ‘œํ˜„๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

2. REST ์˜ 6๋Œ€ ์ œ์•ฝ

๋กœ์ด ํ•„๋”ฉ์€ ์•„ํ‚คํ…์ณ์ ์ธ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด REST ์—์„œ 6๊ฐ€์ง€ ์ œ์•ฝ ์กฐ๊ฑด์„ ๋งํ•˜๋Š”๋ฐ์š”. ์ด๋Ÿฌํ•œ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ž˜ ์ง€ํ‚จ๋‹ค๋ฉด RESTful ํ•œ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„

  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ์„ ์ „์†กํ•˜๊ณ , ์„œ๋ฒ„๋Š” ์‘๋‹ต์„ ํ•ฉ๋‹ˆ๋‹ค.

2. ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค

  • ๋ฆฌ์†Œ์Šค๋ฅผ ์–ด๋–ค ๋ช…์‚ฌ๋กœ ๊ด€๋ฆฌํ•˜๋Š”์ง€ ๋“ฑ, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ผ๊ด€ํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • HTTP ํ”„๋กœํ† ์ฝœ์„ ์จ์„œ ๊ตฌํ˜„ํ•˜๋ผ๋Š” ๊ทœ์ •์€ ์—†์ง€๋งŒ, ์‚ฌ์‹ค์ƒ HTTP ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๋ฉฐ, HTTP ๋ช…์„ธ์— ๋”ฐ๋ฅด๋ฉด, URI = ๋ฆฌ์†Œ์Šค ๋ช…์‚ฌ + HTTP ๋™์‚ฌ ์ž…๋‹ˆ๋‹ค.

3. ๋ฌด์ƒํƒœ

  • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์š”์ฒญ์—๋Š” ๊ทธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์„œ๋ฒ„์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†์Œ) ๋งŒ์•ฝ, ์ƒํƒœ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์žฅ์„ฑ, ๊ฐ€์‹œ์„ฑ, ์‹ ๋ขฐ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์š”์ฒญ์ด ์ปค์ง€๋Š” ๋‹จ์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ์บ์‹œ ๊ธฐ๋Šฅ

  • ์„œ๋ฒ„์˜ ์‘๋‹ต์€ ์บ์‹œ์— ๋ณด๊ด€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์š”์ฒญ ๋ณ„๋กœ ์บ์‹œ ๊ฐ€๋Šฅ/๋ถˆ๊ฐ€๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•˜๋ฉฐ, ์บ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋™์ผ ์š”์ฒญ์ด ์™”์„ ๊ฒฝ์šฐ ์‘๋‹ต๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

5. ๊ณ„์ธตํ™” ์‹œ์Šคํ…œ

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์ง์ ‘ ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์‚ฌ์ด์— ๊ฐ–๊ฐ€์ง€ ์†Œํ”„ํŠธ์›จ์–ด/ํ•˜๋“œ์›จ์–ด๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ณ„์ธต์„ ํ†ตํ•ด ์ ‘๊ทผ์„ ๋ชปํ•˜๊ฒŒ ํ•ด์•ผ ํ™•์žฅ์„ฑ์ด ์ข‹์•„์ง‘๋‹ˆ๋‹ค.

6. ์ฝ”๋“œ ์˜จ ๋””๋งจ๋“œ (Optional)

  • ๊ณ„์ธต์  ๊ตฌ์กฐ๋กœ ์ž์‹ ๊ณผ ์ธ์ ‘ํ•œ ๋ ˆ์ด์–ดํ•˜๊ณ ๋งŒ ์†Œํ†ตํ•ด์•ผ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ์‚ญ์ œ/๋Œ€์ฒด ํ•˜๊ธฐ๊ฐ€ ์ˆ˜์›”ํ•ด์ ธ ํ™•์žฅ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ •์ ์ธ ๋ฐ์ดํ„ฐ(json, xml)๋ฅผ ๋ฐ›์•„์„œ ๊ฐ€๊ณตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ๋„˜๊ฒจ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„์˜ 6๊ฐ€์ง€ ์ค‘ 6. ์ฝ”๋“œ ์˜จ ๋””๋ฉ˜๋“œ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

3. REST API ์˜ ๋ฆฌ์ฒ˜๋“œ์Šจ ์„ฑ์ˆ™๋„

์œ„์—์„œ REST ๋ฅผ ์„ค๋ช…ํ•˜๋ฉด์„œ ๋ฆฌ์ฒ˜๋“œ์Šจ ์„ฑ์ˆ™๋„์— ๋Œ€ํ•ด์„œ ์ž ๊น ์–ธ๊ธ‰ ํ–ˆ์—ˆ๋Š”๋ฐ์š”.

๋ฆฌ์ฒ˜๋“œ์Šจ ์„ฑ์ˆ™๋„๋Š” ๋ ˆ์˜ค๋‚˜๋ฅด๋“œ ๋ฆฌ์ฒ˜๋“œ์Šจ(Leonard Richardson) ์ด ๊ฐœ๋ฐœํ•œ ๊ฒƒ์œผ๋กœ REST ์ œ์•ฝ์— ๋ถ€ํ•ฉํ•˜๋Š” ์ •๋„๋ฅผ API ๋“ฑ๊ธ‰์œผ๋กœ ๋ฉ”๊ธด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

0๋ ˆ๋ฒจ๋ถ€ํ„ฐ 3๋ ˆ๋ฒจ๊นŒ์ง€ ์žˆ์œผ๋ฉฐ, ๋ ˆ๋ฒจ์ด ๋†’์„ ์ˆ˜๋ก REST ๋ฅผ ์ž˜ ์ค€์ˆ˜ํ–ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๋ ˆ๋ฒจ 0 : POX (Plain Old XML) ๋ฒ”๋ฒ…

  • HTTP ๋ฅผ ์›๊ฒฉ์ง€์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์ „์†ก ํ”„๋กœํ† ์ฝœ๋กœ ์‚ฌ์šฉํ•  ๋ฟ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • HTTP ๋ฉ”์†Œ๋“œ ํ•œ ๊ฐœ๋กœ /getUser ๊ฐ™์€ ๋‹จ์ผ URI ์— ์š”์ฒญ/์‘๋‹ต์„ ์‹ค์–ด ๋‚˜๋ฆ…๋‹ˆ๋‹ค.
  • REST ๋ณด๋‹ค๋Š” RPC ๋ชจ๋ธ์˜ ์ „ํ˜•์ ์ธ ์˜ˆ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋ ˆ๋ฒจ 1 : ๋ฆฌ์†Œ์Šค

  • ์„œ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถ„๊ฐ„ํ•  ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ธฐ ์‹œ์ž‘ํ•œ ๋‹จ๊ณ„
  • POST user/1234/posts ๊ฐ™์ด ๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์‹ ์„ ํ•˜์ง€๋งŒ, HTTP ๋ฉ”์†Œ๋“œ๋Š” ํ•˜๋‚˜๋งŒ ์”๋‹ˆ๋‹ค.

3. ๋ ˆ๋ฒจ 2 : HTTP ๋™์‚ฌ

  • HTTP ๋™์‚ฌ๋ฅผ ๋ฆฌ์†Œ์Šค ๋ช…์‚ฌ์™€ ๊ณ ๋ฃจ ๊ฒฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ๊ณ„
  • HTTP ์‚ฌ์šฉ๋ฒ•์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊น์— HTTP ๋ฉ”์†Œ๋“œ (GET, POST, PUT, DELETE ๋“ฑ) ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

4. ๋ ˆ๋ฒจ 3 : ํ•˜์ดํผ๋ฏธ๋””์–ด ์ œ์–ด

  • HATEOAS(Hypertext As The Engine Of Application State) ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์Œ์— ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค์ฃผ๊ณ , ๊ทธ ์ผ์„ ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ URI ๋ฅผ ๊ฑด๋„ค์ฃผ๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

4. ์ •๋ฆฌ

REST ์— ๋Œ€ํ•ด์„œ ๋ง‰์—ฐํžˆ ์•Œ๊ณ  ์žˆ๋˜ ๊ฑธ ์ข€ ํ’€์–ด๋ดค์Šต๋‹ˆ๋‹ค.

์ƒ๊ฐ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ, ๋‚ด์šฉ๋„ ๋งŽ๊ณ ํ•ด์„œ ์ดํ•ดํ•˜๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋„ค์š”.

REST ๋ฅผ ์‚ฌ์šฉํ•จ์— ์žˆ์–ด ์ œ์•ฝ์ด ์žˆ๋Š”์ง€๋„ ๋ชฐ๋ž๊ณ , ์ด๋ฒˆ์— ์ •๋ฆฌํ•˜๋ฉด์„œ ํ‰์†Œ REST ๋ผ๊ณ  ๋งŒ๋“  ๊ฒƒ๋“ค์ด ์–ด๋–ค ์ œ์•ฝ์„ ์ง€ํ‚ค๊ณ  ์žˆ๋Š”๊ฐ€ ์ƒ๊ฐํ•ด๋ณด๋Š” ์‹œ๊ฐ„์ด ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (๋Œ€๋žต 6๊ฐœ ์ค‘์— 3,4๊ฐœ๋Š” ์•Œ๊ฒŒ๋ชจ๋ฅด๊ฒŒ ์ง€ํ‚ค๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”.)

Share on

snack
WRITTEN BY
snack
Web Programmer


What's on this Page