λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’Ž/DevOps

ν΄λΌμš°λ“œλ₯Ό μ œμ–΄ν•˜λŠ” API의 λ™μž‘ 방식

by dar0m! 2021. 8. 26.

λͺ©μ°¨

3μž₯

  1. APIκ°€ 무엇인지
  2. μ›Ή 기술 λ°°κ²½ 지식
    1. HTTP
    2. 가상화 기술과 ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…
    3. SOA
    4. μ›Ή API의 ꡬ성 μš”μ†Œ
    5. λ¦¬μ†ŒμŠ€
    6. μ•‘μ…˜
    7. 도메인
    8. DNS
    9. μ—”λ“œν¬μΈνŠΈ
    10. ROA
  3. ν΄λΌμš°λ“œλ₯Ό μ œμ–΄ν•  수 μžˆλŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€
    1. API
    2. CLI
    3. SDK
    4. μ½˜μ†”

4μž₯

  1. 물리적 μ„œλ²„ vs μ„œλ²„ 가상화
  2. μ„œλ²„ 가상화 vs ν΄λΌμš°λ“œ

3μž₯

API(Application Program Interface, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œκ·Έλž¨ μΈν„°νŽ˜μ΄μŠ€)

μ–΄λ–€ μ†Œν”„νŠΈμ›¨μ–΄μ—μ„œ λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ œμ–΄ν•˜κΈ° μœ„ν•΄ 미리 μ•½μ†λœ μΈν„°νŽ˜μ΄μŠ€λ‚˜ κ·œμ•½μ„ μ˜λ―Έν•œλ‹€.

  • APIλ₯Ό μ‚¬μš©ν•˜λ©΄ λ˜‘κ°™μ΄ λ°˜λ³΅λ˜λŠ” μ†ŒμŠ€ μ½”λ“œμ˜ 쀑볡을 μ—†μ• λ©΄μ„œ ν‘œμ€€ν™”λ₯Ό κΎ€ν•  수 μžˆλ‹€.
  • μ†ŒμŠ€ μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ λ†’μ—¬ 개발 생산성을 μ˜¬λ¦¬λŠ” 효과λ₯Ό 내기도 ν•œλ‹€.

μ›Ή API

ν΄λΌμš°λ“œμ—μ„œλŠ” μ›Ή APIλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 일반적인데, μ›Ή APIλž€ HTTP/HTTPS와 같은 μ›Ή ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•΄μ„œ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 ν˜ΈμΆœν•˜λŠ” APIλ₯Ό λ§ν•œλ‹€.

μ›Ή 기술 λ°œμ „μœΌλ‘œ μ•„λ§ˆμ‘΄, ꡬ글, μ•Όν›„, 이베이와 같은 기업듀은 μžμ‹ λ“€μ΄ 가진 정보λ₯Ό 제3μžκ°€ 효과적으둜 ν™œμš©ν•  수 μžˆλ„λ‘ μ›Ή APIλ₯Ό κ³΅κ°œν–ˆλ‹€.

ex) μ•„λ§ˆμ‘΄μ˜ Product Advertising API (μ•„λ§ˆμ‘΄μ—μ„œ νŒλ§€ν•˜λŠ” μƒν’ˆ λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Όν•˜λŠ” API)

μ•„λ§ˆμ‘΄μ€ APIλ₯Ό κ³΅κ°œν•¨μœΌλ‘œμ¨ κ°œλ°œμžλ“€μ˜ μ°Έμ—¬λ₯Ό λŒμ–΄ λͺ¨μ•˜κ³ , λ‹€μ–‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ•„λ§ˆμ‘΄μ˜ μ „μžμƒκ±°λž˜ μ‚¬μ΄νŠΈλ‘œ μ—°κ²°λ˜λ„λ‘ μœ λ„, μžμ‚¬ μ„œλΉ„μŠ€λ₯Ό λ”μš± ν™•λŒ€ν•˜λŠ” 큰 μ„±κ³Όλ₯Ό κ±°λ‘μ—ˆλ‹€.
μ΅œκ·Όμ—λŠ” νŽ˜μ΄μŠ€λΆμ΄λ‚˜ νŠΈμœ„ν„°λ₯Ό 포함해 λ§Žμ€ 인기 μ„œλΉ„μŠ€ 업체듀이 μžμ‹ μ˜ μ„œλΉ„μŠ€ APIλ₯Ό 외뢀에 κ³΅κ°œν•˜λŠ” 것이 λŒ€μ„Έκ°€ λ˜μ—ˆλ‹€. APIλ₯Ό κ³΅κ°œν•΄μ•Ό κ²½μŸμ— μ‚΄μ•„λ‚¨λŠ” μƒˆλ‘œμš΄ ν™˜κ²½μ΄ λ§Œλ“€μ–΄μ§€κ³  μžˆλ‹€.

κ΄‘κ³  APIλ₯Ό μ„±κ³΅μ‹œν‚¨ μ•„λ§ˆμ‘΄μ€ μ‚¬μš©λŸ‰μ΄ ν­μ£Όν•˜λŠ” μžμ‚¬ μ „μžμƒκ±°λž˜ μ‚¬μ΄νŠΈλ₯Ό μ•ˆμ •μ μœΌλ‘œ μš΄μ˜ν•  ν•„μš”λ₯Ό λŠλ‚Œ. → μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€λ₯Ό APIλ₯Ό 톡해 μ œμ–΄ν•  수 μžˆλŠ” 관리 체계 ꡬ좕(μ˜€λŠ˜λ‚ μ˜ EC2, S3 - ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ˜ 탄생)

ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ˜ 두 가지 νŠΉμ§•μ— μ£Όλͺ©

  1. 인터넷을 톡해 μ„œλ²„λ‚˜ μŠ€ν† λ¦¬μ§€λ₯Ό μ‹œκ°„μ œλ‘œ μž„λŒ€ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ‹€.
  2. 인터넷 μ„œλΉ„μŠ€κ°€ μ œκ³΅ν•˜λŠ” μ›Ή APIλ₯Ό 톡해 μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μ‹œμ μ— μ›ν•˜λŠ” 만큼 μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€λ₯Ό 할당받을 수 μžˆλ‹€.
    (이 책은 ν›„μžμ— 무게λ₯Ό 두고 있음)

ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ„ μ œκ³΅ν•˜λŠ” λŒ€λΆ€λΆ„μ˜ νšŒμ‚¬λŠ” μ•„λ§ˆμ‘΄, ꡬ글, μ„ΈμΌμ¦ˆν¬μŠ€, λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ™€ 같은 인터넷 기업듀이 λŒ€λΆ€λΆ„μ΄λ‹€. μ΄λŸ¬ν•œ 기업듀이 ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…κ³Ό μ›Ή API κ΄€λ ¨ κΈ°μˆ μ„ 이끌고 μžˆμ–΄ ν΄λΌμš°λ“œμ™€ μ›Ή API의 κ΄€κ³„λŠ” 점점 견고해지고 μžˆλ‹€.

