๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Daily/Today I Learned

22.06.10_TIL

by ํ˜ธ๋ฐ€์ด 2022. 6. 10.

๐Ÿ“Œ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ–ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ API๋ฅผ ํ†ตํ•ด์„œ ๋ฐ›์„ ๋•Œ ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•ด์„œ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ ์„ค๊ณ„๋œ ์•„ํ‚คํ…์ณ์ด๋‹ค. ์ด๋Ÿฐ๊ฒƒ ๊นŒ์ง€ ์™œ ๋ฐฐ์šด๋‹ค๋ผ๊ณ  ๋งํ•œ๋‹ค๋ฉด ์ด๋Ÿฐ๊ฒƒ๋„ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค๊ณ  ๋‹ต์„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ“— ์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ

REST API

  • Representational State Transfer
    • ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜
    • ์›น์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์ž์›(Resource)์„ HTTP URI๋กœ ํ‘œํ˜„ํ•˜๊ณ  HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹
  • ์ž‘์„ฑ๋ฒ•(์„ฑ์ˆ™๋„ ๋ชจ๋ธ)
  • ์„ฑ์ˆ™๋„ ๋ชจ๋ธ 0๋‹จ๊ณ„
    • HTTP ํ”„๋กœํ† ์ฝœ๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.
    • REST API๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ๋‹จ๊ณ„
  • ์„ฑ์ˆ™๋„ ๋ชจ๋ธ 1๋‹จ๊ณ„
    • ๊ฐœ๋ณ„ ๋ฆฌ์†Œ์Šค์™€์˜ ํ†ต์‹  ์ค€์ˆ˜
    • ๋ชจ๋“  ์ž์›์€ ๊ฐœ๋ณ„ ๋ฆฌ์†Œ์Šค์— ๋งž๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ์š”์ฒญํ•˜๊ณ  ๋ฐ›๋Š” ์ž์›์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์‘๋‹ต์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ
  • ์„ฑ์ˆ™๋„ ๋ชจ๋ธ 2๋‹จ๊ณ„
    • CRUD์— ๋งž๊ฒŒ ์ ์ ˆํ•œ HTTP ์‚ฌ์šฉ์— ์ค‘์ ์„ ๋‘”๋‹ค.
    • HTTP ๋ฉ”์„œ๋“œ ๊ทœ์น™
HTTP ๋ฉ”์„œ๋“œ ๊ทœ์น™
GET ๋ฉ”์„œ๋“œ(Read) ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ์•Š๋Š” ์š”์ฒญ์— ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
POST ๋ฉ”์„œ๋“œ(Create) ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
PUT ๋ฉ”์„œ๋“œ (Update) ์š”์ฒญ๋งˆ๋‹ค ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
PUT ๋งค์„œ๋“œ์™€ POST๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
PUT ๋ฉ”์„œ๋“œ(๊ต์ฒด)์™€ PATCH ๋ฉ”์„œ๋“œ(์ˆ˜์ •)๋„ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ์„ฑ์ˆ™๋„ ๋ชจ๋ธ 3๋‹จ๊ณ„
    • HATEOAS(Hypertext As The Engine Of Application State) ํ•˜์ดํผ ๋ฏธ๋””์–ด ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ์š”์ฒญ์€ 2๋‹จ๊ณ„์™€ ๋™์ผํ•˜๋‹ค.
    • ์‘๋‹ต์€ ๋ฆฌ์†Œ์Šค์˜ URI๋ฅผ ํฌํ•จํ•œ ๋งํฌ ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•ด ์ž‘์„ฑํ•œ๋‹ค.

OPEN API

  • ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ์—ด๋ ค์žˆ๋Š” API

API

  • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ

 

API Key

  • ๋กœ๊ทธ์ธํ•œ ์ด์šฉ์ž์—๊ฒŒ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ API Key์™€ ๊ฐ™์ด ์ „๋‹ฌํ•ด์•ผ ์›ํ•˜๋Š” ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

๐Ÿ“˜ ์ถ”๊ฐ€๋กœ ๊ณต๋ถ€ํ•  ๋‚ด์šฉ

Postman

  • ๊ตฌ์„ฑ
  • ์‚ฌ์šฉ๋ฒ•

React

  • React ์‚ฌ์šฉ๋ฒ•

 

 

๐Ÿ“ ์˜ค๋Š˜ ๋Š๋‚€ ์  & ๋งˆ์Œ ๊ฐ€์ง

  • Rest API์˜ ์ž‘์„ฑ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋งŒํผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ์ถฉ๋ถ„ํžˆ ๊ทœ์น™์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • ๋‹ค์Œ์ฃผ์—” ์‹ค์ œ๋กœ REST API๋ฅผ ํ† ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์„ ์‹ค์Šตํ•˜๋‹ˆ ๋ฏธ๋ฆฌ ์˜ˆ์Šตํ•ด๋ณด์ž!
  • ์ฃผ๋ง์—๋Š” ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ๋ฆฌ์•กํŠธ๋ฅผ ์กฐ๊ธˆ ๋” ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž!

'Daily > Today I Learned' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

22.06.13_TIL  (0) 2022.06.13
22.06.11_TIL  (4) 2022.06.11
22.06.09_TIL  (0) 2022.06.09
22.06.08_TIL  (0) 2022.06.09
22.06.07_TIL  (0) 2022.06.08