Home > Backend > CS > πŸ’Ύ [CS] API(Application Programming Interface)

πŸ’Ύ [CS] API(Application Programming Interface)
CS

πŸ’Ύ [CS] API(Application Programming Interface)

  • API(Application Programming Interface) λŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ°„μ˜ μƒν˜Έμž‘μš©μ„ κ°€λŠ₯ν•˜κ²Œ ν•΄μ£ΌλŠ” μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€.
    • μ‰½κ²Œ λ§ν•΄μ„œ , APIλŠ” μ„œλ‘œ λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ΄λ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 데이터λ₯Ό μ£Όκ³  λ°›κ±°λ‚˜ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” κ·œμΉ™κ³Ό λ„κ΅¬λ“€μ˜ μ§‘ν•©μž…λ‹ˆλ‹€.

1️⃣ API의 μ£Όμš” κ°œλ….

  • 1. μΈν„°νŽ˜μ΄μŠ€
    • APIλŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ΄ λ‹€λ₯Έ μ‹œμŠ€ν…œμ΄λ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό μ–΄λ–»κ²Œ μ†Œν†΅ν•  수 μžˆλŠ”μ§€λ₯Ό μ •μ˜ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€.
      • 이 μΈν„°νŽ˜μ΄μŠ€λŠ” μ–΄λ–€ λ°μ΄ν„°λ‚˜ κΈ°λŠ₯이 λ…ΈμΆœλ˜κ³ , 그것듀을 μ–΄λ–»κ²Œ μ‚¬μš©ν•  수 μžˆλŠ”μ§€ κ·œμ •ν•©λ‹ˆλ‹€.
  • 2. 좔상화
    • APIλŠ” λ³΅μž‘ν•œ μ‹œμŠ€ν…œ λ‚΄λΆ€μ˜ κ΅¬ν˜„ μ„ΈλΆ€ 사항을 숨기고, μ‚¬μš©μžλ‚˜ κ°œλ°œμžκ°€ μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ ν•„μš”ν•œ κΈ°λŠ₯λ§Œμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, νŒŒμΌμ„ μ—΄κ±°λ‚˜, λ°μ΄ν„°λ² μ΄μŠ€μ— 쿼리λ₯Ό λ³΄λ‚΄κ±°λ‚˜, μ›Ή νŽ˜μ΄μ§€μ˜ 데이터λ₯Ό κ°€μ Έμ˜€λŠ” λ“±μ˜ μž‘μ—…μ„ APIλ₯Ό 톡해 κ°„λ‹¨ν•˜κ²Œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 3. λͺ¨λ“ˆν™”
    • APIλŠ” νŠΉμ • κΈ°λŠ₯μ΄λ‚˜ μ„œλΉ„μŠ€μ— λŒ€ν•œ 접근을 λͺ¨λ“ˆν™”ν•©λ‹ˆλ‹€.
      • μ΄λ ‡κ²Œ λͺ¨λ“ˆν™”λœ APIλ₯Ό μ‚¬μš©ν•˜λ©΄ κ°œλ°œμžκ°€ μ‹œμŠ€ν…œμ˜ λ‹€λ₯Έ 뢀뢄에 영ν–₯을 주지 μ•Šκ³  λ…λ¦½μ μœΌλ‘œ κΈ°λŠ₯을 μ‚¬μš©ν•˜κ±°λ‚˜ ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 4. ν‘œμ€€ν™”
    • APIλŠ” ν‘œμ€€ν™”λœ λ°©λ²•μœΌλ‘œ κΈ°λŠ₯에 μ ‘κ·Όν•  수 있게 ν•΄μ£ΌκΈ° λ•Œλ¬Έμ—, μ—¬λŸ¬ κ°œλ°œμžλ‚˜ μ‹œμŠ€ν…œμ΄ μΌκ΄€λœ λ°©μ‹μœΌλ‘œ μƒν˜Έμž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, REST APIλŠ” μ›Ή 기반 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 데이터λ₯Ό μ£Όκ³ λ°›λŠ” ν‘œμ€€ λ°©μ‹μž…λ‹ˆλ‹€.

