[ Node.js ์ž…๋ฌธ์ฃผ์ฐจ2 (2-0)] REST API, RESTful

2023. 8. 27. 23:10ใ†3. Node.js

RESTful

REST(REpresentational State Transfer)๋Š” Web, ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๊ฐ„์— ํ‘œ์ค€์„ ์ œ๊ณตํ•˜์—ฌ ์‹œ์Šคํ…œ์ด ์„œ๋กœ ๋” ์‰ฝ๊ฒŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ด๋‹ค. RESTful ์‹œ์Šคํ…œ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” REST ํ˜ธํ™˜ ์‹œ์Šคํ…œ์€ ์ƒํƒœ ๋น„์ €์žฅ(stateless)์ด๋ฉฐ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ํŠน์ง•์ด๋‹ค.

 

์ด๋ฏธ์ง€ : https://www.codecademy.com/article/what-is-rest

์ฐธ๊ณ  URL : https://www.codecademy.com/article/what-is-rest

 

What is REST? | Codecademy

Learn about the REST (Representational State Transfer) paradigm and how rest architecture streamlines communication between web components.

www.codecademy.com

 


โ–ช๏ธŽ RESTful API๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ๊นŒ?

RESTful API์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์€ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ง•๊ณผ ๋™์ผํ•˜๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์ ‘์†. API ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ API ๋ฌธ์„œ์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ REST API๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•œ๋‹ค. ๋‹ค์Œ์€ ๋ชจ๋“  REST API ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ผ๋ฐ˜ ๋‹จ๊ณ„์ด๋‹ค.

 

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€

2. ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ธ์ฆํ•˜๊ณ  ํ•ด๋‹น ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ํด๋ผ์ด์–ธํŠธ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

3. ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ  ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

4. ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต์—๋Š” ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์•Œ๋ ค์ฃผ๋Š” ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์‘๋‹ต์—๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋ชจ๋“  ์ •๋ณด๋„ ํฌํ•จ๋œ๋‹ค.

(*REST API ์š”์ฒญ ๋ฐ ์‘๋‹ต ์„ธ๋ถ€ ์ •๋ณด๋Š” API ๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ์•ฝ๊ฐ„์”ฉ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค)

 

โ–ช๏ธŽ RESTful API ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์—๋Š” ๋ฌด์—‡์ด ํฌํ•จ๋˜์–ด ์žˆ์„๊นŒ?
RESTful API์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์š”์ฒญ์ด ํ•„์š”ํ•˜๋‹ค.

๊ณ ์œ  ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž
์„œ๋ฒ„๋Š” ๊ณ ์œ ํ•œ ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž๋กœ ๊ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•œ๋‹ค. REST ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ URL(Uniform Resource Locator)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ์‹๋ณ„์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. URL์€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •. URL์€ ์›นํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์— ์ž…๋ ฅํ•˜๋Š” ์›น ์‚ฌ์ดํŠธ ์ฃผ์†Œ์™€ ์œ ์‚ฌํ•˜๋‹ค. URL์€ ์š”์ฒญ ์—”๋“œํฌ์ธํŠธ๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์‚ฌํ•ญ์„ ์„œ๋ฒ„์— ๋ช…ํ™•ํ•˜๊ฒŒ ์ง€์ •ํ•œ๋‹ค.

๋ฉ”์„œ๋“œ
๊ฐœ๋ฐœ์ž๋Š” ์ข…์ข… Hypertext Transfer Protocol(HTTP)์„ ์‚ฌ์šฉํ•˜์—ฌ RESTful API๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. HTTP ๋ฉ”์„œ๋“œ๋Š” ๋ฆฌ์†Œ์Šค์— ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์„ ์„œ๋ฒ„์— ์•Œ๋ ค์ค€๋‹ค. ๋‹ค์Œ์€ 4๊ฐ€์ง€์˜ ์ผ๋ฐ˜์ ์ธ HTTP ๋ฉ”์„œ๋“œ.

     1) GET
ํด๋ผ์ด์–ธํŠธ๋Š” GET์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ์ง€์ •๋œ URL์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•œ๋‹ค. GET ์š”์ฒญ์„ ์บ์‹ฑํ•˜๊ณ  RESTful API ์š”์ฒญ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ์–ด ์ „์†กํ•˜์—ฌ ์ „์†ก ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋„๋ก ์„œ๋ฒ„์— ์ง€์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
    2) POST