AWSμ—μ„œλŠ” API 호좜 이λ ₯을 κ΄€λ¦¬ν•˜λŠ” AWS CloudTrailκ³Ό λ¦¬μ†ŒμŠ€μ˜ ꡬ성 ν˜•νƒœμ™€ μ„€μ •μ˜ λ³€κ²½ 이λ ₯을 κ΄€λ¦¬ν•˜λŠ” AWS ConfigλΌλŠ” μ„œλΉ„μŠ€κ°€ μžˆλ‹€.

 

μ›Ή 기술 λ°°κ²½ 지식

  1. HTTP(Hypertext Transfer Protocol)
    • μ›Ή μ„œλ²„μ˜ HTML 데이터λ₯Ό μ›Ή λΈŒλΌμš°μ €κ°€ λ°›μ•„ 화면에 ν‘œμ‹œν•˜κΈ° μœ„ν•΄ μ •μ˜λ¨
    • 이후 HTMLμ•ˆμ— 슀크립트λ₯Ό 넣을 수 μžˆλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ, μžλ°”, .NET 등이 웹을 μ§€μ›ν•˜κ²Œ λ˜μ—ˆμœΌλ©° 비동기 λ°©μ‹μœΌλ‘œ XML 데이터λ₯Ό μ£Όκ³  받을 수 μžˆλŠ” Ajax 같은 κΈ°μˆ λ“€μ΄ λ„μž…λ˜λ©° 정적인 μ›Ήμ‚¬μ΄νŠΈλŠ” λ³΅μž‘ν•˜κ³  동적인 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ λ³€λͺ¨ν•˜λ©° μ›Ή 기술이 크게 λ°œμ „ν•˜κ²Œ λ˜μ—ˆλ‹€.
  2. 가상화 기술과 ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…
    • 물리적인 μ„œλ²„λ‚˜ μŠ€ν† λ¦¬μ§€λ₯Ό 직접 ν™•λ³΄ν•˜λŠ” 방식은 μž₯λΉ„λ₯Ό μˆ˜λ°°ν•˜κ³  μ„€μΉ˜ν•˜λŠ” κ³Όμ •μ—μ„œ 적지 μ•Šμ€ μ‹œκ°„μ΄ μ†Œμš”λ¨
    • 반면, 가상화 ν™˜κ²½μ—μ„œλŠ” 물리적인 μžμ›μ„ μˆ˜λ°°ν•˜μ§€ μ•Šκ³  API ν˜ΈμΆœν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ ν•„μš”ν•œ μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€λ₯Ό λ°”λ‘œ 쑰달할 수 μžˆλ‹€.
      • 가상화 기술 보급이 ν™œλ°œν•΄μ§€λ©΄μ„œ ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ˜ 약진도 λ‘λ“œλŸ¬μ§€κ²Œ λ˜μ—ˆλ‹€.
        • μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€λ₯Ό μ¦‰μ‹œ μ΄μš©ν•  수 있게 λ˜μ—ˆκ³ 
        • ν•˜λ“œμ›¨μ–΄ λ¦¬μ†ŒμŠ€μ˜ μžμ› ν™œμš©λ„κ°€ λ†’μ•„μ Έ ν΄λΌμš°λ“œ μ»΄ν“¨νŒ… 방식이 수읡 λͺ¨λΈ μΈ‘λ©΄μ—μ„œλ„ 긍정적 κ²°κ³Όλ₯Ό λ‚³μ•˜κΈ° λ•Œλ¬Έ
    • ν•œνŽΈ, IaaS κ΄€μ μ—μ„œλŠ” λ¦¬μ†ŒμŠ€λ₯Ό 효율적으둜 μ“Έ 수 μžˆλ‹€λŠ” λ©΄μ—μ„œ 가상화가 ν•„μš”ν•  수 μžˆμ§€λ§Œ
    • PaaSλ‚˜ SaaS κ΄€μ μ—μ„œλŠ” 효율적인 λ¦¬μ†ŒμŠ€ μ‚¬μš©λ³΄λ‹€ μ„±λŠ₯을 μš°μ„ ν•  μˆ˜λ„ 있기 λ•Œλ¬Έμ— 가상화가 λ°˜λ“œμ‹œ ν•„μš”ν•˜μ§€λŠ” μ•Šλ‹€.
    • 즉, 가상화 기술이 ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ˜ λ°œμ „μ— κΈ°μ—¬ν•œ 것은 λ§žμ§€λ§Œ ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ˜ 본질이라고 보기 μ–΄λ ΅λ‹€.
      • μ„±λŠ₯μ΄λ‚˜ λ³΄μ•ˆμ΄ 더 μ€‘μš”ν•œ 경우 물리적인 λ¦¬μ†ŒμŠ€λ₯Ό 직접 μ‚¬μš©ν•  μˆ˜λ„ 있기 λ•Œλ¬Έ
    • ν΄λΌμš°λ“œμ˜ λ³Έμ§ˆμ€ μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€μ˜ 가상화 μ—¬λΆ€κ°€ μ•„λ‹ˆλΌ 인터넷을 톡해 ν•„μš”ν•œ μžμ›μ„ μ œμ–΄ν•  수 μžˆλŠ” API 방식에 μžˆλ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€.
  3. SOA(Service Oriented Architecture)
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜λ“€μ˜ κΈ°λŠ₯을 λΉ„μ¦ˆλ‹ˆμŠ€μ μΈ 의미λ₯Ό κ°€μ§€λŠ” κΈ°λŠ₯ λ‹¨μœ„λ‘œ λ¬Άμ–΄μ„œ ν‘œμ€€ν™”λœ 호좜 μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν†΅ν•΄μ„œ μ„œλΉ„μŠ€λΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„λ‘œ μž¬μ‘°ν•©ν•œ ν›„, 이 μ„œλΉ„μŠ€λ“€μ„ μ„œλ‘œ μ‘°ν•©(Orchestration)ν•˜μ—¬ 업무 κΈ°λŠ₯을 κ΅¬ν˜„ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“œλŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜(κ³Όκ±° μ›Ή μ„œλΉ„μŠ€)
    • SOA vs μ›Ή API
      • SOAκ°€ 폐쇄적인 λ„€νŠΈμ›Œν¬ μ•ˆμ—μ„œ 사내 정보 μ‹œμŠ€ν…œμ„ μ—°κ³„ν•˜κ³  μ œν•œλœ μ‚¬μš©μžκ°€ μ΄μš©ν•˜λŠ” μš©λ„λ‘œ 많이 ν™œμš©λ˜μ—ˆλ‹€λ©΄,
      • μ›Ή APIλŠ” 인터넷과 같은 개방된 λ„€νŠΈμ›Œν¬ μ•ˆμ—μ„œ λˆ„κ΅¬λ‚˜ μ‚¬μš©ν•  수 μžˆλ„λ‘ κΈ°λŠ₯의 처리 λ‘œμ§μ΄λ‚˜ 데이터 ꡬ쑰λ₯Ό κ°„κ²°ν•˜κ²Œ λ§Œλ“€μ–΄ μ œκ³΅ν•˜λŠ” κ²½ν–₯이 κ°•ν•˜λ‹€.
  4. μ›Ή API의 ꡬ성 μš”μ†Œ(3μš”μ†Œ)
    1. 인증 처리 : API κ΄€μ μ—μ„œ 앑터에 ν•΄λ‹Ήν•˜λ©° μ•‘ν„°λ₯Ό μ‹λ³„ν•˜λŠ” 처리 과정이 인증 μ²˜λ¦¬μ΄λ‹€.
      • ν΄λΌμš°λ“œ μ„œλΉ„μŠ€κ°€ μ œκ³΅ν•˜λŠ” λ…μžμ μΈ 인증 κΈ°λŠ₯을 μ‚¬μš©(9μž₯)
    2. μ œμ–΄ν•  λŒ€μƒ : API κ΄€μ μ—μ„œ λ¦¬μ†ŒμŠ€μ— ν•΄λ‹Ήν•˜λ©° URI둜 ν‘œν˜„
      • URIλŠ” 크게 λ„€νŠΈμ›Œν¬ λΆ€λΆ„κ³Ό 경둜(Path) λΆ€λΆ„μœΌλ‘œ κ΅¬μ„±λœλ‹€.
    3. μ œμ–΄ ν–‰μœ„ : API κ΄€μ μ—μ„œ μ•‘μ…˜μ— ν•΄λ‹Ήν•˜λ©° HTTP λ©”μ†Œλ“œλ‘œ ν‘œν˜„
      • HTTP λ©”μ†Œλ“œλ‚˜ 헀더λ₯Ό μ‘°ν•©ν•΄μ„œ λ§Œλ“€μ–΄μ§„λ‹€.
  5. λ¦¬μ†ŒμŠ€
    • ν΄λΌμš°λ“œμ˜ λŒ€ν‘œμ μΈ μ»΄ν¬λ„ŒνŠΈμΈ μ„œλ²„, μŠ€ν† λ¦¬μ§€, λ„€νŠΈμ›Œν¬ 등이 λ¦¬μ†ŒμŠ€μ΄λ‹€.
    • μ„œλ²„μ—μ„œλŠ” μΈμŠ€ν„΄μŠ€, 이미지, ν‚€ νŽ˜μ–΄ 등이 λ¦¬μ†ŒμŠ€μ΄κ³ ,
    • λ„€νŠΈμ›Œν¬μ—μ„œλŠ” λΌμš°ν„°, μ„œλΈŒλ„·, μ‹œνλ¦¬ν‹° κ·Έλ£Ή 등이 λ¦¬μ†ŒμŠ€μ— ν•΄λ‹Ήν•œλ‹€.
    • λ¦¬μ†ŒμŠ€λ“€μ€ λ‹€λ₯Έ λ¦¬μ†ŒμŠ€λ“€κ³Ό κ΅¬λΆ„λ˜λ„λ‘ κ³ μœ ν•œ 식별 ν‚€κ°€ ν•„μš”ν•œλ° 크게 두 가지 μœ ν˜•μ΄ μžˆλ‹€.
      • 두 가지 ν‚€ μœ ν˜• μ€‘μ—μ„œ μ–΄λ–€ 방식이 μ‚¬μš©λ˜λŠ”μ§€λŠ” μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„λ‘œ κ²°μ •λœλ‹€. μ»΄ν¬λ„ŒνŠΈ λ¬Έμ„œ ν™•μΈν•˜λ©΄ λœλ‹€.
      1. UUID
        • 랜덀으둜 뢀여됨.
        • μΈμŠ€ν„΄μŠ€λ‚˜ μ„œλΈŒλ„·μ„ μƒμ„±ν•˜λ©΄ UUID 역할을 ν•˜λŠ” μΈμŠ€ν„΄μŠ€ IDλ‚˜ μ„œλΈŒλ„· IDκ°€ λ§Œλ“€μ–΄μ§„λ‹€. νŠΉμ • μΈμŠ€ν„΄μŠ€λ₯Ό 지정해야 ν•  λ•Œ UUIDλ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.
      2. 이름
        • 였브젝트 μŠ€ν† λ¦¬μ§€λ₯Ό λ‹΄λŠ” 버킷(μ»¨ν…Œμ΄λ„ˆ) μ•ˆμ— λ“€μ–΄ μžˆλŠ” 였브젝트(파일)을 지정할 λ•ŒλŠ” 버킷 이름과 였브젝트 이름을 μ‚¬μš©ν•œλ‹€.
    • λ¦¬μ†ŒμŠ€ μ€‘μ—μ„œλŠ” κ³ μœ ν•œ ν‚€λ₯Ό κ°€μ§€λŠ” 속성 정보가 μžˆλŠ”λ° 이λ₯Ό ν”„λ‘œνΌν‹°λΌκ³  ν•œλ‹€.
      • ex) κ°€μš© μ˜μ—­, 이미지 ID
    • URI(Uniform Resource Identifier)μ—λŠ” URL(Uniform Resource Locator)κ³Ό URN(Uniform Resource Name)이 ν¬ν•¨λ˜μ–΄ μžˆλ‹€.
      • URL : λ„€νŠΈμ›Œν¬ λΆ€λΆ„(도메인)κ³Ό 경둜 λΆ€λΆ„( λ„€νŠΈμ›Œν¬ λΆ€λΆ„ 이후(/ 이후)의 계측적 경둜)으둜 λ‚˜λ‰œλ‹€.
        • λ„€νŠΈμ›Œν¬ λΆ€λΆ„ : 'μŠ€ν‚€λ§ˆλͺ…(ν”„λ‘œν† μ½œ), 인증 정보, FQDN, 포트 번호' 둜 κ΅¬μ„±λœλ‹€. ν΄λΌμš°λ“œμ˜ μ»΄ν¬λ„ŒνŠΈ, ν˜Ήμ€ μ„œλΉ„μŠ€λ₯Ό 가리킴
        • 경둜 λΆ€λΆ„ : 디렉터리 κ²½λ‘œμ™€ 파일 이름이 μ‚¬μš©λ˜λŠ”λ° 쿼리 νŒŒλΌλ―Έν„°λ‚˜ ν”„λž˜κ·Έλ¨ΌνŠΈ μ‹λ³„μžλ₯Ό μΆ”κ°€ν•˜κΈ°λ„ ν•œλ‹€. ꡬ체적인 λ¦¬μ†ŒμŠ€μ˜ κ²½λ‘œμ— ν•΄λ‹Ήν•œλ‹€.
          • 쿼리 νŒŒλΌλ―Έν„°λŠ” 쑰건을 μ§€μ •ν•˜κ³  싢을 λ•Œ '/?q=***' ν˜•νƒœλ‘œ μ‚¬μš©ν•œλ‹€.
          • ν”„λž˜κ·Έλ¨ΌνŠΈ μ‹λ³„μžλŠ” μ›Ή νŽ˜μ΄μ§€ λ‚΄μš©μ΄ κΈΈμ–΄μ Έ 전체 λ‚΄μš©μ„ νŒŒμ•…ν•˜κΈ° μ–΄λ €μšΈ λ•Œ '#' 문자λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • μœ„μΉ˜λ‘œ μ΄λ™ν•˜λ„λ‘ λ§Œλ“ λ‹€.
      • URN : λ„€νŠΈμ›Œν¬μ— 상관없이 λ¦¬μ†ŒμŠ€μ˜ 이름을 BNF(Backus-Naur from) 배컀슀-λ‚˜μš°λ₯΄ ν‘œκΈ°λ²•μœΌλ‘œ μ •μ˜ν•œλ‹€. ':'λ‚˜ '<', '>' 문자λ₯Ό μ‘°ν•©ν•˜μ—¬ ν‘œκΈ°ν•˜λŠ”λ° ꡬ성 μš”μ†Œμ˜ κ΄€κ³„λ‚˜ 문법을 ν‘œν˜„ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
        • AWS Amazon λ¦¬μ†ŒμŠ€ μ΄λ¦„μ΄λ‚˜ λ¦¬μ†ŒμŠ€ ν”„λ‘œνΌν‹°νƒ€μž…μ΄ λŒ€ν‘œμ μΈ μ˜ˆμ‹œμ΄λ‹€.
        • λ„€νŠΈμ›Œν¬μ™€ 상관없이 λ‚΄λΆ€ κΈ°λŠ₯에 ν•„μš”ν•œ λ¦¬μ†ŒμŠ€λ₯Ό κ°€λ¦¬ν‚€λŠ”λ° μ‚¬μš©λœλ‹€.
  6. μ•‘μ…˜
    • λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ ν–‰ν•˜λŠ” λ™μž‘μœΌλ‘œ CRUD(Create, Read, Update, Delete) 라고 ν‘œν˜„ν•˜κ³  등둝, 쑰회, μˆ˜μ •, μ‚­μ œκ°€ λŒ€ν‘œμ μ΄λ‹€.
    • λ¦¬μ†ŒμŠ€μ˜ URIλ₯Ό ν˜ΈμΆœν•  λ•Œ μ‚¬μš©λ˜λŠ” HTTP λ©”μ†Œλ“œμ™€ 쿼리 λ¬Έμžμ—΄ νŒŒλΌλ―Έν„° 정보λ₯Ό ν™œμš©ν•œλ‹€.
    • 쑰회, μˆ˜μ •, μ‚­μ œμ— ν•΄λ‹Ήν•˜λŠ” μ œμ–΄λŠ” μ œμ–΄ λŒ€μƒμ„ μ‹λ³„ν•˜κΈ° μœ„ν•œ ν‚€κ°€ ν•„μš”ν•˜κ³ , 등둝에 ν•΄λ‹Ήν•˜λŠ” μ œμ–΄λŠ” 기쑴에 μ—†λŠ” λ¦¬μ†ŒμŠ€λ₯Ό λ§Œλ“œλŠ” 것이기 λ•Œλ¬Έμ— 생성 쑰건을 μ§€μ •ν•˜λ˜ ν‚€λŠ” ν•„μš”ν•˜μ§€ μ•Šλ‹€.
  7. 도메인
    • λ„€νŠΈμ›Œν¬μƒμ—μ„œ μžμ›μ˜ μœ„μΉ˜λ₯Ό ν‘œν˜„ν•  λ•Œ IP μ£Όμ†Œμ™€ 같은 숫자 ν˜•νƒœκ°€ μ•„λ‹ˆλΌ μ‚¬λžŒμ΄ μ‹λ³„ν•˜κΈ° μ‰¬μš΄ 문자 ν˜•νƒœλ‘œ ν‘œν˜„ν•˜λ©°, ν•΄λ‹Ή 호슀트의 의미λ₯Ό μ•Œ 수 μžˆλŠ” 단어듀이 점으둜 κ΅¬λΆ„λœ ν˜•νƒœλ‘œ κ΅¬μ„±λœλ‹€.
    • 도메인 트리 : 였λ₯Έμͺ½μ—μ„œ μ™Όμͺ½μœΌλ‘œ μ—­μˆœμœΌλ‘œ 읽으면 μΌμ’…μ˜ 계측 ꡬ쑰처럼 ν‘œν˜„λ˜λ„λ‘ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. 맨 λ§ˆμ§€λ§‰ 뢀뢄이 λ¦¬μ†ŒμŠ€(호슀트λͺ…이 됨).
    • FQDN(Fully Qualified Domain Name, μ •κ·œν™”λœ 도메인) : 호슀트λͺ…κ³Ό 도메인이 ν•˜λ‚˜λ‘œ μ—°κ²°λœ 전체 이름
  8. DNS(Domain Name System)
    • 도메인과 IP μ£Όμ†Œ μ‚¬μ΄μ˜ λ³€ν™˜ κΈ°λŠ₯을 ν•΄μ£ΌλŠ” 것을 DNS라고 ν•œλ‹€.
      • DNS 질의 ν˜Ήμ€ DNS 쿼리라고 λΆ€λ₯΄λŠ” 질의 과정을 κ±°μ³μ„œ λ³€ν™˜ν•œλ‹€.
        • μƒμœ„ 도메인 DNSκ°€ ν•˜μœ„ 도메인 DNS에 μœ„μž„ν•˜κ³ , μ§ˆμ˜ν•œ μΈ‘(DNS μΊμ‹œ μ„œλ²„)은 λ‹€μ‹œ μœ„μž„ 받은 ν•˜μœ„ 도메인 DNS μ„œλ²„λ‘œ IP μ£Όμ†Œ 정보λ₯Ό λ¬Όμ–΄λ³Έλ‹€.
        • μ—°μ‡„μ μœΌλ‘œ 반볡
      • μ •λ°©ν–₯ : 도메인 → IP
      • μ—­λ°©ν–₯ : IP → 도메인
    • FQDN : IP = 1 : N - λΆ€ν•˜ λΆ„μ‚°, DNS round robin
      • λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œμ—μ„œ ν™œμš©λ˜λŠ” 관계. ν•˜λ‚˜μ˜ IP μ£Όμ†Œλ‘œ μ œλŒ€λ‘œ λŒ€μ‘ν•˜μ§€ λͺ»ν•˜μ—¬ DNSμ—μ„œ FQDN에 λŒ€μ‘ν•˜λŠ” IPμ£Όμ†Œλ₯Ό μ—¬λŸ¬ 개 λ“±λ‘ν•˜λŠ” 방법을 μ“΄λ‹€.
      • μ΄λ ‡κ²Œ ν•˜λ©΄ DNSκ°€ 순차적으둜 IP μ£Όμ†Œλ₯Ό λŒλ €μ“°κΈ° λ•Œλ¬Έμ— ν•˜λ‚˜μ˜ μ„œλ²„κ°€ λͺ¨λ“  μš”μ²­μ„ λ°›λŠ” λ•Œλ³΄λ‹€ λΆ€ν•˜λ₯Ό 쀄일 수 μžˆλ‹€. 이것을 DNS λΌμš΄λ“œ 둜빈이라고 ν•œλ‹€.
      • ν΄λΌμš°λ“œμ—μ„œλŠ” CDNμ΄λ‚˜ λ‘œλ“œλ°ΈλŸ°μ„œμ—μ„œ DNS λΌμš΄λ“œ 둜빈 κΈ°λŠ₯을 ν™œμš©ν•˜μ—¬ ν™•μž₯성을 높이고 μžˆλ‹€.
      • μ‚¬μš©μž κ΄€μ μ—μ„œ IP μ£Όμ†Œ λ³€κ²½ 사싀을 μ€νν•˜λŠ” 역할을 ν•˜κΈ°λ„ ν•œλ‹€.
    • FQDN : IP = N : 1 - 가상 호슀트
      • μ„œλ²„ λ¦¬μ†ŒμŠ€λ₯Ό 보닀 효율적으둜 ν™œμš©ν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•œλ‹€. 이λ₯Ό 잘 ν™œμš©ν•˜κ³  μžˆλŠ” 것이 가상 ν˜ΈμŠ€νŠΈμ΄λ‹€.
      • DNSμ—μ„œ μ—¬λŸ¬ FQDN이 같은 IP μ£Όμ†Œμ— λ§€ν•‘λ˜λ„λ‘ ν•˜λ©΄ λœλ‹€.
  9. μ—”λ“œν¬μΈνŠΈ
    • ν΄λΌμ΄μ–ΈνŠΈκ°€ ν΄λΌμš°λ“œμ— 곡개된 APIλ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ μ ‘μ†ν•˜λŠ” μ—°κ²° 접점을 μ—”λ“œν¬μΈνŠΈλΌκ³  ν•œλ‹€.
    • 리전과 μ œμ–΄ν•  μ»΄ν¬λ„ŒνŠΈλ„ λ‹€λ₯΄λ‹€λ©΄, 접속할 μ—”λ“œν¬μΈνŠΈλ„ 달라진닀.
    • ν΄λΌμš°λ“œμ—μ„œλŠ” μ—”λ“œν¬μΈνŠΈλ‘œ 도메인을 μ‚¬μš©ν•œλ‹€. IPλŒ€μ‹  도메인을 μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” μ‚¬λžŒμ΄ μ•Œμ•„λ³΄κΈ° 쉽기 λ•Œλ¬Έμ΄λ‹€. λ˜ν•œ, μ‚¬μš©μžλ‘œλΆ€ν„° IP μ£Όμ†Œλ₯Ό 은폐할 수 μžˆλ‹€. IP μ£Όμ†Œκ°€ κ³΅κ°œμ˜€λ‹€λ©΄ λΆ€ν•˜ 뢄산을 μœ„ν•΄ IP μ£Όμ†Œλ₯Ό λ°”κΎΈλ €κ³ ν•  λ•Œ 어렀움이 μžˆλ‹€. μ‚¬μš©μžκ°€ λ°”λ€” IP μ£Όμ†Œκ°€ 무엇인지 μ•Œ 방법이 μ—†κΈ° λ•Œλ¬Έμ—.
    • 도메인을 ν™œμš©ν•¨μœΌλ‘œμ¨, μŠ€μΌ€μΌ μ•„μ›ƒμœΌλ‘œ λŒ€μ‘ν•  수 있고, λ°˜λŒ€λ‘œ μ‚¬μš©λŸ‰μ΄ 쀄어듀 λ•Œλ„ κ°€μš©ν•œ λ¦¬μ†ŒμŠ€λ₯Ό λ‹€λ₯Έ μš©λ„λ‘œ 돌렀 μ“Έ 수 μžˆλ‹€. 즉, DNS λΌμš΄λ“œ 둜빈 λ°©μ‹μ΄λ‚˜ 가상 호슀트 방식을 μ‚¬μš©ν•˜μ—¬ FQDNκ³Ό IP μ£Όμ†Œλ₯Ό 1:N, N:1둜 적절히 맀핑 관계λ₯Ό λ°”κΏ”μ£Όλ©΄ μ—”λ“œν¬μΈνŠΈλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šλ”λΌλ„ ν™˜κ²½μ μΈ 변화에 μœ μ—°ν•˜κ²Œ λŒ€μ‘ν•  수 μžˆλ‹€.
    • κ°€μš©μ„±κ³Ό ν™•μž₯성이 ν•„μš”ν•  λ•Œ FQDN을 μ‚¬μš©ν•˜λŠ” 것이 μΌλ°˜μ μ΄λ‹€. κ·Έλž˜μ„œ DNS 역할이 μ€‘μš”ν•˜λ‹€.
  10. ROA(Resource Oriented Architecture)
    • λ¦¬μ†ŒμŠ€ 지ν–₯ μ•„ν‚€ν…μ²˜λž€ REST API의 사상을 기반으둜 λ¦¬μ†ŒμŠ€ 쀑심적인 APIλ₯Ό μ‚¬μš©ν•˜λŠ” μ•„ν‚€ν…μ²˜λ₯Ό λ§ν•œλ‹€. 
    • REST(Representational State Transfer)
      • HTTP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ λ¦¬μ†ŒμŠ€μ˜ 관계 정보λ₯Ό URL의 κ²½λ‘œμ— 계측 ν˜•νƒœλ‘œ ν‘œν˜„ν•˜λŠ” 방법
      • REST νŠΉμ§•μ„ 잘 μ‚΄λ¦° APIλ₯Ό RESTful API, REST API 라고 ν•œλ‹€.
      • 4가지 섀계 지침
        1. μƒνƒœλ₯Ό 가지지 μ•Šλ„λ‘ λ§Œλ“ λ‹€ : μƒνƒœλ₯Ό 가지지 μ•ŠμœΌλ―€λ‘œ κ΅¬ν˜„μ΄ 쉽고 μΊμ‹œλ₯Ό μ‚¬μš©ν•  수 μžˆμ–΄ μ„±λŠ₯이 μš°μˆ˜ν•˜λ‹€.
        2. URIλŠ” 디렉터리 ꡬ쑰처럼 κ³„μΈ΅μ μœΌλ‘œ λ§Œλ“ λ‹€ : URI의 가독성이 μ’‹κ³  λ¦¬μ†ŒμŠ€μ˜ ꡬ쑰λ₯Ό μ΄ν•΄ν•˜κΈ° 쉽닀.
        3. HTTP λ©”μ†Œλ“œλ₯Ό λͺ…μ‹œμ μœΌλ‘œ μ‚¬μš©ν•œλ‹€ : λ¦¬μ†ŒμŠ€μ˜ μƒνƒœ λ³€ν™”λ₯Ό HTTP λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•˜μ—¬ λ¦¬μ†ŒμŠ€ μ€‘μ‹¬μœΌλ‘œ μ²˜λ¦¬ν•˜κ³  λ³„λ„μ˜ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν–‰μœ„ μ€‘μ‹¬μœΌλ‘œ μ²˜λ¦¬ν•˜μ§€ μ•Šλ„λ‘ ν•œλ‹€.
        4. 응닡할 λ•ŒλŠ” XMLμ΄λ‚˜ JSON을 μ‚¬μš©ν•œλ‹€ : 데이터 ν‘œν˜„μ„ μ •κ·œν™”ν•΄μ„œ λ‹€λ₯Έ μ–Έμ–΄λ‚˜ 기술 κ΅¬μ‘°μ—μ„œλ„ 데이터λ₯Ό ν™œμš©ν•  수 μžˆλ„λ‘ ν•œλ‹€.
      • ν–‰μœ„ 쀑심이 μ•„λ‹Œ μžμ› μ€‘μ‹¬μœΌλ‘œ 섀계할 λ•Œ λ§Œλ“œμ‹œ ν•„μš”ν•œ κ³ λ €μ‚¬ν•­μ΄λΌλŠ” 것을 μ•Œ 수 μžˆλ‹€.
    • ν΄λΌμš°λ“œμ™€ 같은 λΆ„μ‚° ν™˜κ²½μ„ μ œμ–΄ν•  λ•Œ μ•Œμ•„μ•Ό ν•  REST API νŠΉμ§• μ„Έ 가지
      1. 비동기
        • 인터넷 망을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— 응닡이 지연될 수 μžˆλ‹€. λ¨Όμ € 보낸 μš”μ²­μ΄ 뒀에 보낸 μš”μ²­λ³΄λ‹€ λ°˜λ“œμ‹œ λ¨Όμ € λ„μ°©ν•œλ‹€κ³  보μž₯ν•  수 μ—†κ³  λ¦¬μ†ŒμŠ€κ°€ μ—¬λŸ¬ 곳에 λΆ„μ‚°λ˜μ–΄ 있으며 처리 과정도 λΉ„λ™κΈ°λ‘œ μ²˜λ¦¬λœλ‹€.
      2. λ©±λ“±μ„±
        • μƒνƒœκ°€ μ—†κΈ° λ•Œλ¬Έμ— 같은 APIλ₯Ό λͺ‡ λ²ˆμ„ ν˜ΈμΆœν•˜λ”λΌλ„ λ¦¬μ†ŒμŠ€μ— 변경이 λ°œμƒν•˜μ§€ μ•ŠλŠ” ν•œ 같은 κ²°κ³Όκ°€ λ‚˜μ˜¨λ‹€.
      3. μž¬μ‹œλ„
        • 멱등성이 보μž₯되면, λ„€νŠΈμ›Œν¬ μƒνƒœκ°€ 쒋지 μ•Šμ•„ 였λ₯˜κ°€ λ°œμƒν•˜λ”λΌλ„ HTTP μ—λŸ¬ μ½”λ“œλ₯Ό 보고 λ‹€μ‹œ ν•œλ²ˆ μ‹œλ„ν•  수 μžˆλ‹€. μž¬μ‹œλ„ κ²°κ³Ό μ‘λ‹΅μœΌλ‘œ μ˜€λŠ” 메타 λ°μ΄ν„°λŠ” 멱등성에 μ˜ν•΄ 같은 값이 λ‚˜μ˜€κΈ° λ•Œλ¬Έμ— μ΅œμ’… 정합성도 보μž₯λœλ‹€.

