λͺ©μ°¨
3μ₯
- APIκ° λ¬΄μμΈμ§
- μΉ κΈ°μ λ°°κ²½ μ§μ
- HTTP
- κ°μν κΈ°μ κ³Ό ν΄λΌμ°λ μ»΄ν¨ν
- SOA
- μΉ APIμ κ΅¬μ± μμ
- 리μμ€
- μ‘μ
- λλ©μΈ
- DNS
- μλν¬μΈνΈ
- ROA
- ν΄λΌμ°λλ₯Ό μ μ΄ν μ μλ μ¬μ©μ μΈν°νμ΄μ€
- API
- CLI
- SDK
- μ½μ
4μ₯
- 물리μ μλ² vs μλ² κ°μν
- μλ² κ°μν 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 - ν΄λΌμ°λ μ»΄ν¨ν μ νμ)
ν΄λΌμ°λ μ»΄ν¨ν μ λ κ°μ§ νΉμ§μ μ£Όλͺ©
- μΈν°λ·μ ν΅ν΄ μλ²λ μ€ν 리μ§λ₯Ό μκ°μ λ‘ μλνμ¬ μ¬μ©ν μ μλ€.
- μΈν°λ· μλΉμ€κ° μ 곡νλ μΉ APIλ₯Ό ν΅ν΄ μ¬μ©μκ° μνλ μμ μ μνλ λ§νΌ μ»΄ν¨ν
리μμ€λ₯Ό ν λΉλ°μ μ μλ€.
(μ΄ μ± μ νμμ 무κ²λ₯Ό λκ³ μμ)
ν΄λΌμ°λ μ»΄ν¨ν μ μ 곡νλ λλΆλΆμ νμ¬λ μλ§μ‘΄, ꡬκΈ, μΈμΌμ¦ν¬μ€, λ§μ΄ν¬λ‘μννΈμ κ°μ μΈν°λ· κΈ°μ λ€μ΄ λλΆλΆμ΄λ€. μ΄λ¬ν κΈ°μ λ€μ΄ ν΄λΌμ°λ μ»΄ν¨ν κ³Ό μΉ API κ΄λ ¨ κΈ°μ μ μ΄λκ³ μμ΄ ν΄λΌμ°λμ μΉ APIμ κ΄κ³λ μ μ κ²¬κ³ ν΄μ§κ³ μλ€.
AWSμμλ API νΈμΆ μ΄λ ₯μ κ΄λ¦¬νλ AWS CloudTrailκ³Ό 리μμ€μ κ΅¬μ± ννμ μ€μ μ λ³κ²½ μ΄λ ₯μ κ΄λ¦¬νλ AWS ConfigλΌλ μλΉμ€κ° μλ€.
μΉ κΈ°μ λ°°κ²½ μ§μ
- HTTP(Hypertext Transfer Protocol)
- μΉ μλ²μ HTML λ°μ΄ν°λ₯Ό μΉ λΈλΌμ°μ κ° λ°μ νλ©΄μ νμνκΈ° μν΄ μ μλ¨
- μ΄ν HTMLμμ μ€ν¬λ¦½νΈλ₯Ό λ£μ μ μλ μλ°μ€ν¬λ¦½νΈ, μλ°, .NET λ±μ΄ μΉμ μ§μνκ² λμμΌλ©° λΉλκΈ° λ°©μμΌλ‘ XML λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ Ajax κ°μ κΈ°μ λ€μ΄ λμ λλ©° μ μ μΈ μΉμ¬μ΄νΈλ 볡μ‘νκ³ λμ μΈ μΉ μ ν리μΌμ΄μ μΌλ‘ λ³λͺ¨νλ©° μΉ κΈ°μ μ΄ ν¬κ² λ°μ νκ² λμλ€.
- κ°μν κΈ°μ κ³Ό ν΄λΌμ°λ μ»΄ν¨ν
- 물리μ μΈ μλ²λ μ€ν 리μ§λ₯Ό μ§μ ν보νλ λ°©μμ μ₯λΉλ₯Ό μλ°°νκ³ μ€μΉνλ κ³Όμ μμ μ μ§ μμ μκ°μ΄ μμλ¨
- λ°λ©΄, κ°μν νκ²½μμλ 물리μ μΈ μμμ μλ°°νμ§ μκ³ API νΈμΆνλ κ²λ§μΌλ‘λ νμν μ»΄ν¨ν
리μμ€λ₯Ό λ°λ‘ μ‘°λ¬ν μ μλ€.
- κ°μν κΈ°μ 보κΈμ΄ νλ°ν΄μ§λ©΄μ ν΄λΌμ°λ μ»΄ν¨ν
μ μ½μ§λ λλλ¬μ§κ² λμλ€.
- μ»΄ν¨ν 리μμ€λ₯Ό μ¦μ μ΄μ©ν μ μκ² λμκ³
- νλμ¨μ΄ 리μμ€μ μμ νμ©λκ° λμμ Έ ν΄λΌμ°λ μ»΄ν¨ν λ°©μμ΄ μμ΅ λͺ¨λΈ μΈ‘λ©΄μμλ κΈμ μ κ²°κ³Όλ₯Ό λ³μκΈ° λλ¬Έ
- κ°μν κΈ°μ 보κΈμ΄ νλ°ν΄μ§λ©΄μ ν΄λΌμ°λ μ»΄ν¨ν
μ μ½μ§λ λλλ¬μ§κ² λμλ€.
- ννΈ, IaaS κ΄μ μμλ 리μμ€λ₯Ό ν¨μ¨μ μΌλ‘ μΈ μ μλ€λ λ©΄μμ κ°μνκ° νμν μ μμ§λ§
- PaaSλ SaaS κ΄μ μμλ ν¨μ¨μ μΈ λ¦¬μμ€ μ¬μ©λ³΄λ€ μ±λ₯μ μ°μ ν μλ μκΈ° λλ¬Έμ κ°μνκ° λ°λμ νμνμ§λ μλ€.
- μ¦, κ°μν κΈ°μ μ΄ ν΄λΌμ°λ μ»΄ν¨ν
μ λ°μ μ κΈ°μ¬ν κ²μ λ§μ§λ§ ν΄λΌμ°λ μ»΄ν¨ν
μ λ³Έμ§μ΄λΌκ³ 보기 μ΄λ ΅λ€.
- μ±λ₯μ΄λ 보μμ΄ λ μ€μν κ²½μ° λ¬Όλ¦¬μ μΈ λ¦¬μμ€λ₯Ό μ§μ μ¬μ©ν μλ μκΈ° λλ¬Έ
- ν΄λΌμ°λμ λ³Έμ§μ μ»΄ν¨ν 리μμ€μ κ°μν μ¬λΆκ° μλλΌ μΈν°λ·μ ν΅ν΄ νμν μμμ μ μ΄ν μ μλ API λ°©μμ μλ€λ κ²μ μ μ μλ€.
- SOA(Service Oriented Architecture)
- μ ν리μΌμ΄μ λ€μ κΈ°λ₯μ λΉμ¦λμ€μ μΈ μλ―Έλ₯Ό κ°μ§λ κΈ°λ₯ λ¨μλ‘ λ¬Άμ΄μ νμ€νλ νΈμΆ μΈν°νμ΄μ€λ₯Ό ν΅ν΄μ μλΉμ€λΌλ μννΈμ¨μ΄ μ»΄ν¬λνΈ λ¨μλ‘ μ¬μ‘°ν©ν ν, μ΄ μλΉμ€λ€μ μλ‘ μ‘°ν©(Orchestration)νμ¬ μ 무 κΈ°λ₯μ ꡬνν μ ν리μΌμ΄μ μ λ§λλ μννΈμ¨μ΄ μν€ν μ²(κ³Όκ±° μΉ μλΉμ€)
- SOA vs μΉ API
- SOAκ° νμμ μΈ λ€νΈμν¬ μμμ μ¬λ΄ μ 보 μμ€ν μ μ°κ³νκ³ μ νλ μ¬μ©μκ° μ΄μ©νλ μ©λλ‘ λ§μ΄ νμ©λμλ€λ©΄,
- μΉ APIλ μΈν°λ·κ³Ό κ°μ κ°λ°©λ λ€νΈμν¬ μμμ λꡬλ μ¬μ©ν μ μλλ‘ κΈ°λ₯μ μ²λ¦¬ λ‘μ§μ΄λ λ°μ΄ν° ꡬ쑰λ₯Ό κ°κ²°νκ² λ§λ€μ΄ μ 곡νλ κ²½ν₯μ΄ κ°νλ€.
- μΉ APIμ κ΅¬μ± μμ(3μμ)
- μΈμ¦ μ²λ¦¬ : API κ΄μ μμ μ‘ν°μ ν΄λΉνλ©° μ‘ν°λ₯Ό μλ³νλ μ²λ¦¬ κ³Όμ μ΄ μΈμ¦ μ²λ¦¬μ΄λ€.
- ν΄λΌμ°λ μλΉμ€κ° μ 곡νλ λ μμ μΈ μΈμ¦ κΈ°λ₯μ μ¬μ©(9μ₯)
- μ μ΄ν λμ : API κ΄μ μμ 리μμ€μ ν΄λΉνλ©° URIλ‘ νν
- URIλ ν¬κ² λ€νΈμν¬ λΆλΆκ³Ό κ²½λ‘(Path) λΆλΆμΌλ‘ ꡬμ±λλ€.
- μ μ΄ νμ : API κ΄μ μμ μ‘μ
μ ν΄λΉνλ©° HTTP λ©μλλ‘ νν
- HTTP λ©μλλ ν€λλ₯Ό μ‘°ν©ν΄μ λ§λ€μ΄μ§λ€.
- μΈμ¦ μ²λ¦¬ : API κ΄μ μμ μ‘ν°μ ν΄λΉνλ©° μ‘ν°λ₯Ό μλ³νλ μ²λ¦¬ κ³Όμ μ΄ μΈμ¦ μ²λ¦¬μ΄λ€.
- 리μμ€
- ν΄λΌμ°λμ λνμ μΈ μ»΄ν¬λνΈμΈ μλ², μ€ν 리μ§, λ€νΈμν¬ λ±μ΄ 리μμ€μ΄λ€.
- μλ²μμλ μΈμ€ν΄μ€, μ΄λ―Έμ§, ν€ νμ΄ λ±μ΄ 리μμ€μ΄κ³ ,
- λ€νΈμν¬μμλ λΌμ°ν°, μλΈλ·, μνλ¦¬ν° κ·Έλ£Ή λ±μ΄ 리μμ€μ ν΄λΉνλ€.
- 리μμ€λ€μ λ€λ₯Έ 리μμ€λ€κ³Ό ꡬλΆλλλ‘ κ³ μ ν μλ³ ν€κ° νμνλ° ν¬κ² λ κ°μ§ μ νμ΄ μλ€.
- λ κ°μ§ ν€ μ ν μ€μμ μ΄λ€ λ°©μμ΄ μ¬μ©λλμ§λ μ»΄ν¬λνΈ λ¨μλ‘ κ²°μ λλ€. μ»΄ν¬λνΈ λ¬Έμ νμΈνλ©΄ λλ€.
- UUID
- λλ€μΌλ‘ λΆμ¬λ¨.
- μΈμ€ν΄μ€λ μλΈλ·μ μμ±νλ©΄ UUID μν μ νλ μΈμ€ν΄μ€ IDλ μλΈλ· IDκ° λ§λ€μ΄μ§λ€. νΉμ μΈμ€ν΄μ€λ₯Ό μ§μ ν΄μΌ ν λ UUIDλ₯Ό μ¬μ©νλ©΄ λλ€.
- μ΄λ¦
- μ€λΈμ νΈ μ€ν 리μ§λ₯Ό λ΄λ λ²ν·(컨ν μ΄λ) μμ λ€μ΄ μλ μ€λΈμ νΈ(νμΌ)μ μ§μ ν λλ λ²ν· μ΄λ¦κ³Ό μ€λΈμ νΈ μ΄λ¦μ μ¬μ©νλ€.
- 리μμ€ μ€μμλ κ³ μ ν ν€λ₯Ό κ°μ§λ μμ± μ λ³΄κ° μλλ° μ΄λ₯Ό νλ‘νΌν°λΌκ³ νλ€.
- ex) κ°μ© μμ, μ΄λ―Έμ§ ID
- URI(Uniform Resource Identifier)μλ URL(Uniform Resource Locator)κ³Ό URN(Uniform Resource Name)μ΄ ν¬ν¨λμ΄ μλ€.
- URL : λ€νΈμν¬ λΆλΆ(λλ©μΈ)κ³Ό κ²½λ‘ λΆλΆ( λ€νΈμν¬ λΆλΆ μ΄ν(/ μ΄ν)μ κ³μΈ΅μ κ²½λ‘)μΌλ‘ λλλ€.
- λ€νΈμν¬ λΆλΆ : 'μ€ν€λ§λͺ (νλ‘ν μ½), μΈμ¦ μ 보, FQDN, ν¬νΈ λ²νΈ' λ‘ κ΅¬μ±λλ€. ν΄λΌμ°λμ μ»΄ν¬λνΈ, νΉμ μλΉμ€λ₯Ό κ°λ¦¬ν΄
- κ²½λ‘ λΆλΆ : λλ ν°λ¦¬ κ²½λ‘μ νμΌ μ΄λ¦μ΄ μ¬μ©λλλ° μΏΌλ¦¬ νλΌλ―Έν°λ νλκ·Έλ¨ΌνΈ μλ³μλ₯Ό μΆκ°νκΈ°λ νλ€. ꡬ체μ μΈ λ¦¬μμ€μ κ²½λ‘μ ν΄λΉνλ€.
- 쿼리 νλΌλ―Έν°λ 쑰건μ μ§μ νκ³ μΆμ λ '/?q=***' ννλ‘ μ¬μ©νλ€.
- νλκ·Έλ¨ΌνΈ μλ³μλ μΉ νμ΄μ§ λ΄μ©μ΄ κΈΈμ΄μ Έ μ 체 λ΄μ©μ νμ νκΈ° μ΄λ €μΈ λ '#' λ¬Έμλ₯Ό μ¬μ©νμ¬ νΉμ μμΉλ‘ μ΄λνλλ‘ λ§λ λ€.
- URN : λ€νΈμν¬μ μκ΄μμ΄ λ¦¬μμ€μ μ΄λ¦μ BNF(Backus-Naur from) 배컀μ€-λμ°λ₯΄ νκΈ°λ²μΌλ‘ μ μνλ€. ':'λ '<', '>' λ¬Έμλ₯Ό μ‘°ν©νμ¬ νκΈ°νλλ° κ΅¬μ± μμμ κ΄κ³λ λ¬Έλ²μ ννν λ μ¬μ©νλ€.
- AWS Amazon 리μμ€ μ΄λ¦μ΄λ 리μμ€ νλ‘νΌν°νμ μ΄ λνμ μΈ μμμ΄λ€.
- λ€νΈμν¬μ μκ΄μμ΄ λ΄λΆ κΈ°λ₯μ νμν 리μμ€λ₯Ό κ°λ¦¬ν€λλ° μ¬μ©λλ€.
- URL : λ€νΈμν¬ λΆλΆ(λλ©μΈ)κ³Ό κ²½λ‘ λΆλΆ( λ€νΈμν¬ λΆλΆ μ΄ν(/ μ΄ν)μ κ³μΈ΅μ κ²½λ‘)μΌλ‘ λλλ€.
- μ‘μ
- 리μμ€μ λν΄ ννλ λμμΌλ‘ CRUD(Create, Read, Update, Delete) λΌκ³ νννκ³ λ±λ‘, μ‘°ν, μμ , μμ κ° λνμ μ΄λ€.
- 리μμ€μ URIλ₯Ό νΈμΆν λ μ¬μ©λλ HTTP λ©μλμ 쿼리 λ¬Έμμ΄ νλΌλ―Έν° μ 보λ₯Ό νμ©νλ€.
- μ‘°ν, μμ , μμ μ ν΄λΉνλ μ μ΄λ μ μ΄ λμμ μλ³νκΈ° μν ν€κ° νμνκ³ , λ±λ‘μ ν΄λΉνλ μ μ΄λ κΈ°μ‘΄μ μλ 리μμ€λ₯Ό λ§λλ κ²μ΄κΈ° λλ¬Έμ μμ± μ‘°κ±΄μ μ§μ νλ ν€λ νμνμ§ μλ€.
- λλ©μΈ
- λ€νΈμν¬μμμ μμμ μμΉλ₯Ό ννν λ IP μ£Όμμ κ°μ μ«μ ννκ° μλλΌ μ¬λμ΄ μλ³νκΈ° μ¬μ΄ λ¬Έμ ννλ‘ νννλ©°, ν΄λΉ νΈμ€νΈμ μλ―Έλ₯Ό μ μ μλ λ¨μ΄λ€μ΄ μ μΌλ‘ ꡬλΆλ ννλ‘ κ΅¬μ±λλ€.
- λλ©μΈ νΈλ¦¬ : μ€λ₯Έμͺ½μμ μΌμͺ½μΌλ‘ μμμΌλ‘ μ½μΌλ©΄ μΌμ’ μ κ³μΈ΅ ꡬ쑰μ²λΌ ννλλλ‘ κ΅¬μ±λμ΄ μλ€. 맨 λ§μ§λ§ λΆλΆμ΄ 리μμ€(νΈμ€νΈλͺ μ΄ λ¨).
- FQDN(Fully Qualified Domain Name, μ κ·νλ λλ©μΈ) : νΈμ€νΈλͺ κ³Ό λλ©μΈμ΄ νλλ‘ μ°κ²°λ μ 체 μ΄λ¦
- DNS(Domain Name System)
- λλ©μΈκ³Ό IP μ£Όμ μ¬μ΄μ λ³ν κΈ°λ₯μ ν΄μ£Όλ κ²μ DNSλΌκ³ νλ€.
- DNS μ§μ νΉμ DNS 쿼리λΌκ³ λΆλ₯΄λ μ§μ κ³Όμ μ κ±°μ³μ λ³ννλ€.
- μμ λλ©μΈ DNSκ° νμ λλ©μΈ DNSμ μμνκ³ , μ§μν μΈ‘(DNS μΊμ μλ²)μ λ€μ μμ λ°μ νμ λλ©μΈ DNS μλ²λ‘ IP μ£Όμ μ 보λ₯Ό λ¬Όμ΄λ³Έλ€.
- μ°μμ μΌλ‘ λ°λ³΅
- μ λ°©ν₯ : λλ©μΈ → IP
- μλ°©ν₯ : IP → λλ©μΈ
- DNS μ§μ νΉμ DNS 쿼리λΌκ³ λΆλ₯΄λ μ§μ κ³Όμ μ κ±°μ³μ λ³ννλ€.
- FQDN : IP = 1 : N - λΆν λΆμ°, DNS round robin
- λκ·λͺ¨ μμ€ν μμ νμ©λλ κ΄κ³. νλμ IP μ£Όμλ‘ μ λλ‘ λμνμ§ λͺ»νμ¬ DNSμμ FQDNμ λμνλ IPμ£Όμλ₯Ό μ¬λ¬ κ° λ±λ‘νλ λ°©λ²μ μ΄λ€.
- μ΄λ κ² νλ©΄ DNSκ° μμ°¨μ μΌλ‘ IP μ£Όμλ₯Ό λλ €μ°κΈ° λλ¬Έμ νλμ μλ²κ° λͺ¨λ μμ²μ λ°λ λλ³΄λ€ λΆνλ₯Ό μ€μΌ μ μλ€. μ΄κ²μ DNS λΌμ΄λ λ‘λΉμ΄λΌκ³ νλ€.
- ν΄λΌμ°λμμλ CDNμ΄λ λ‘λλ°Έλ°μμμ DNS λΌμ΄λ λ‘λΉ κΈ°λ₯μ νμ©νμ¬ νμ₯μ±μ λμ΄κ³ μλ€.
- μ¬μ©μ κ΄μ μμ IP μ£Όμ λ³κ²½ μ¬μ€μ μννλ μν μ νκΈ°λ νλ€.
- FQDN : IP = N : 1 - κ°μ νΈμ€νΈ
- μλ² λ¦¬μμ€λ₯Ό λ³΄λ€ ν¨μ¨μ μΌλ‘ νμ©νκ³ μΆμ λ μ¬μ©νλ€. μ΄λ₯Ό μ νμ©νκ³ μλ κ²μ΄ κ°μ νΈμ€νΈμ΄λ€.
- DNSμμ μ¬λ¬ FQDNμ΄ κ°μ IP μ£Όμμ 맀νλλλ‘ νλ©΄ λλ€.
- λλ©μΈκ³Ό IP μ£Όμ μ¬μ΄μ λ³ν κΈ°λ₯μ ν΄μ£Όλ κ²μ DNSλΌκ³ νλ€.
- μλν¬μΈνΈ
- ν΄λΌμ΄μΈνΈκ° ν΄λΌμ°λμ 곡κ°λ APIλ₯Ό μ€ννκΈ° μν΄ μ μνλ μ°κ²° μ μ μ μλν¬μΈνΈλΌκ³ νλ€.
- 리μ κ³Ό μ μ΄ν μ»΄ν¬λνΈλ λ€λ₯΄λ€λ©΄, μ μν μλν¬μΈνΈλ λ¬λΌμ§λ€.
- ν΄λΌμ°λμμλ μλν¬μΈνΈλ‘ λλ©μΈμ μ¬μ©νλ€. IPλμ λλ©μΈμ μ¬μ©νλ μ΄μ λ μ¬λμ΄ μμ보기 μ½κΈ° λλ¬Έμ΄λ€. λν, μ¬μ©μλ‘λΆν° IP μ£Όμλ₯Ό μνν μ μλ€. IP μ£Όμκ° κ³΅κ°μλ€λ©΄ λΆν λΆμ°μ μν΄ IP μ£Όμλ₯Ό λ°κΎΈλ €κ³ ν λ μ΄λ €μμ΄ μλ€. μ¬μ©μκ° λ°λ IP μ£Όμκ° λ¬΄μμΈμ§ μ λ°©λ²μ΄ μκΈ° λλ¬Έμ.
- λλ©μΈμ νμ©ν¨μΌλ‘μ¨, μ€μΌμΌ μμμΌλ‘ λμν μ μκ³ , λ°λλ‘ μ¬μ©λμ΄ μ€μ΄λ€ λλ κ°μ©ν 리μμ€λ₯Ό λ€λ₯Έ μ©λλ‘ λλ € μΈ μ μλ€. μ¦, DNS λΌμ΄λ λ‘λΉ λ°©μμ΄λ κ°μ νΈμ€νΈ λ°©μμ μ¬μ©νμ¬ FQDNκ³Ό IP μ£Όμλ₯Ό 1:N, N:1λ‘ μ μ ν 맀ν κ΄κ³λ₯Ό λ°κΏμ£Όλ©΄ μλν¬μΈνΈλ₯Ό μμ νμ§ μλλΌλ νκ²½μ μΈ λ³νμ μ μ°νκ² λμν μ μλ€.
- κ°μ©μ±κ³Ό νμ₯μ±μ΄ νμν λ FQDNμ μ¬μ©νλ κ²μ΄ μΌλ°μ μ΄λ€. κ·Έλμ DNS μν μ΄ μ€μνλ€.
- ROA(Resource Oriented Architecture)
- 리μμ€ μ§ν₯ μν€ν μ²λ REST APIμ μ¬μμ κΈ°λ°μΌλ‘ 리μμ€ μ€μ¬μ μΈ APIλ₯Ό μ¬μ©νλ μν€ν μ²λ₯Ό λ§νλ€.
- REST(Representational State Transfer)
- HTTP νλ‘ν μ½μ μ¬μ©νμ¬ λ¦¬μμ€μ κ΄κ³ μ 보λ₯Ό URLμ κ²½λ‘μ κ³μΈ΅ ννλ‘ νννλ λ°©λ²
- REST νΉμ§μ μ μ΄λ¦° APIλ₯Ό RESTful API, REST API λΌκ³ νλ€.
- 4κ°μ§ μ€κ³ μ§μΉ¨
- μνλ₯Ό κ°μ§μ§ μλλ‘ λ§λ λ€ : μνλ₯Ό κ°μ§μ§ μμΌλ―λ‘ κ΅¬νμ΄ μ½κ³ μΊμλ₯Ό μ¬μ©ν μ μμ΄ μ±λ₯μ΄ μ°μνλ€.
- URIλ λλ ν°λ¦¬ ꡬ쑰μ²λΌ κ³μΈ΅μ μΌλ‘ λ§λ λ€ : URIμ κ°λ μ±μ΄ μ’κ³ λ¦¬μμ€μ ꡬ쑰λ₯Ό μ΄ν΄νκΈ° μ½λ€.
- HTTP λ©μλλ₯Ό λͺ μμ μΌλ‘ μ¬μ©νλ€ : 리μμ€μ μν λ³νλ₯Ό HTTP λ©μλλ₯Ό νμ©νμ¬ λ¦¬μμ€ μ€μ¬μΌλ‘ μ²λ¦¬νκ³ λ³λμ λ©μλλ₯Ό μ¬μ©νμ¬ νμ μ€μ¬μΌλ‘ μ²λ¦¬νμ§ μλλ‘ νλ€.
- μλ΅ν λλ XMLμ΄λ JSONμ μ¬μ©νλ€ : λ°μ΄ν° ννμ μ κ·νν΄μ λ€λ₯Έ μΈμ΄λ κΈ°μ ꡬ쑰μμλ λ°μ΄ν°λ₯Ό νμ©ν μ μλλ‘ νλ€.
- νμ μ€μ¬μ΄ μλ μμ μ€μ¬μΌλ‘ μ€κ³ν λ λ§λμ νμν κ³ λ €μ¬νμ΄λΌλ κ²μ μ μ μλ€.
- ν΄λΌμ°λμ κ°μ λΆμ° νκ²½μ μ μ΄ν λ μμμΌ ν REST API νΉμ§ μΈ κ°μ§
- λΉλκΈ°
- μΈν°λ· λ§μ μ¬μ©νκΈ° λλ¬Έμ μλ΅μ΄ μ§μ°λ μ μλ€. λ¨Όμ λ³΄λΈ μμ²μ΄ λ€μ λ³΄λΈ μμ²λ³΄λ€ λ°λμ λ¨Όμ λμ°©νλ€κ³ 보μ₯ν μ μκ³ λ¦¬μμ€κ° μ¬λ¬ κ³³μ λΆμ°λμ΄ μμΌλ©° μ²λ¦¬ κ³Όμ λ λΉλκΈ°λ‘ μ²λ¦¬λλ€.
- λ©±λ±μ±
- μνκ° μκΈ° λλ¬Έμ κ°μ APIλ₯Ό λͺ λ²μ νΈμΆνλλΌλ 리μμ€μ λ³κ²½μ΄ λ°μνμ§ μλ ν κ°μ κ²°κ³Όκ° λμ¨λ€.
- μ¬μλ
- λ©±λ±μ±μ΄ 보μ₯λλ©΄, λ€νΈμν¬ μνκ° μ’μ§ μμ μ€λ₯κ° λ°μνλλΌλ HTTP μλ¬ μ½λλ₯Ό λ³΄κ³ λ€μ νλ² μλν μ μλ€. μ¬μλ κ²°κ³Ό μλ΅μΌλ‘ μ€λ λ©ν λ°μ΄ν°λ λ©±λ±μ±μ μν΄ κ°μ κ°μ΄ λμ€κΈ° λλ¬Έμ μ΅μ’ μ ν©μ±λ 보μ₯λλ€.
- λΉλκΈ°
ν΄λΌμ°λλ₯Ό μ μ΄ν μ μλ μ¬μ©μ μΈν°νμ΄μ€ 4κ°μ§
- API : μμμ μ΄ν΄λ΄
- CLI : λͺ λ Ήμ€λ‘ μ μ΄ν μ μλ μ¬μ©μ μΈν°νμ΄μ€. λλΆλΆ ν΄λΌμ°λκ° κΈ°λ³Έμ μΌλ‘ μ 곡
- SDK : νλ‘κ·Έλ¨ μΈμ΄λ₯Ό ν΅ν΄ ν΄λΌμ°λ νκ²½μ μ μ΄νλλ‘ λμμ£Όλ κ°λ° λꡬ
- μ½μ : GUI(Graphical User Interface) ννλ‘ ν΄λΌμ°λλ₯Ό μ μ΄ν μ μλ μ¬μ©μ μΈν°νμ΄μ€. CLI, SDK μ λ€λ₯΄κ² μΉ μ ν리μΌμ΄μ ννμ΄κΈ° λλ¬Έμ μλ² μΈ‘μ΄ μ λ°μ΄νΈ λμ΄λ λ³λ€λ₯Έ μΆκ°μμ μμ΄ μ΅μ κΈ°λ₯μ μ¬μ©ν μ μλ€.
4μ₯
- 물리μ μλ² vs μλ² κ°μν
- p. 157 κ·Έλ¦Ό μ°Έκ³
- μλ²μ λ°μ , λμ νμ¬νλ μμ , μΌμ΄λΈ λ°°μ κ³Ό κ°μ 물리μ μΈ μμ μ΄ νμμμ΄μ‘λ€.
- μλ²λ₯Ό μ νν λ μ ν μΉ΄νλ‘κ·Έλ₯Ό μ¬μμ μ ννλ λ°λ©΄, κ°μ νκ²½μμλ 리μμ€(κ°μ CPUμ κ°μλ κ°μ λ©λͺ¨λ¦¬ μ©λ)λ₯Ό μ ννλ λ°©μμΌλ‘ λ°λμλ€. μλ²λ₯Ό λμ νμ¬νλ μμ λ κ°μ μλ²λ₯Ό 물리 μλ²μ ν λΉνλ λ°©μμΌλ‘ λ체λμλ€.
- μ΄λ κ², μννΈμ¨μ΄μ μΈ μꡬ μ¬νμ κ³ λ €νμ¬ μμ μ νλ λ°©μμΌλ‘ μΈνλΌ κ΅¬μΆ λ°©μμ΄ λ°λλ©° 물리μ μΈ μμ λμ΄ μ 체μ μΌλ‘ μ€μ΄λ€μμ§λ§, μννΈμ¨μ΄ μμ μΌλ‘ λ체λλ λΆλΆμ μ μΈνλ©΄ κ·Έ μ΄μ μ νμν μμ μ μμ΄ μ€μ§ μλλ€.
- μ€μ΄λ μμ λμ μΌλ§ λμ§ μμ.
- μ νλ μΈλ ₯μΌλ‘ μΌλ§λ μ΄λ»κ² ν¨μ¨μ μΌλ‘ μμ μ μ€μΌ μ μλλκ° νμ΄μΌν κ³Όμ μ΄λ€. μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νλλ° ν΄λΌμ°λλ₯Ό μ¬μ©νλ κ²μ΄ νλμ ν΄κ²° λ°©λ²μ΄ λ μ μλ€.
- μλ² κ°μν vs ν΄λΌμ°λ
- 물리μ μΈ μμ λμ ν¨μ¨μ μΌλ‘ μ€μ¬μ£Όλ ν΄λΌμ°λ APIμ νμ©μ΄ ν° μν μ νλ€.
- p. 161 κ·Έλ¦Ό μ°Έκ³
- ν΄λΌμ°λ(μ€νμ€ν) νκ²½μμλ μμ
μ΄ ν¬κ² μΈ λΆλΆμΌλ‘ λλμ΄μ§λ€.
- νλ μ΄λ²
- μμ±ν κ°μ μλ²μ μ¬μμ μ ννλ κ²κ³Ό κ°λ€. (μΈμ€ν΄μ€ μ ν)
- νλ μ΄λ²λ κ°μ CPUμ κ°μλ λ©λͺ¨λ¦¬, κ°μ λμ€ν¬μ μ©λ λ±μ 미리 μ€μ νμ¬ μΈμ λ μ§ μ¬μ¬μ©ν μ μλλ‘ μ€λΉν΄λ κ²μΌλ‘ 'μλ² μ¬μ ν νλ¦Ώ'μΌλ‘ μ΄ν΄νλ©΄ λλ€.
- ν΄λΌμ°λ νκ²½μμλ 미리 μ€λΉλ νλ μ΄λ²λ₯Ό μ ννκΈ°λ§ νλ©΄ λλ€.
- μ νμ νμ μ νν¨μΌλ‘μ¨ μμ¬κ²°μ μλκ° μλ±ν λΉ¨λΌμ§ → ν¨μ¨μ±μ λμ
- μ€μ μ€ν¬λ¦½νΈ μμ±
- κ°μ μλ²κ° κΈ°λλ μ§νμ μνλλ μ€μ μμ μ μ€ν¬λ¦½νΈ ννλ‘ λ§λ κ²μΌλ‘ μ΅μ΄ κΈ°λ μμ μΌκ΄ μ²λ¦¬νκΈ° μν΄ λ§λ€μ΄μ§λ€.
- ν¨ν€μ§ μ€μΉλ μ€μ , κ°μ’ μλΉμ€μ μλ μ€νκ³Ό κ°μ λ΄μ©μ΄ ν¬ν¨λλ€. ν μ€νΈνλ ν΄μ μ€ννκΈ°λ νλ€.
- λͺ λ²μ΄λ μ¬νν μ μμ λΏ μλλΌ μ€μ μμ΄ μμ λλ€λ μ₯μ μ΄ μλ€.
- κ°μ μλ²λ₯Ό μμ±νλ λͺ
λ Ή μ€ν
- μ€νμ€νμ nova λͺ λ Ήμ μ¬μ©νμ¬ κ°μ μλ²λ₯Ό κΈ°λνλ€.
- awsμ κ²½μ° 'aws ec2 run-instances'λ₯Ό μ¬μ©νλ€.
- νλ μ΄λ²
- ν΄λΌμ°λ νκ²½μ λ λ€λ₯Έ μ₯μ
- μ¬μ μ νμ΄ μλͺ»λκ±°λ μꡬ μ¬νμ΄ λ°λλ μν©μμλ μμ€ν μ μ¬κ΅¬μΆνλ κ²μ΄ μ½λ€.
- IP μ£Όμ ν λΉ μμ λ μλνν μ μλ€. κ°μ μλ²κ° μ κ±°λλ©΄ νμνμ¬ μ¬μ¬μ©νλ€.
- 물리μ μΈ μ₯λΉμ νμν μμ μ΄ μμ ν μ κ±°λ¨
- μ΄λ κ² ν΄λΌμ°λ APIλ κ³Όκ±°μ μ¬λμ΄ μ§μ νλ μμ λ€μ νλ‘κ·Έλ¨μ΄ λμ νκ² λμ΄ μμ ν¨μ¨μ λμ΄λ μν μ νλ€.
- ν¨μ¨νμ ν΅μ¬μ 'μ¬λμ νλ¨κ³Ό μμμ 'μ μΌλ§λ μ€μΌ μ μλλμ λ¬λ Έλ€. ν΄λΌμ°λ νκ²½μμλ μ¬λμ νλ¨κ³Ό μμμ μ μλνν΄μ νλ‘κ·Έλ¨μ΄ λννλλ‘ νκ±°λ μ λΉμ΄ κ·Έλ¬ν νλ¨ μ체λ₯Ό λΆνμνκ² λ§λ€μ΄ ν¨μ¨νλ₯Ό κΎνλ€.
λ§λ¬΄λ¦¬νλ©°
ν΄λΌμ°λ APIμ λ³Έμ§μ μ΄ν΄νμ§ λͺ»νκ³ κ³Όκ±°μ κ°μ λ°©μμΌλ‘ μμ€ν μ μ΄μνλ€λ©΄ ν΄λΌμ°λλ₯Ό λμ νλλΌλ ν¨μ©μ μ λλ‘ λλ¦¬μ§ λͺ»ν μ μλ€. ν΄λΌμ°λλ₯Ό μ¬μ©νλ©΄μλ IP μ£Όμλ₯Ό ν λΉνκΈ° μν΄ κ΄λ¦¬ λμ₯μ λ§λ€μ΄μ κ΄λ¦¬νλ€κ±°λ, μλμΌλ‘ μ€μ ν μ μλ λ΄μ©μ μμ κ³νμμ νλνλ κΈ°μ¬νκ³ μμμ μΌλ‘ μ²λ¦¬νλ κ²½μ°λ₯Ό μλ‘ λ€ μ μλ€.
ν΄λΌμ°λ APIλ₯Ό μ λλ‘ νμ©νλ €λ©΄ κ³Όκ±°μλ λ€λ₯Έ λ°©μμΌλ‘ μκ°νκ³ μ κ·Όν΄μΌ νλ€.
μ°Έκ³ λ¬Έν
κ·Έλ¦ΌμΌλ‘ λ°°μ°λ ν΄λΌμ°λ μΈνλΌμ APIμ ꡬ쑰 [μ μμ¬, λ‘λλΆ]
'π > DevOps' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[DevOps] 컨ν μ΄λμ μ΄ν΄ : μ 컨ν μ΄λκ° μ€μν΄μ‘μκΉ? (0) | 2021.08.03 |
---|---|
[DevOps] DevOpsμ μ΄ν΄ (0) | 2021.07.29 |
λκΈ