Rest.md

restimg

REST

  • Full name

"Representational State Transfer"

  • ์ง์—ญํ•˜๋ฉด '๋Œ€ํ‘œ ์ƒํƒœ ์ „์†ก'

REST์˜ ๊ตฌ์„ฑ

  • ์ž์›(resource) - URI

  • ํ–‰์œ„(Verb) - HTTP METHOD

  • ํ‘œํ˜„(Representations)

REST์˜ ํŠน์ง•

1. Uniform

  • Uniform Interface

    • URI๋กœ ์ง€์ •ํ•œ ์ž์›์— ๋Œ€ํ•œ ์กฐ์ž‘์„ ํ†ต์ผ๋˜๊ณ  ํ•œ์ •์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ

2. Stateless - ๋ฌด์ƒํƒœ์„ฑ

  • ์ž‘์—…์„ ์œ„ํ•œ ์ƒํƒœ๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • ์„ธ์…˜ ์ •๋ณด๋‚˜ ์ฟ ํ‚ค์ •๋ณด๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์— API ์„œ๋ฒ„๋Š” ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ๋งŒ์„ ๋‹จ์ˆœํžˆ ์ฒ˜๋ฆฌํ•œ๋‹ค.

3. Cacheable - ์บ์‹œ ๊ฐ€๋Šฅ

  • HTTP๊ฐ€ ๊ฐ€์ง„ ์บ์‹ฑ๊ธฐ๋Šฅ ์ ์šฉ๊ฐ€๋Šฅ

4. Self-descriptiveness - ์ž์ฒด ํ‘œํ˜„ ๊ตฌ์กฐ

  • REST API ๋ฉ”์‹œ์ง€๋งŒ ๋ณด๊ณ ๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๋‹ค.

5. Client-Server ๊ตฌ์กฐ

  • REST ์„œ๋ฒ„๋Š” API๋ฅผ ์ œ๊ณตํ•˜๊ณ ,

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ์ด๋‚˜ ์ปจํ…์ŠคํŠธ(session, ๋กœ๊ทธ์ธ ์ •๋ณด ๋“ฑ)์„ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

  • ๋•Œ๋ฌธ์— ์„œ๋กœ ๊ฐœ๋ฐœํ•ด์•ผํ•  ๋‚ด์šฉ์ด ๋ช…ํ™•ํ•ด์ง€๊ณ  ์˜์กด์„ฑ์ด ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค.

6. ๊ณ„์ธตํ˜• ๊ตฌ์กฐ

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

Last updated