Daily/Today I Learned

22.06.10_TIL

ν˜Έλ°€μ΄ 2022. 6. 10. 18:04

πŸ“Œ μ„œλ²„μ—μ„œ 데이터λ₯Ό κ΅¬μ„±ν•˜λŠ” 방식에 λŒ€ν•΄μ„œ ν•™μŠ΅ν–ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œκ°€ 데이터λ₯Ό 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