2️⃣ API의 μœ ν˜•.

  • 1. Web API(μ›Ή API)
    • μ›Ή μ„œλΉ„μŠ€λ‚˜ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” APIμž…λ‹ˆλ‹€.
      • 주둜 HTTPλ₯Ό 톡해 μš”μ²­κ³Ό 응닡을 μ£Όκ³ λ°›μœΌλ©°, REST, SOAP, GraphQL 등이 κ·Έ μ˜ˆμž…λ‹ˆλ‹€.
  • 2. Library API
    • νŠΉμ • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„μ›Œν¬μ˜ ν•¨μˆ˜μ™€ ν΄λž˜μŠ€λ“€μ— λŒ€ν•œ μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, Python의 ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μ œκ³΅ν•˜λŠ” os λ‚˜ sys λͺ¨λ“ˆλ„ API의 μΌμ’…μž…λ‹ˆλ‹€.
  • 3. Operating System API
    • 운영 μ²΄μ œκ°€ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯에 μ ‘κ·Όν•  수 있게 ν•΄μ£ΌλŠ” APIμž…λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, Windows APIλŠ” μœˆλ„μš° μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 운영 체제의 κΈ°λŠ₯(파일 관리, UI ꡬ성 μš”μ†Œ, λ„€νŠΈμ›Œν¬ λ“±)에 μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.
  • 4. Database API
    • λ°μ΄ν„°λ² μ΄μŠ€μ™€μ˜ μƒν˜Έμž‘μš©μ„ μœ„ν•΄ μ œκ³΅λ˜λŠ” APIμž…λ‹ˆλ‹€.
      • JDBC(Java Database Connectivity)λŠ” μžλ°” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έμž‘μš©ν•  수 μžˆλ„λ‘ λ•λŠ” λŒ€ν‘œμ μΈ λ°μ΄ν„°λ² μ΄μŠ€ APIμž…λ‹ˆλ‹€.

3️⃣ API의 예.

  • Google Maps API
    • κ°œλ°œμžκ°€ μžμ‹ μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 지도 κΈ°λŠ₯을 톡합할 수 μžˆλ„λ‘ Googleμ—μ„œ μ œκ³΅ν•˜λŠ” APIμž…λ‹ˆλ‹€.
  • Twitter API
    • κ°œλ°œμžκ°€ νŠΈμœ„ν„°μ˜ κΈ°λŠ₯(예: νŠΈμœ— κ°€μ Έμ˜€κΈ°, νŠΈμœ— μž‘μ„±)을 μžμ‹ μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 톡합할 수 μžˆλ„λ‘ μ œκ³΅λ˜λŠ” APIμž…λ‹ˆλ‹€.
  • Payment Gateway API
    • PayPalμ΄λ‚˜ Stripe 같은 결제 μ„œλΉ„μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” API둜, μ• ν”Œλ¦¬κ²Œμ΄μ…˜μ— 결제 κΈ°λŠ₯을 톡합할 수 μžˆμŠ΅λ‹ˆλ‹€.

4️⃣ API의 μ€‘μš”μ„±.

  • APIλŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ 맀우 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.
    • 그것은 μ†Œν”„νŠΈμ›¨μ–΄ κ°„μ˜ μƒν˜Έ μš΄μš©μ„±μ„ μ΄‰μ§„ν•˜λ©°, μƒˆλ‘œμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜κ±°λ‚˜ κΈ°μ‘΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” 것을 더 μ‰½κ²Œ λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.
      • λ˜ν•œ, APIλ₯Ό 톡해 μ™ΈλΆ€ μ‹œμŠ€ν…œμ΄λ‚˜ μ„œλΉ„μŠ€μ™€ 톡합할 수 μžˆμ–΄, λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 보닀 효율적으둜 κ°œλ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€.