ํด๋ผ์ด์–ธํŠธ๋Š” POST๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ํ‘œํ˜„์ด ํฌํ•จ๋œ๋‹ค. ๋™์ผํ•œ POST ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ „์†กํ•˜๋ฉด ๋™์ผํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ƒ์„ฑํ•˜๋Š” ๋ถ€์ž‘์šฉ์ด ์žˆ๋‹ค.
   3) PUT
ํด๋ผ์ด์–ธํŠธ๋Š” PUT์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ๊ธฐ์กด ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. POST์™€ ๋‹ฌ๋ฆฌ, RESTful ์›น ์„œ๋น„์Šค์—์„œ ๋™์ผํ•œ PUT ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ „์†กํ•ด๋„ ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜๋‹ค.
   4) DELETE
ํด๋ผ์ด์–ธํŠธ๋Š” DELETE ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. DELETE ์š”์ฒญ์€ ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์ ˆํ•œ ์ธ์ฆ์ด ์—†์œผ๋ฉด ์š”์ฒญ์€ ์‹คํŒจํ•œ๋‹ค.


HTTP ํ—ค๋”
์š”์ฒญ ํ—ค๋”๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ๊ตํ™˜๋˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์š”์ฒญ ํ—ค๋”๋Š” ์š”์ฒญ ๋ฐ ์‘๋‹ต์˜ ํ˜•์‹์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์š”์ฒญ ์ƒํƒœ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋ฐ์ดํ„ฐ
REST API ์š”์ฒญ์—๋Š” POST, PUT ๋ฐ ๊ธฐํƒ€ HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ
RESTful API ์š”์ฒญ์—๋Š” ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ œ๊ณตํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ ์œ ํ˜•.

URL ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ.
๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋Š” ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ.
ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ธ์ฆํ•˜๋Š” ์ฟ ํ‚ค ํŒŒ๋ผ๋ฏธํ„ฐ.

 

โ–ช๏ธŽ ๊ทธ๋ž˜์„œ, RESTful API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์žˆ์„๊นŒ?

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

์œ ์—ฐ์„ฑ
RESTful ์›น ์„œ๋น„์Šค๋Š” ์™„์ „ํ•œ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ถ„๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค. ๊ฐ ๋ถ€๋ถ„์ด ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐœ์ „ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ์„œ๋ฒ„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ๋ถ„๋ฆฌํ•œ๋‹ค. ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”Œ๋žซํผ ๋˜๋Š” ๊ธฐ์ˆ  ๋ณ€๊ฒฝ์€ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•จ์ˆ˜๋ฅผ ๊ณ„์ธตํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์œ ์—ฐ์„ฑ์„ ๋”์šฑ ํ–ฅ์ƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐœ๋ฐœ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ธต์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๋…๋ฆฝ์„ฑ
REST API๋Š” ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ๊ณผ ๋…๋ฆฝ์ ์ด๋‹ค. API ์„ค๊ณ„์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋‘ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ํ†ต์‹ ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์–‘์ชฝ์˜ ๊ธฐ๋ณธ ๊ธฐ์ˆ ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๊ด€๋ จ URL : RESTful API๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? - RESTful API ์„ค๋ช… - AWS (amazon.com)

 

RESTful API๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? - RESTful API ์„ค๋ช… - AWS

Amazon API Gateway๋Š” ์–ด๋–ค ๊ทœ๋ชจ์—์„œ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ์†์‰ฝ๊ฒŒ ์ƒ์„ฑ, ๊ฒŒ์‹œ, ์œ ์ง€ ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ณด์•ˆ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์™„์ „๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. API Gateway๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹  ์• 

aws.amazon.com

 

 


์ด๋ก ์ ์ธ ๋ถ€๋ถ„์€ ์œ„์—์„œ ๋ชจ๋‘ ๋ณด์•˜์œผ๋‚˜, ๋‚ด์šฉ์ด ์ž˜ ์ •๋ฆฌ๋˜์ง€์•Š์•˜๋‹ค.

์•„๋ž˜  youtube๋ฅผ ๋ณด๋‹ˆ RESTAPI(restful)์— ๋Œ€ํ•œ ์ •๋ฆฝ์ด ์ž˜ ๋˜์–ด ํ•จ๊ป˜ ์ฒจ๋ถ€ํ•˜๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๊ธฐ์žฌํ•ด ๋ณด์•˜๋‹ค.

 

YOUTUBE ์–„ํŒํ•œ ์ฝ”๋”ฉ์‚ฌ์ „ [ REST API๊ฐ€ ๋ญ”๊ฐ€์š”? ]

 

 

 

"HTTP์ƒ ๋‘ ๋…ธ๋“œ๊ฐ€ ์†Œํ†ตํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” REST API"

"๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์— ๋„๋ฆฌ ์“ฐ์ด๋Š” ์ผ์ข…์˜ “ํ˜•์‹”  

 

 

 

 

โ–ช๏ธŽ ํ”„๋ก ํŠธ์—”๋“œ ์›น์—์„œ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ฑฐ๋‚˜

๋ฐฐ๋‹ฌ์•ฑ์—์„œ ์„œ๋ฒ„์— ์ฃผ๋ฌธ์„ ๋„ฃ๊ฑฐ๋‚˜ ์ด๋Ÿฐ ์„œ๋น„์Šค๋“ค์ด ์˜ค๋Š˜๋‚  ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด REST๋ผ๋Š” ํ˜•์‹์˜ API์ด๋‹ค.

( * ์ด๊ฒƒ์€ ๊ณผ๊ฑฐ์˜ soap์ด๋ž€ ๋ณต์žกํ•œ ํ˜•์‹์„ ๋Œ€์ฒด )

 

โ–ช๏ธŽ  Rest์˜ ํŠน์ง•์€? ๊ฐ ์š”์ฒญ์ด ์–ด๋–ค ๋™์ž‘์ด๋‚˜ ์ •๋ณด๋ฅผ ์œ„ํ•œ ๊ฒƒ์ธ์ง€ ๊ทธ ๋ชจ์Šต์˜ ์š”์ฒญ ์ž์ฒด๋กœ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์„œ๋น„์Šค์—์„œ ๊ธฐ๋Šฅ๋งŒ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๋™์ž‘๋งŒ ํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉด ๊ทธ๋งŒ์ด๋‹ค. 

์„œ๋น„์Šค๋Š” ๊ฐœ๋ฐœ์ž ํ˜ผ์ž ๋งŒ๋“œ๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค!ํ˜ผ์ž๋งŒ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค ? ์ธ๊ณ„๋ฐ›๊ณ , ์ด api๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ค๋ฅธ ์ œํ’ˆ์„ ๋งŒ๋“œ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์€ ์ผํ•˜๊ธฐ ํž˜๋“ค์–ด์ง„๋‹ค.

 

๋”ฐ๋ผ์„œ Restful ํ•˜๊ฒŒ ๋งŒ๋“  api๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์ฃผ์†Œ๋งŒ์œผ๋กœ๋„ ๋Œ€๋žต ์ด๊ฒŒ ๋ญ˜ ํ•˜๋Š” ์š”์ฒญ์ธ์ง€ ํŒŒ์•…์ด ๋ฐ”๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

 

์˜ˆ๋ฅผ ๋“ค์–ด, ํ•™์›๋ชฉ๋ก์„ ๋ฐœ์†กํ•ด ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์— 

 

http://(๋„๋ฉ”์ธ)/classes/

์ฃผ์†Œ์— classes ๊ฐ€ ๋ถ™๋Š”๋‹ค๋ฉด, 

๋ฐ์ดํ„ฐ๋Š” ํ•™์›์˜ '๋ฐ˜ ๋ชฉ๋ก'์ด ๋‹ด๊ธด ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. 

 

http://(๋„๋ฉ”์ธ)/classes/2

๊ทธ ๋’ค์— idx, ๊ณ ์œ ๋ฒˆํ˜ธ๊ฐ€ ๋”ฐ๋ผ๋ถ™์œผ๋ฉด ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๊ฐ€ '๋ฐ˜์˜ ์ •๋ณด'๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.   

 

http://(๋„๋ฉ”์ธ)/classes/2/students

๊ทธ ๋’ค์— students๊ฐ€ ๋ถ™๋Š”๋‹ค๋ฉด 'ํ•™์ƒ์˜ ์ •๋ณด'๊ฐ€,

 

http://(๋„๋ฉ”์ธ)/classes/2/students/15

๊ทธ ๋’ค์— ๋˜ idx๊ฐ€ ๋ถ™๋Š”๋‹ค๋ฉด '๊ทธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ํ•™์ƒ์˜ ์ •๋ณด'๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

โ–ช๏ธŽ  ์ด๋ ‡๊ฒŒ ์ž์›์„ ๊ตฌ์กฐ์™€ ํ•จ๊ป˜ ๋‚˜ํƒ€๋‚ด๋Š” ๊ตฌ๋ถ„์ž์˜ ๋ฐฉ์‹์„ URI๋ผ๊ณ  ํ•œ๋‹ค.

