1 ๋ถ„ ์†Œ์š”

[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐Ÿฏ ์‹ฌ๋ฐ”์˜ RESTful ๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•จ.

REST๋ž€

๋ถ„์‚ฐ ํ•˜์ดํผ๋ฏธ๋””์–ด ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ณ - MDN

๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ์ผ๋ จ์˜ ์›์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ

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

๋กœ์ดํ•„๋”ฉ

REST์— ๋Œ€ํ•œ ์›์น™์€ ๋กœ์ดํ•„๋”ฉ์ด๋ผ๋Š” ๋Œ€ํ•™์›์ƒ์˜ ๋ฐ•์‚ฌํ•™์œ„ ๋…ผ๋ฌธ์œผ๋กœ ์ฒ˜์Œ ๋“ฑ์žฅํ–ˆ๋‹ค. ๋กœ์ดํ•„๋”ฉ์€ HTTP์˜ ์ฃผ์š” ์ €์ž ์ค‘ ํ•œ ์‚ฌ๋žŒ์œผ๋กœ HTTP๊ฐ€ ์ œ๋Œ€๋กœ ์‚ฌ์šฉ๋˜์ง€ ๋ชปํ•˜๋Š” ์ ์„ ์•ˆํƒ€๊นŒ์›Œํ•˜๋ฉฐ HTTP์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ณ๋กœ์จ REST๋ฅผ ๋ฐœํ‘œํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ REST์›์น™์€ HTTP๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์›์น™์ด๋ผ๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ REST API์˜ ๊ตฌ์กฐ์™€ ํŠน์ง•

์ด REST์— ๋Œ€ํ•œ ์›์น™์„ ์ค€์ˆ˜ํ–ˆ์„ ๋•Œ ์šฐ๋ฆฌ๋Š” ๊ทธ ์‹œ์Šคํ…œ์ด RESTfulํ•˜๋‹ค ๋ผ๊ณ  ํ•œ๋‹ค.

REST๋Š” ์•ž์„œ ์‚ดํŽด ๋ณด์•˜๋“ฏ์ด, ํŠน์ • ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ผ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์ด REST ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์„ ์ฐธ๊ณ ํ•ด์„œ ์„ค๊ณ„ํ•œ API๋ฅผ ๋งŽ์ด ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ API๋“ค๋„ ๋ฒ”์šฉ์ ์œผ๋กœ REST API,

RESTfulํ•˜๊ฒŒ ์„ค๊ณ„๋œ REST-style API๋ผ๊ณ ๋„ ํ•œ๋‹ค.

Untitled

REST๋Š” Representational State Transfer์ด๋ผ๋Š” ๋œป์œผ๋กœ ์ง์—ญํ•˜์ž๋ฉด, ํ‘œํ˜„์ ์ธ ์ƒํƒœ ์ „๋‹ฌ์ด๋‹ค. ์—ฌ๊ธฐ์— ๋ง๋ถ™์—ฌ์„œ ์˜์—ญํ•ด ๋ณด์ž๋ฉด ์ž์›(๋ฆฌ์†Œ์Šค)์˜ ํ‘œํ˜„์— ์˜ํ•œ ์ƒํƒœ(์ •๋ณด) ์ „๋‹ฌ์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง„๋‹ค.

์—ฌ๊ธฐ์„œ ์ž์›์˜ ํ‘œํ˜„์€ REST์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋‹ค.

์ž์›์˜ ํ‘œํ˜„

Untitled

URI ๋งŒ ๋ณด๊ณ ์„œ๋„ ์–ด๋А์ •๋„ ์ •๋ณด์— ๋Œ€ํ•ด ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋ฆฌ์†Œ์Šค๋ฅผ URI์— ํ‘œํ˜„ํ•ด์„œ ์ฃผ๊ณ ๋ฐ›์„ ์ •๋ณด์— ๋Œ€ํ•ด ์–ด๋А์ •๋„ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค.

REST API ์—์„œ URI๋Š” ์–ด๋–ค ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

Untitled

ํ…Œ์ด๋ธ” ์ „์ฒด์— ํ•ด๋‹นํ•˜๋Š”๋ถ€๋ถ„์€ Collection ,ํ–‰ ํ•˜๋‚˜, ํ˜น์€ ๊ฐ์ฒด๋ฅผ Document๋ผ๊ณ  ํ•œ๋‹ค. ์ฝœ๋ ‰์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹คํ๋จผํŠธ๋Š” ์ด ์ง‘ํ•ฉ(์ฝœ๋ ‰์…˜)์ค‘ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’,์œ„์—์„œ๋Š” title์ด์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” Pk id๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

์ฆ‰ URI๋Š” ์ปฌ๋ ‰์…˜๊ณผ ๋‹คํ๋จผํŠธ์˜ ์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

Untitled

URI์—๋Š” ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ๋™์‚ฌ๋Š” ์ œ๋„ค๋ฆญํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋™์‚ฌ๋ฅผ ์“ฐ๊ณ ์ž ํ•จ์€ ๊ณง ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„์— ๋Œ€ํ•ด ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉ์ ์ผ ๊ฒƒ์ด๋‹ค.

Untitled

REST API์—์„œ๋Š” ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„์— ๋Œ€ํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹ค๋Š” HTTP ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ํ‘œํ˜„ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์˜ค์ง URI์™€ ๋ฉ”์†Œ๋“œ๋“ค์„ ํ™œ์šฉํ•ด์„œ ๋ชจ๋“  ๊ฒƒ์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. ex) login, logout, ๊ฒ€์ƒ‰ ๋“ฑ๋“ฑ

ํƒœ๊ทธ: ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