ν΄λΌμš°λ“œλ₯Ό μ œμ–΄ν•  수 μžˆλŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ 4가지

  • API : μ•žμ—μ„œ μ‚΄νŽ΄λ΄„
  • CLI : λͺ…λ Ήμ€„λ‘œ μ œμ–΄ν•  수 μžˆλŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€. λŒ€λΆ€λΆ„ ν΄λΌμš°λ“œκ°€ 기본적으둜 제곡
  • SDK : ν”„λ‘œκ·Έλž¨ μ–Έμ–΄λ₯Ό 톡해 ν΄λΌμš°λ“œ ν™˜κ²½μ„ μ œμ–΄ν•˜λ„λ‘ λ„μ™€μ£ΌλŠ” 개발 도ꡬ
  • μ½˜μ†” : GUI(Graphical User Interface) ν˜•νƒœλ‘œ ν΄λΌμš°λ“œλ₯Ό μ œμ–΄ν•  수 μžˆλŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€. CLI, SDK 와 λ‹€λ₯΄κ²Œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν˜•νƒœμ΄κΈ° λ•Œλ¬Έμ— μ„œλ²„ 츑이 μ—…λ°μ΄νŠΈ λ˜μ–΄λ„ 별닀λ₯Έ μΆ”κ°€μž‘μ—… 없이 μ΅œμ‹  κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ‹€.

 