( * URI๋Š” Uniform Resource Identifier์˜ ์•ฝ์ž๋กœ URI๋Š” ์ธํ„ฐ๋„ท์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. )

 

โ–ช๏ธŽ  ์ด ๋ฐ์ดํ„ฐ๋“ค์€ '์กฐํšŒ/์‚ญ์ œ/์ˆ˜์ •'์ž‘์—…๋„ ๊ฐ€๋Šฅํ•œ๋ฐ ์ด๋Ÿฐ ์ž‘์—…์„ C.R.U.D๋ผ๊ณ  ํ•œ๋‹ค.

 

Create ์ƒ์„ฑ

Read ์กฐํšŒ

Update ์ˆ˜์ •

Delete ์‚ญ์ œ

 

 

โ–ช๏ธŽ ๋งŒ์•ฝ ํ•™์ƒ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์„œ๋ฒ„์— REST API๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”๋ฐ, http๋ผ๋Š” ๊ทœ์•ฝ์— ๋”ฐ๋ผ ์‹ ํ˜ธ๋ฅผ ์ „์†กํ•œ๋‹ค.  

 

Post / put / patch

( 3๊ฐœ๋Š” 'body'์— ์‹ค์–ด์„œ ๋ณด๋‚ด๋Š”๋ฐ, Get / delete์— ๋น„ํ•ด ๋น„๊ต์  ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ถฐ์„œ ์‹ค์–ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.)

Get / delete 

 

 

 

์•„๋ž˜์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž

URI์— [GET] http://(๋„๋ฉ”์ธ)/classes/2/students ์œผ๋กœ ๋ณด๋‚ด๋Š” ์š”์ฒญ์ด ์žˆ์œผ๋ฉด

ํ•™์ƒ๋“ค์„ ๋ณด๋Š” ์š”์ฒญ์ด๋‹ค๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. (* [Get] ๋ฐ์ดํ„ฐ๋ฅผ read : ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ )

 

 

๋ฐ˜์— ์ƒˆ ํ•™์ƒ์ด ๋“ค์–ด์™€์„œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด [Post] http://(๋„๋ฉ”์ธ)/classes/2/students 

๊ฐ™์ด URI๋ฅผ ์งœ๊ณ  Post ์š”์ฒญ์„ ์ž‘์„ฑ body์— ์ƒˆ ํ•™์ƒ์˜ ์ •๋ณด๋ฅผ ๋„ฃ์–ด ๋ณด๋‚ธ๋‹ค. (* [Post ] create : ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.)

( ํ•™์ƒ์˜ idx๋Š” ์ •๋ณด๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ์ƒ์„ฑ๋จ์œผ๋กœ post์š”์ฒญ์—๋Š” ๋ช…๊ธฐํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ) 

 

 

idx๋ฅผ ๊ฐ€์ง„ ํ•™์ƒ์˜ ์ •๋ณด๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ[PUT]PATCH] http://(๋„๋ฉ”์ธ)/classes/2/students/15

URI์— ๋ณ€๊ฒฝํ•  ํ•™์ƒ์˜ idx๊นŒ์ง€ ๋ช…์‹œํ•œ ๋‹ค์Œ PUT ๋˜๋Š” patch๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€๊ฒฝ ๋˜๋Š” Update ๋œ ์ƒˆ ์ •๋ณด๋“ค์„ body์— ๋„ฃ์–ด์„œ ๋ณด๋‚ธ๋‹ค.

( * PUT, PATCH ์“ฐ๋Š” ๊ณณ๋งˆ๋‹ค ๊ฐ๊ฐ ๋‹ฌ๋ผ ์•„๋ž˜์˜ ํŠน์ง•์„ ๋ณด๊ณ ์‚ฌ์šฉ.) 

( * [PUT]  : ์ •๋ณด๋ฅผ ์ „์ฒด๋‹ค ๋ณ€๊ฒฝํ•  ๋•Œ 

[patch] : ์ •๋ณด ์ค‘ ์ผ๋ถ€๋งŒ ๋ณ€๊ฒฝํ• ๋•Œ )

 

 

ํ•™์ƒ์ด ํ•™์›์„ ๊ทธ๋งŒ๋‘์—ˆ๋‹ค๋ฉด URI์— ํ•™์ƒ์˜ idx ๊นŒ์ง€ ํ‘œ์‹œํ•ด์„œ ๋ณด๋‚ธ๋‹ค.  [DELETE]http://(๋„๋ฉ”์ธ)/classes/2/students/15

(* [DELETE]  : ์ •๋ณด๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค )