πŸ“ API, OpenAPI

BoriΒ·2022λ…„ 6μ›” 6일
1

μ–΄μ¨Œλ“  곡뢀

λͺ©λ‘ 보기
4/40

πŸ—’ ν•¨μˆ˜

  • μˆ˜ν•™μ—μ„œ ν•¨μˆ˜λŠ” μ–΄λ–€ κ°’(x)λ₯Ό λ„£μœΌλ©΄ κ²°κ³Όκ°’(y)이 λ‚˜μ˜¨λ‹€λŠ” 것을 의미
y = ax + b
y = f(x) 
  • κ°œλ°œμ—μ„œμ˜ ν•¨μˆ˜λ„ μˆ˜ν•™μ˜ ν•¨μˆ˜μ²˜λŸΌ

    λ§Œμ•½ ν•˜μ–€μƒ‰ 곡을 μ–΄λ–€ μƒμžμ— λ„£μœΌλ©΄ λ…Έλž€μƒ‰ 곡이 λœλ‹€ 라고 ν•œλ‹€λ©΄,
    μƒμžλŠ” λ…Έλž€μƒ‰μ„ μž…ν˜€μ£ΌλŠ” κΈ°λŠ₯이라고 ν•  수 μžˆλ‹€.
    κΈ°λŠ₯을 μ˜μ–΄λ‘œ ν•˜λ©΄ function(ν•¨μˆ˜)이닀.

  • ν•¨μˆ˜ : μ–΄λ– ν•œ κΈ°λŠ₯을 ν•˜λŠ” 것

  • "ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“ λ‹€"λŠ” 것은
    = ν•¨μˆ˜λ₯Ό μ§ λ‹€ (μ–΄λ– ν•œ κΈ°λŠ₯을 λ§Œλ“œλŠ” 것)
    = κ°œλ°œμ„ ν•œλ‹€
    라고 ν•  수 μžˆλ‹€.

β‡’ λ”°λΌμ„œ ν”„λ‘œκ·Έλž¨μ€ κΈ°λŠ₯λ“€μ˜ λͺ¨μŒμ„ λ§ν•œλ‹€.

πŸ—’ API(Application Program Interface)

add (a, b) {
  return a + b;
}

add(a, b)λŠ” ν•¨μˆ˜μΌκΉŒ? API일까?

  • add(a, b)λŠ” ν•¨μˆ˜λ‹€!
  • ν•˜μ§€λ§Œ API일 μˆ˜λ„ 있고, 아닐 μˆ˜λ„ μžˆλ‹€.
  • API와 ν•¨μˆ˜λŠ” 같은 κ±΄κ°€μš”?
    β‡’ API도 결ꡭ은 ν•¨μˆ˜μ˜ ν˜•νƒœλ₯Ό 가지고 μžˆλ‹€. ν•˜μ§€λ§Œ λͺ¨λ“  ν•¨μˆ˜λ₯Ό API라고 ν•˜μ§€ μ•ŠλŠ”λ‹€.

1. API

  • λˆ„κ΅°κ°€κ°€ μ“Έ 수 있게 μ œκ³΅ν•˜λŠ” 것
  • Interface라고 ν•΄μ„œ μ™ΈλΆ€μ—μ„œ ν•¨μˆ˜ 호좜(μ‚¬μš©) ν•  수 μžˆλ‹€.
    • μ™ΈλΆ€μ—μ„œ κΈ°λŠ₯을 ν˜ΈμΆœν•  수 있게 λ§Œλ“€μ—ˆλ‹€ β‡’ APIκ°€ λ˜λŠ” 것
    • ν•˜μ§€λ§Œ λͺ¨λ“  ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 있게 λ§Œλ“  것은 μ•„λ‹ˆλ―€λ‘œ ν•¨μˆ˜λŠ” κ·Έλƒ₯ ν•¨μˆ˜λ‹€!
    • APIλŠ” API둜 μ •μ˜ν•˜κ³ , API λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•˜μ—¬ μ™ΈλΆ€μ—μ„œ ν˜ΈμΆœν•  수 있게 λ§Œλ“€μ–΄ μ€€λ‹€.

2. OpenAPI

  • ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄μ„œ μ™ΈλΆ€μ—μ„œ ν˜ΈμΆœν•  수 있게 ν•˜μ—¬ APIλ₯Ό λ§Œλ“€μ—ˆλ‹€.
    = 이 APIλ₯Ό λˆ„κ΅¬λ‚˜ μ“Έ 수 있게 λ§Œλ“€μ—ˆλ‹€.
    = 인터넷 μƒμ—μ„œ ν˜ΈμΆœν•  수 있게 λ§Œλ“€μ—ˆλ‹€.
    β‡’ OpenAPI : νŠΉμ • κΈ°λŠ₯이 되게 λ§Œλ“  것 (μ˜ˆμ‹œ: 지도 API, 검색 API λ“±)

그런데 μ™œ APIλ₯Ό λ…ΈμΆœμ„ ν• κΉŒ?
μ›λž˜λŠ” 자기 μžμ‹ λ§Œ μ“°λ €κ³  λ§Œλ“€μ—ˆλŠ”λ° platform κ°œλ…μ΄ λ‚˜μ˜€λ©΄μ„œ μ˜€ν”ˆμ„ ν•˜κ²Œ λ˜μ—ˆλ‹€.

OpenAPIλŠ” λ¬΄λ£ŒμΈκ°€μš”?

  • μ„œλΉ„μŠ€ 제곡자의 OpenAPIλ₯Ό 많이 μ‚¬μš©ν•˜λ©΄ ν• μˆ˜λ‘ 제곡자의 ν”Œλž«νΌμ„ 많이 μ΄μš©ν•˜κ²Œ λœλ‹€.
  • 무료인 κ²½μš°κ°€ λ§Žμ§€λ§Œ, λ¬΄λ£Œκ°€ μ•„λ‹Œ κ²½μš°λ„ μžˆλ‹€.
    • 데이터 μ‚¬μš©λŸ‰μ— 따라 λΉ„μš©μ„ μ§€λΆˆν•˜λŠ” 방식
  • 무료인 κ²½μš°μ—λ„ νšŒμ›κ°€μž…μ„ ν•˜κ³  신원 확인 ν›„, μ„œλΉ„μŠ€ μ œκ³΅μžλ‘œλΆ€ν„° 인증킀(κ³΅κ°œν‚€, μ‚¬μš©κΆŒν•œ 토큰)λ₯Ό λ°œκΈ‰λ°›μ•„ μ‚¬μš©ν•˜μ—¬ λ¬΄λΆ„λ³„ν•œ 데이터 λ‚¨μš©μ„ 막기도 ν•œλ‹€.

OpenAPI λŠ” μ–΄λ–»κ²Œ λ…ΈμΆœμ‹œν‚€λ‚˜μš”?

μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ 있고, ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ₯Ό ν˜ΈμΆœν•˜μ—¬ 응닡을 λ°›λŠ”λ‹€.

  • ν˜ΈμΆœμ€ μ–΄λ–»κ²Œ ν•˜λ‚˜μš”?
  • λΈŒλΌμš°μ €μ— http://www.naver.com을 적고 μ—”ν„°λ₯Ό 치면 이것이 λ°”λ‘œ 호좜!
    = μ„œλ²„μ— URL을 λΆ€λ₯΄λŠ” 것
  • 인터넷 ν”„λ‘œν† μ½œμ— μ˜ν•΄ 도메인을 μ°Ύμ•„ ν•΄λ‹Ήν•˜λŠ” μ‚¬μ΄νŠΈλ₯Ό μ°Ύμ•„κ°„λ‹€.
  • μ‘λ‹΅κ°’μœΌλ‘œ HTML νƒœκ·Έλ“€μ΄ λ‚΄λ €μ˜€κ³ , 이λ₯Ό λΈŒλΌμš°μ €κ°€ νŒŒμ‹±μ„ ν•˜μ—¬ λΏŒλ €μ€€λ‹€.
    = μ›Ή μ‚¬μ΄νŠΈμ˜ 원리

β‡’ OpenAPI 도 λΉ„μŠ·ν•œ μ›λ¦¬λ‘œ λ™μž‘ν•œλ‹€.

μœ„ μ˜ˆμ‹œμ˜ add(a, b) λΌλŠ” ν•¨μˆ˜λ₯Ό OpenAPI둜 λ§Œλ“€λ €λ©΄?

  • 인터넷 μƒμ—μ„œ http ν”„λ‘œν† μ½œμ— μ˜ν•΄ 응닡 받을 수 있게 λ…ΈμΆœ(μ˜€ν”ˆ)을 ν•œλ‹€.
    http://www.example.com/add
  • add λΌλŠ” ν•¨μˆ˜λ₯Ό λ…ΈμΆœ μ‹œμΌœ μ™ΈλΆ€μ—μ„œ 호좜 ν•  수 있게 λ˜μ—ˆλ‹€.
  • μ•±/μ›Ήμ—μ„œ ν˜ΈμΆœμ„ ν•˜λ©΄ 응닡값이 μ˜¨λ‹€.
    http://www.example.com/add?a=1&b=2 처럼 뒀에 νŒŒλΌλ―Έν„°λ₯Ό 뢙일 수 μžˆλ‹€.
    그러면 κΈ°λŒ€ν•˜λŠ” μ‘λ‹΅κ°’μœΌλ‘œ 3이 λ‚΄λ €μ˜¨λ‹€.
  • 응닡값은 XMLμ΄λ‚˜ json ν˜•μ‹
    • http://www.example.com/add?a=1&b=2 처럼 νŒŒλΌλ―Έν„°λ₯Ό 뒀에 λΆ™μ—¬μ„œ ν˜ΈμΆœν•˜λŠ” 방식을 GET 방식
    • λ³Έλ¬Έ μ•ˆμ— a = 1, b = 2κ°€ λ“€μ–΄κ°€λŠ” 것은 POST 방식

참고 링크

0개의 λŒ“κΈ€