4μž₯

  1. 물리적 μ„œλ²„ vs μ„œλ²„ 가상화
    • p. 157 κ·Έλ¦Ό μ°Έκ³ 
    • μ„œλ²„μ˜ λ°˜μž…, λž™μ— νƒ‘μž¬ν•˜λŠ” μž‘μ—…, 케이블 λ°°μ„ κ³Ό 같은 물리적인 μž‘μ—…μ΄ ν•„μš”μ—†μ–΄μ‘Œλ‹€.
    • μ„œλ²„λ₯Ό 선택할 λ•Œ μ œν’ˆ μΉ΄νƒˆλ‘œκ·Έλ₯Ό 사양을 μ„ νƒν–ˆλ˜ 반면, 가상 ν™˜κ²½μ—μ„œλŠ” λ¦¬μ†ŒμŠ€(가상 CPU의 κ°œμˆ˜λ‚˜ 가상 λ©”λͺ¨λ¦¬ μš©λŸ‰)λ₯Ό μ„ νƒν•˜λŠ” λ°©μ‹μœΌλ‘œ λ°”λ€Œμ—ˆλ‹€. μ„œλ²„λ₯Ό λž™μ— νƒ‘μž¬ν–ˆλ˜ μž‘μ—…λ„ 가상 μ„œλ²„λ₯Ό 물리 μ„œλ²„μ— ν• λ‹Ήν•˜λŠ” λ°©μ‹μœΌλ‘œ λŒ€μ²΄λ˜μ—ˆλ‹€.
    • μ΄λ ‡κ²Œ, μ†Œν”„νŠΈμ›¨μ–΄μ μΈ μš”κ΅¬ 사항을 κ³ λ €ν•˜μ—¬ μž‘μ—…μ„ ν•˜λŠ” λ°©μ‹μœΌλ‘œ 인프라 ꡬ좕 방식이 λ°”λ€Œλ©° 물리적인 μž‘μ—…λŸ‰μ΄ μ „μ²΄μ μœΌλ‘œ μ€„μ–΄λ“€μ—ˆμ§€λ§Œ, μ†Œν”„νŠΈμ›¨μ–΄ μž‘μ—…μœΌλ‘œ λŒ€μ²΄λ˜λŠ” 뢀뢄을 μ œμ™Έν•˜λ©΄ κ·Έ 이전에 ν•„μš”ν•œ μž‘μ—…μ˜ 양이 쀄지 μ•ŠλŠ”λ‹€.
    • 쀄어든 μž‘μ—…λŸ‰μ„ μ–Όλ§ˆ λ˜μ§€ μ•ŠμŒ.
    • μ œν•œλœ 인λ ₯으둜 μ–Όλ§ˆλ‚˜ μ–΄λ–»κ²Œ 효율적으둜 μž‘μ—…μ„ 쀄일 수 μžˆλŠλƒκ°€ ν’€μ–΄μ•Όν•  κ³Όμ œμ΄λ‹€. μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ° ν΄λΌμš°λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ν•˜λ‚˜μ˜ ν•΄κ²° 방법이 될 수 μžˆλ‹€.
  2. μ„œλ²„ 가상화 vs ν΄λΌμš°λ“œ
    • 물리적인 μž‘μ—…λŸ‰μ„ 효율적으둜 μ€„μ—¬μ£ΌλŠ” ν΄λΌμš°λ“œ API의 ν™œμš©μ΄ 큰 역할을 ν•œλ‹€.
    • p. 161 κ·Έλ¦Ό μ°Έκ³ 
    • ν΄λΌμš°λ“œ(μ˜€ν”ˆμŠ€νƒ) ν™˜κ²½μ—μ„œλŠ” μž‘μ—…μ΄ 크게 μ„Έ λΆ€λΆ„μœΌλ‘œ λ‚˜λ‰˜μ–΄μ§„λ‹€.
      1. ν”Œλ ˆμ΄λ²„
        • 생성할 가상 μ„œλ²„μ˜ 사양을 μ„ νƒν•˜λŠ” 것과 κ°™λ‹€. (μΈμŠ€ν„΄μŠ€ μœ ν˜•)
        • ν”Œλ ˆμ΄λ²„λž€ 가상 CPU의 κ°œμˆ˜λ‚˜ λ©”λͺ¨λ¦¬, 가상 λ””μŠ€ν¬μ˜ μš©λŸ‰ 등을 미리 μ„€μ •ν•˜μ—¬ μ–Έμ œλ“ μ§€ μž¬μ‚¬μš©ν•  수 μžˆλ„λ‘ μ€€λΉ„ν•΄λ‘” κ²ƒμœΌλ‘œ 'μ„œλ²„ 사양 ν…œν”Œλ¦Ώ'으둜 μ΄ν•΄ν•˜λ©΄ λœλ‹€.
        • ν΄λΌμš°λ“œ ν™˜κ²½μ—μ„œλŠ” 미리 μ€€λΉ„λœ ν”Œλ ˆμ΄λ²„λ₯Ό μ„ νƒν•˜κΈ°λ§Œ ν•˜λ©΄ λœλ‹€.
        • μ„ νƒμ˜ 폭을 μ œν•œν•¨μœΌλ‘œμ¨ μ˜μ‚¬κ²°μ • 속도가 μ›”λ“±νžˆ 빨라짐 → νš¨μœ¨μ„±μ„ λ†’μž„
      2. μ„€μ • 슀크립트 μž‘μ„±
        • 가상 μ„œλ²„κ°€ κΈ°λ™λœ 직후에 μˆ˜ν–‰λ˜λŠ” μ„€μ • μž‘μ—…μ„ 슀크립트 ν˜•νƒœλ‘œ λ§Œλ“  κ²ƒμœΌλ‘œ 졜초 기동 μ‹œμ— 일괄 μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ§„λ‹€.
        • νŒ¨ν‚€μ§€ μ„€μΉ˜λ‚˜ μ„€μ •, 각쒅 μ„œλΉ„μŠ€μ˜ μžλ™ μ‹€ν–‰κ³Ό 같은 λ‚΄μš©μ΄ ν¬ν•¨λœλ‹€. ν…ŒμŠ€νŠΈν•˜λŠ” νˆ΄μ„ μ‹€ν–‰ν•˜κΈ°λ„ ν•œλ‹€.
        • λͺ‡ λ²ˆμ΄λ“  μž¬ν˜„ν•  수 μžˆμ„ 뿐 μ•„λ‹ˆλΌ μ‹€μˆ˜ 없이 μž‘μ—…λœλ‹€λŠ” μž₯점이 μžˆλ‹€.
      3. 가상 μ„œλ²„λ₯Ό μƒμ„±ν•˜λŠ” λͺ…λ Ή μ‹€ν–‰
        • μ˜€ν”ˆμŠ€νƒμ˜ nova λͺ…령을 μ‚¬μš©ν•˜μ—¬ 가상 μ„œλ²„λ₯Ό κΈ°λ™ν•œλ‹€.
        • aws의 경우 'aws ec2 run-instances'λ₯Ό μ‚¬μš©ν•œλ‹€.
    • ν΄λΌμš°λ“œ ν™˜κ²½μ˜ 또 λ‹€λ₯Έ μž₯점
      • 사양 선택이 잘λͺ»λ˜κ±°λ‚˜ μš”κ΅¬ 사항이 λ°”λ€ŒλŠ” μƒν™©μ—μ„œλ„ μ‹œμŠ€ν…œμ„ μž¬κ΅¬μΆ•ν•˜λŠ” 것이 쉽닀.
      • IP μ£Όμ†Œ ν• λ‹Ή μž‘μ—…λ„ μžλ™ν™”ν•  수 μžˆλ‹€. 가상 μ„œλ²„κ°€ 제거되면 νšŒμˆ˜ν•˜μ—¬ μž¬μ‚¬μš©ν•œλ‹€.
      • 물리적인 μž₯비에 ν•„μš”ν•œ μž‘μ—…μ΄ μ™„μ „νžˆ 제거됨
      • μ΄λ ‡κ²Œ ν΄λΌμš°λ“œ APIλŠ” 과거에 μ‚¬λžŒμ΄ 직접 ν–ˆλ˜ μž‘μ—…λ“€μ„ ν”„λ‘œκ·Έλž¨μ΄ λŒ€μ‹ ν•˜κ²Œ λ˜μ–΄ μž‘μ—… νš¨μœ¨μ„ λ†’μ΄λŠ” 역할을 ν•œλ‹€.
    • νš¨μœ¨ν™”μ˜ 핡심은 'μ‚¬λžŒμ˜ νŒλ‹¨κ³Ό μˆ˜μž‘μ—…'을 μ–Όλ§ˆλ‚˜ 쀄일 수 μžˆλŠλƒμ— 달렸닀. ν΄λΌμš°λ“œ ν™˜κ²½μ—μ„œλŠ” μ‚¬λžŒμ˜ νŒλ‹¨κ³Ό μˆ˜μž‘μ—…μ„ μžλ™ν™”ν•΄μ„œ ν”„λ‘œκ·Έλž¨μ΄ λŒ€ν–‰ν•˜λ„λ‘ ν•˜κ±°λ‚˜ μ• λ‹Ήμ΄ˆ κ·ΈλŸ¬ν•œ νŒλ‹¨ 자체λ₯Ό λΆˆν•„μš”ν•˜κ²Œ λ§Œλ“€μ–΄ νš¨μœ¨ν™”λ₯Ό κΎ€ν•œλ‹€.

 

λ§ˆλ¬΄λ¦¬ν•˜λ©°

ν΄λΌμš°λ“œ API의 λ³Έμ§ˆμ„ μ΄ν•΄ν•˜μ§€ λͺ»ν•˜κ³  과거와 같은 λ°©μ‹μœΌλ‘œ μ‹œμŠ€ν…œμ„ μš΄μ˜ν•œλ‹€λ©΄ ν΄λΌμš°λ“œλ₯Ό λ„μž…ν•˜λ”λΌλ„ νš¨μš©μ„ μ œλŒ€λ‘œ λˆ„λ¦¬μ§€ λͺ»ν•  수 μžˆλ‹€. ν΄λΌμš°λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œλ„ IP μ£Όμ†Œλ₯Ό ν• λ‹Ήν•˜κΈ° μœ„ν•΄ 관리 λŒ€μž₯을 λ§Œλ“€μ–΄μ„œ κ΄€λ¦¬ν•œλ‹€κ±°λ‚˜, μžλ™μœΌλ‘œ μ„€μ •ν•  수 μžˆλŠ” λ‚΄μš©μ„ μž‘μ—… κ³„νšμ„œμ— ν•˜λ‚˜ν•˜λ‚˜ κΈ°μž¬ν•˜κ³  μˆ˜μž‘μ—…μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” 경우λ₯Ό 예둜 λ“€ 수 μžˆλ‹€.

ν΄λΌμš°λ“œ APIλ₯Ό μ œλŒ€λ‘œ ν™œμš©ν•˜λ €λ©΄ κ³Όκ±°μ™€λŠ” λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μƒκ°ν•˜κ³  μ ‘κ·Όν•΄μ•Ό ν•œλ‹€.

 

μ°Έκ³ λ¬Έν—Œ

그림으둜 λ°°μš°λŠ” ν΄λΌμš°λ“œ 인프라와 API의 ꡬ쑰 [μ‹ μƒμž¬, λ‘œλ“œλΆ]

λŒ“κΈ€